sp_add_log_shipping_secondary_database (Transact-SQL)

适用于:SQL Server

设置用于日志传送的辅助数据库。

Transact-SQL 语法约定

语法

sp_add_log_shipping_secondary_database
    [ @secondary_database = ] 'secondary_database'
    , [ @primary_server = ] 'primary_server'
    , [ @primary_database = ] 'primary_database'
    [ , [ @restore_delay = ] 'restore_delay' ]
    [ , [ @restore_all = ] 'restore_all' ]
    [ , [ @restore_mode = ] 'restore_mode' ]
    [ , [ @disconnect_users = ] 'disconnect_users' ]
    [ , [ @block_size = ] 'block_size' ]
    [ , [ @buffer_count = ] 'buffer_count' ]
    [ , [ @max_transfer_size = ] 'max_transfer_size' ]
    [ , [ @restore_threshold = ] 'restore_threshold' ]
    [ , [ @threshold_alert = ] 'threshold_alert' ]
    [ , [ @threshold_alert_enabled = ] 'threshold_alert_enabled' ]
    [ , [ @history_retention_period = ] 'history_retention_period' ]
[ ; ]

参数

[ @secondary_database = ] 'secondary_database'

辅助数据库的名称。 @secondary_database为 sysname,无默认值。

[ @primary_server = ] 'primary_server'

日志传送配置中 SQL Server 数据库引擎的主要实例的名称。 @primary_serversysname ,不能为 NULL。

[ @primary_database = ] 'primary_database'

主服务器上的数据库名称。 @primary_database为 sysname,无默认值。

[ @restore_delay = ] 'restore_delay'

辅助服务器在还原给定备份文件之前等待的时间(分钟)。 @restore_delayint ,不能为 NULL。 默认值为 0。

[ @restore_all = ] 'restore_all'

如果设置为 1,则在运行还原作业时,辅助服务器将还原所有可用的事务日志备份。 否则,辅助服务器将在还原一个文件后停止。 @restore_all且不能为 NULL。

[ @restore_mode = ] 'restore_mode'

辅助数据库的还原模式。

  • 0:使用 还原日志 NORECOVERY
  • 1:使用 还原日志 STANDBY

@restore_mode位且不能为 NULL。

[ @disconnect_users = ] 'disconnect_users'

如果设置为1/>,则执行还原操作时,用户与辅助数据库断开连接。 默认为 0@disconnect_users,不能为 NULL。

[ @block_size = ] 'block_size'

大小(以字节为单位)用作备份设备的块大小。 @block_size的默认值为 -1。

[ @buffer_count = ] 'buffer_count'

备份或还原操作使用的缓冲区总数。 @buffer_count的默认值为 -1。

[ @max_transfer_size = ] 'max_transfer_size'

SQL Server 向备份设备发出的最大输入或输出请求的大小(以字节为单位)。 @max_transfersizeint ,可以为 NULL。

[ @restore_threshold = ] 'restore_threshold'

两次还原操作之间允许的间隔时间(分钟),一旦超过此值,就会生成警报。 @restore_threshold为 int,不能为 NULL。

[ @threshold_alert = ] 'threshold_alert'

超过备份阈值时引发的警报。 @threshold_alert为 int,默认值为 14,420。

[ @threshold_alert_enabled = ] 'threshold_alert_enabled'

指定在超出@restore_threshold是否引发警报。 值 1 (默认值)表示引发警报。 @threshold_alert_enabled位

[ @history_retention_period = ] '@history_retention_period'

保留历史记录的时间长度(以分钟为单位)。 @history_retention_period为 int,默认值为 NULL. 如果不指定值,则使用值 14420。

返回代码值

0(成功)或 1(失败)。

结果集

无。

注解

sp_add_log_shipping_secondary_database 必须从 master 辅助服务器上的数据库运行。 此存储过程执行以下操作:

  1. sp_add_log_shipping_secondary_primary 应在此存储过程之前调用,以初始化辅助服务器上的主日志传送数据库信息。

  2. 使用提供的参数为辅助数据库 log_shipping_secondary_databases 添加一个条目。

  3. 使用提供的参数在 log_shipping_monitor_secondary 辅助服务器上添加本地监视器记录。

  4. 如果监视器服务器与辅助服务器不同, sp_add_log_shipping_secondary_database 请使用提供的自变量在 log_shipping_monitor_secondary 监视器服务器上添加监视器记录。

权限

只有 sysadmin 固定服务器角色的成员才能运行此过程。

示例

此示例演示如何使用 sp_add_log_shipping_secondary_database 存储过程在日志传送配置中将数据库 LogShipAdventureWorks 添加为辅助数据库,并将主数据库 AdventureWorks2022 驻留在主服务器上 TRIBECA

EXEC master.dbo.sp_add_log_shipping_secondary_database
    @secondary_database = N'LogShipAdventureWorks',
    @primary_server = N'TRIBECA',
    @primary_database = N'AdventureWorks2022',
    @restore_delay = 0,
    @restore_mode = 1,
    @disconnect_users = 0,
    @restore_threshold = 45,
    @threshold_alert_enabled = 0,
    @history_retention_period = 1440;
GO