这些策略存储在 master 数据库的 sysattributes 表中。
所有参数都是字符串参数:
sp_dbextend 'help'[, <command>]
sp_dbextend [ ['set', ['threshold', <dbname>, <segmentname>, <freespace> |
'database', <dbname>, <segmentname>{[[, <growby>][, <maxsize> ] ]} |
'device', <devicename>{[[, <growby >][, <maxsize> ] ] }] |
'clear', 'threshold', <dbname>, <segmentname>
sp_dbextend 'clear', 'database'[, <dbname>[, <segmentname>] ]
sp_dbextend 'clear', 'device'[, <devicename>]
sp_dbextend 'modify', 'database', <dbname>, <segmentname>,
{ 'growby' | 'maxsize' }, <newvalue>
sp_dbextend 'modify', 'device', <devicename>, { 'growby' | ' maxsize ' },
<newvalue>
sp_dbextend { 'list' | 'listfull' }[, 'database'[, <dbname>[, <segmentname>
[, <order_by_clause> ] ] ] ]
sp_dbextend { 'list' | 'listfull' }[, 'device'[, <devicename>[, <order_by_clause>] ] ]
sp_dbextend { 'list' | 'listfull' }, [ 'threshold'[ , @<dbname>
[ , @<segmentname> ] ] ]
sp_dbextend 'check', 'database'[, <dbname>[, <segmentname>] ]
sp_dbextend {'simulate' | 'execute'}, <dbname>, <segmentname>[, <iterations> ]
sp_dbextend 'trace', {'on' | 'off'}
sp_dbextend 'reload [defaults]'
sp_dbextend { 'enable' | 'disable' }, 'database'[, <dbname>[, <segmentname>] ]
sp_dbextend 'who'[, '<spid>' | 'block' | 'all' ]
set
设置应引发数据库、段或设备的阈值。参数包括:
'threshold', <dbname>, <segmentname>, <freespace> – 指定在指定的数据库和段上安装阈值的可用空间级别。
使用大小单位指示符(例如兆字节)指定
'database', <dbname>, <segmentname> {[ [, <growby> ] [, <maxsize> ] ]} – 指定数据库/段对的名称、数据库更改幅度以及数据库的最大大小(达到该最大大小时,扩展进程停止)。
<growby> – 是每次扩展尝试时数据库增长的比率,以单位指示符或百分比值表示。
<maxsize> 是段的最大大小,达到最大大小后不再进行扩展。这两个参数都是可选的。
'device', <devicename> { [ [, <growby >] [, <maxsize> ] ] }] – 定义设备的增长率和可以增长到的最大大小,用单位指示符或百分比值表示。设备中的 <maxsize> 受 OS 磁盘限制。
clear
清除指定数据库和段或者指定设备以前设置的扩展规则。
modify
修改数据库和段以前设置的特定于站点的策略,例如 <growby> 和 <maxsize>。
使用 <newvalue> 指定为自动扩展设置的新值。
list
简要列出指定数据库、段、设备或指定段的阈值的现有规则,并以一种可读格式显示来自 master.dbo.sysattributes 的数据。允许您按每个数据库或每个设备查看规则。
显示当前有效的规则。
使用 <order_by_clause> 生成与缺省的名称、类型排序顺序不同的列表。
使用 threshold 可以显示当前在指定数据库中(使用 @dbname)和指定段中(使用 @segment name)安装的所有阈值。
listfull
完全列出特定于站点的策略规则,并在 sysattributes 表中包括一个 comment 列,该列显示的 datetime 戳指出规则是何时设置、何时最后修改的。
check
检查当前策略并验证它们与每个段中的当前空间布局是否一致。如果发现任何策略设置多余、无效或不正确,则将显示一条警告消息。
simulate
根据 set 命令实施的当前策略集,模拟执行在运行期执行的数据库或设备扩展方案。
<iterations> 指定模拟扩展的次数。
execute
使用当前策略集执行实际数据库/段或设备扩展。
reload [defaults]
在所有数据库、段和设备中用 <growby> 和 <maxsize> 的系统提供的缺省值重新初始化 sysattributes,并将数据库或设备回复到初始缺省行为。
reload 不删除用户指定的策略。
help
提供所有命令参数(例如 set 或 list)的帮助信息或任何单个命令的帮助信息。
trace
跟踪所有扩展进程中的阈值过程执行逻辑。
enable | disable
在指定数据库段或设备上启用或禁用自动扩展过程。
who
显示当前运行的任何活动扩展进程。使用:
‘<spid>’ 限制特定 spid 的输出。
block – 显示当前导致扩展进程阻塞的任务。
all – 显示当前所有活动的任务。
<freespace>
指定可用空间为何值时在指定的段上安装阈值过程。一定要使用大小单位指示符(例如兆字节)来指定 <freespace>。
<dbname>
是在其中安装阈值的数据库的名称。
<segmentname>
是包含在数据库 <dbname> 中的段。
<devicename>
是相关设备的逻辑名。
<newvalue>
指定当您修改数据库/段对或设备的策略时为自动扩展设置的新值。
<order_by_clause>
生成与 <list> 命令中的缺省排序不同顺序的列表。缺省顺序是名称、类型。
<iterations>
指定模拟或执行扩展的次数。
<growby>
指定每次尝试执行阈值过程时指定的数据库段或设备增长的比率,以单位指示符或百分比值表示。
<maxsize>
是段/数据库对或设备的最大大小,当达到该大小时,自动扩展必须停止。
<maxsize> 是段的最大大小,当达到该大小时自动扩展进程停止,该值并不是数据库的最大大小。
您可以将 <maxsize> 设置为大于设备上可用磁盘空间总量的值,但进行扩展尝试时实际扩展将受可用磁盘空间的限制。
Set Thresholds
在数据库 pubs2 中的日志段上安装 100 MB 的空间扩展阈值:
sp_dbextend 'set', 'thresh', pubs2, logsegment, '100m'
Set Database
为 logsegment 段安装策略,每次扩展尝试的增长率为 100 MB:
sp_dbextend 'set', 'database', pubs2, logsegment, '100m'
Set Device
扩展此设备直到达到 OS 磁盘空间限制或设备大小达到 4 TB:
sp_dbextend 'set', 'device', pubs2-datadev1, '100m'
Clear
说明如何清除以前在 pubs2 中 logsegment 上安装的所有空间扩展阈值:
sp_dbextend 'clear', 'thresh', pubs2, logsegment
您还可以清除在 pubs2 中的段 dataseg1 上安装的可用空间为 200 MB 的空间扩展阈值:
sp_dbextend 'clear', 'thresh', pubs2, dataseg1, '200m'
Modify
将每次扩展尝试的增长率指定为当前值的 5%:
sp_dbextend 'modify', 'da', pubs2, logsegment, 'growby', '5%'
如果以前未定义
sp_dbextend 'modify', 'device', pubs2_log_dev, 'maxsize', '2.3g'
list
简要列出所有数据库和设备的规则:
sp_dbextend 'list'
以下命令列出名称类似于“'pubs%'”的所有数据库的规则:
sp_dbextend 'list', 'database', 'pubs%'
Listfull
列出所有数据库和设备的规则,其中包括一个显示 datetime 戳的 comment 列:
sp_dbextend 'listfull'
List Threshold
从 pubs2 数据库中发出该命令时,将列出 pubs2 数据库中各段的阈值设置:
sp_dbextend 'list', 'threshold'
要检查特定段上的阈值,请使用:
sp_dbextend 'list', 'threshold', pubs2, 'logsegment'
Simulate
模拟扩展两次,两次扩展都没有达到阈值:
sp_dbextend 'simulate', pubs2, logsegment, '2'
Execute
执行自动扩展过程:
sp_dbextend 'execute', pubs2, logsegment
Help
获得特定命令的帮助:
sp_dbextend help, 'set'
使用 sp_dbextend 时,还存在一些其它注意事项:
<growby> 或 <maxsize> 指定为 0 或根本不安装该阈值过程。如果为此参数指定 NULL,则缺省使用系统指定的缺省 <growby> 率。
<maxsize> 值,则数据库的大小仅受数据库设备物理大小的限制。
<growby> 或 <maxsize> 指定为 0。如果未指定 <growby> 的值,则使用缺省扩展率。
<dbname> 和 <segmentname> 是必需的参数。
<dbname> 和 <segmentname>,则将删除当前数据库和其中所有段的所有策略规则(即 master.dbo.sysattributes 中的所有相关行)。若要将所有设置恢复为缺省值并重新启动,这是一个不错的方法。
<devicename> 的值,则不会清除任何策略规则。您可以提供 <devicename> 来清除单个设备的策略规则或使用“%”清除所有设备的策略。
<dbname>、<devicename> 和 <segmentname>,以便对名称模式符合指定模式的对象执行 clear、enable、disable 和 list 操作。
<growby> 和 <maxsize> 会被修改为 <newvalue> 指定的新值
<newvalue> 中指定的新值将在随后的扩展数据库或设备的尝试中一直有效。即使 <newvalue> 小于数据库、段或设备的当前值。对象也不会缩减。<newvalue> 仅指定以后的扩展,不会影响当前大小。
<dbname> 和 <segmentname> 可以获得个别数据库和其中的段的策略规则。
<dbname> 或 <segmentname>,则将列出当前数据库中所有段的所有策略规则(即,master.dbo.sysattributes 中的行)。
<devicename>,则将列出所有设备的缺省策略规则。您可以通过提供 <devicename> 对列出的内容进行过滤以列出单个设备的策略规则或对 <devicename> 使用模式指示符。
<dbname> 和 <segmentname> 都是必需的参数。使用 execute 或 simulate 命令时,不能在 <dbname> 或 <segmentname> 中使用通配符模式。
<reload> 重新初始化您的数据库和设备。<reload> 将删除 master.dbo.sysattributes 中描述系统缺省行为的任何现有行,然后装载新行。