【问题标题】:Create a Dynamically Growing Sybase Database?创建一个动态增长的 Sybase 数据库?
【发布时间】:2013-11-23 12:46:18
【问题描述】:

我正在构建一个小安装/打包脚本,用于部署各种数据库模式项和过程。现在,我只是用它来制作数据库:

创建数据库数据库名称 去吧

然而, 当我将我的小包指向我的大型数据库时,它们很快就会填满分配的空间。

我不清楚如何在 sybase 上创建具有增长空间的数据库....是否有某种参数 CREATE DATABASE 参数允许它增长空间,或者我是否必须为每个数据库提供特定大小?

【问题讨论】:

    标签: sybase sap-ase


    【解决方案1】:

    一些研究证明,制作一个不断增长的树是一个坏主意...... 我最终做了这样的事情(为了那些正在寻找的人的利益,我很难弄清楚设备部分..)

    -- Data Device
    disk init
    name              = 'do02_data',
    physname        = 'C:\sybase\data\do02data.dat',
    size        = '15G',
    directio    = true,
    skip_alloc  = true
    go
    
    -- Log Device
    disk init
    name              = 'do02_log',
    physname        = 'C:\sybase\data\do02log.dat',
    size        = '7G',
    directio    = true,
    skip_alloc  = true
    CREATE DATABASE do02 on do02_data = '15G' LOG ON  do02_log = '7G'             -- will     take some time
    GO
    sp_dboption do02, 'select into/bulkcopy', true
    GO
    

    如果您之后要使用 BCP,还需要“选择进入/批量复制”。

    我只是在我的包中放入说明,供最终用户根据需要修改这些值。

    【讨论】:

      【解决方案2】:

      很明显,创建设备有两种不同的方法。

      默认方法获取(分配)在创建设备时分配给设备的所有空间。所以创建一个 100Gb 的设备会在文件系统中创建一个 100Gb 的文件

      另一种方法只抓取(分配)它需要的空间,但会继续抓取空间,直到达到磁盘初始化中指定的限制。此选项仅适用于 Unix 设备和 Windows 原始系统,并使用 skip_alloc = true 指定

      使用skip_alloc 不会创建动态增长的数据库,它只会延迟分配直到需要空间。数据库的大小仍然不会超过您为其分配的空间。

      如果你想创建一个自动扩展的数据库,Sybase has precedures on using sp_dbextends do this

      使用旧版本 Sybase 的用户可以使用阈值 (sp_addthreshold, sp_modifythreshold, sp_dropthreshold) 模拟其中的一些。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-14
        • 1970-01-01
        • 2015-03-05
        • 1970-01-01
        • 2021-03-23
        • 2011-06-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多