您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

sp_dumpoptimize


sp_dumpoptimize [ 'archive_space = {maximum | minimum | default }' ]

sp_dumpoptimize [ 'reserved_threshold = {<nnn> | default }' ]

sp_dumpoptimize [ 'allocation_threshold = {<nnn> | default }' ]

参数

archive_space

指定要转储的数据库量。

maximum

在未确定分配哪些页的情况下转储整个数据库。档案图像使用的总空间量等于该数据库的大小。使用此选项与使用 reserved_threshold=0 和 allocation_threshold=0 选项的作用相同。

minimum

只转储分配的页,这将产生可能的最小档案图像。当转储到吞吐量远小于数据库设备(例如 QIC 磁带驱动器)的吞吐量的档案设备时,可以使用此选项。使用此选项与使用 reserved_threshold=100 和 allocation_threshold=100 选项的作用相同。

default

指定应使用的缺省值。在与以下选项一起使用时:

  • archive_space – 此选项转储数据库,reserved_threshold 和 allocation_threshold 选项被设置为其缺省值。使用该选项将 Backup Server 重新设置为缺省配置。

  • reserved_threshold – default 指定 85%。

  • allocation_threshold – default 指定 40%。

    reserved_threshold

    如果数据库磁盘中保留的页的百分比大于或等于 <nnn>,则转储该磁盘中属于该数据库的所有页。例如,如果将 <nnn> 指定为 60,并且数据库磁盘中保留页的百分比等于或大于 60%,则将转储整个磁盘,而不确定分配该磁盘中的哪些页。此选项的缺省值为 85%。

    <nnn>

    一个介于 0 到 100 之间的整数值,该值表示阈值的值。该值用于确定要转储的数据量。

    当和 reserved_threshold 一起使用时,如果磁盘中保留页的百分比大于指定的值,则将转储数据库磁盘中该数据库的所有页。

    当和 allocation_threshold 一起使用时,如果分配单元中已分配页的百分比大于为 allocation_threshold 指定的百分比,则将转储分配单元中的所有页。

    allocation_threshold

    如果分配单元中已分配页的百分比大于或等于 <nnn>,则将转储该分配单元中的所有页。例如,如果将 <nnn> 指定为 70 并且分配单元中已分配页的百分比大于或等于 70%,则将转储整个分配单元,而不确定是否分配该分配单元中的页。如果 reserved_threshold 设置导致转储整个磁盘,则将忽略磁盘的 allocation_threshold 设置。此选项的缺省值为 40%。

    示例

    示例 1

    转储整个数据库:

    
    sp_dumpoptimize 'archive_space=maximum'
    
    
    Backup Server: 4.172.1.1: The value of 'reserved pages threshold' has been set to 0%.
    Backup Server: 4.172.1.2: The value of 'allocated pages threshold' has been set to 0%.
    

    示例 2

    仅转储分配的页,因此将产生最小的存档映像:

    
    sp_dumpoptimize 'archive_space=minimum'
    
    
    Backup Server: 4.172.1.1: The value of 'reserved pages threshold' has been
    set to 100%.
    Backup Server: 4.172.1.2: The value of 'allocated pages threshold' has been
    set to 100%.
    

    示例 3

    将保留阈值设置为 85%,分配阈值设置为 40%:

    
    sp_dumpoptimize 'archive_space=default'
    
    
    Backup Server: 4.172.1.1: The value of 'reserved pages threshold' has been
    set to 85%.
    Backup Server: 4.172.1.2: The value of 'allocated pages threshold' has been
    set to 40%.
    

    示例 4

    转储其保留页的百分比大于或等于 60% 的数据库中的磁盘,而不读取该磁盘上的分配页。对于其余的磁盘,将读取分配页,并且使用为 allocation_threshold 最后设置的值。如果在启动 Backup Server 后未设置 allocation_threshold,则使用 allocation_threshold 的缺省值 40%:

    
    sp_dumpoptimize 'reserved_threshold=60'
    
    
    Backup Server: 4.172.1.3: The value of 'reserved pages threshold' has been
    set to 60%.
    

    示例 5

    将保留阈值设置为 85%。它不影响分配页阈值:

    
    sp_dumpoptimize 'reserved_threshold=default'
    
    
    Backup Server: 4.172.1.3: The value of 'reserved pages threshold' has been
    set to 85%.
    

    示例 6

    为保留页的百分比小于 reserved_threshold 最后设置值的那些磁盘读取分配页,如果分配单元中已分配了 80% 或更多的页,则将转储整个分配单元:

    
    sp_dumpoptimize 'allocation_threshold=80'
    
    
    Backup Server: 4.172.1.4: The value of 'allocated pages threshold' has been
    set to 80%.
    

    示例 7

    本例将分配页阈值设置为缺省值 40%。它不影响保留页阈值:

    
    sp_dumpoptimize 'allocation_threshold=default'
    
    
    Backup Server: 4.172.1.4: The value of 'allocated pages threshold' has been
    set to 40%.
    

    示例 8

    转储其保留页的百分比大于或等于 60% 的数据库中的磁盘,而不读取该磁盘上的分配页。对于其余的磁盘,将读取分配页;如果分配单元中已分配了 30% 或更多的页,则将转储整个分配单元:

    
    sp_dumpoptimize 'reserved_threshold=60', 'allocation_threshold=30'
    
    
    Backup Server: 4.172.1.3: The value of 'reserved pages threshold' has been
    set to 60%.
    Backup Server: 4.172.1.4: The value of 'allocated pages threshold' has been
    set to 30%.
    

    示例 9

    显示阈值的当前值:

    
    sp_dumpoptimize
    
    
    Backup Server: 4.171.1.1: The current value of 'reserved pages threshold'
    is 60%
    Backup Server: 4.171.1.2: The current value of 'allocated pages threshold'
    is 30%.
    

    用法

  • 使用 sp_dumpoptimize 设置阈值时,此阈值将作用于数据库驻留的每个设备。

  • 当使用 sp_dumpoptimize 设置值时,这些值将立即生效,而无需重新启动 Backup Server。但是,只有重新启动 Backup Server,更改才会生效。重新启动 Backup Server 时,将使用缺省值。

  • 如果您多次发出 sp_dumpoptimize,则以后的转储使用由最后的实例指定的阈值。例如,如果您先设置了 reserved_threshold 值,随后发出了 archive_space=maximum,则该值将覆盖以前为 reserved_threshold 设置的值。

  • 通过在每次数据库转储之前更改 sp_dumpoptimize 值,不同数据库的转储可以使用不同的阈值。

  • 最佳阈值随数据库的不同而不同。因此,转储的性能既取决于 I/O 配置,也取决于数据库中使用的空间量。DBA 可以通过使用不同的值试验转储过程并选择使转储时间最短的值,来确定数据库的适当配置。

  • 可以对本地和远程转储使用 sp_dumpoptimize。

  • sp_dumpoptimize 不影响事务日志转储或装载的性能。因此,在执行 dump transaction、load database 或 load transaction 操作前,不需要发出该命令。

  • 如果发出不带任何参数的 sp_dumpoptimize,则将在客户端上显示阈值的当前值。

  • 在档案设备吞吐量等于或大于所有数据库磁盘累积吞吐量的配置上,使用 archive_space=maximum 将使转储速度更快。但是,在档案设备吞吐量小于所有数据库磁盘累积吞吐量的配置上,使用该选项将使转储速度变慢。

  • 可以缩写选项名和此过程的值,使之成为标识它们的唯一子字符串。例如,ar = ma 足以用来唯一标识选项 archive_space=maximum。

  • 在选项字符串中,等号 (=) 两边可以不使用空格,也可以使用多个空格。

  • 选项名和它们的值不区分大小写。

    阈值和 sp_dumpoptimize

    阈值的缺省值为:保留的页:85%;分配页:40%。

    如果数据库设备段的保留页百分比:

  • 大于或等于保留的阈值 – 则转储该设备上与此数据库有关的所有块。

  • 小于保留的阈值 – 则 Backup Server 开始检查该设备上每个分配单元的分配百分比。如果累积分配百分比:

    a) 小于分配阈值 – 则只转储写有数据的页

    b) 大于分配阈值 – 则转储整个分配单元。