sp_add_log_shipping_secondary_primary (Transact-SQL)
适用范围:SQL Server
为指定的主数据库设置主服务器信息,添加本地和远程监视器链接,并在辅助服务器上创建复制作业和还原作业。
语法
sp_add_log_shipping_secondary_primary
[ @primary_server = ] 'primary_server'
, [ @primary_database = ] 'primary_database'
, [ @backup_source_directory = ] N'backup_source_directory'
, [ @backup_destination_directory = ] N'backup_destination_directory'
, [ @copy_job_name = ] 'copy_job_name'
, [ @restore_job_name = ] 'restore_job_name'
[ , [ @file_retention_period = ] 'file_retention_period' ]
[ , [ @monitor_server = ] 'monitor_server' ]
[ , [ @monitor_server_security_mode = ] 'monitor_server_security_mode' ]
[ , [ @monitor_server_login = ] 'monitor_server_login' ]
[ , [ @monitor_server_password = ] 'monitor_server_password' ]
[ , [ @copy_job_id = ] 'copy_job_id' OUTPUT ]
[ , [ @restore_job_id = ] 'restore_job_id' OUTPUT ]
[ , [ @secondary_id = ] 'secondary_id' OUTPUT ]
[ ; ]
参数
[ @primary_server = ] 'primary_server'
日志传送配置中 SQL Server 数据库引擎的主要实例的名称。 @primary_server是 sysname,不能NULL
。
[ @primary_database = ] 'primary_database'
主服务器上的数据库名称。 @primary_database为 sysname,无默认值。
[ @backup_source_directory = ] N'backup_source_directory'
存储主服务器的事务日志备份文件的目录。 @backup_source_directory 是 nvarchar(500), 不能 NULL
。
[ @backup_destination_directory = ] N'backup_destination_directory'
备份文件复制到的辅助服务器上的目录。 @backup_destination_directory 是 nvarchar(500), 不能 NULL
。
[ @copy_job_name = ] 'copy_job_name'
要用于创建的SQL Server 代理作业的名称,用于将事务日志备份复制到辅助服务器。 copy_job_name是 sysname,不能NULL
。
[ @restore_job_name = ] 'restore_job_name'
辅助服务器上的SQL Server 代理作业的名称,用于将备份还原到辅助数据库。 restore_job_name是 sysname,不能NULL
。
[ @file_retention_period = ] 'file_retention_period'
备份文件在删除之前参数指定的 @backup_destination_directory 路径中保留备份文件的时长(以分钟为单位)。 @history_retention_period为 int,默认值为 NULL
. 如果不指定值,则使用值 14420。
[ @monitor_server = ] 'monitor_server'
监视服务器的名称。 @monitor_server是 sysname,没有默认值,不能NULL
。
[ @monitor_server_security_mode = ] 'monitor_server_security_mode'
用于连接到监视服务器的安全模式。
1
:Windows 身份验证0
:SQL Server 身份验证
@monitor_server_security_mode 是 位的,默认值 1
为,不能 NULL
。
[ @monitor_server_login = ] 'monitor_server_login'
用于访问监视服务器的帐户的用户名。
[ @monitor_server_password = ] 'monitor_server_password'
用于访问监视服务器的帐户的密码。
[ @copy_job_id = ] 'copy_job_id' OUTPUT
与辅助服务器上的复制作业关联的 ID。 @copy_job_id是唯一的,不能NULL
。
[ @restore_job_id = ] 'restore_job_id' OUTPUT
与辅助服务器上的还原作业关联的 ID。 @restore_job_id是唯一的,不能NULL
。
[ @secondary_id = ] 'secondary_id' OUTPUT
日志传送配置中辅助服务器的 ID。 @secondary_id是唯一的,不能NULL
。
返回代码值
0
(成功)或 1
(失败)。
结果集
无。
注解
sp_add_log_shipping_secondary_primary
必须从 master
辅助服务器上的数据库运行。 此存储过程执行以下操作:
为指定的主服务器和主数据库生成一个辅助 ID。
执行以下操作:
- 使用提供的参数添加
log_shipping_secondary
辅助 ID 的条目。 - 为禁用的辅助 ID 创建一个复制作业。
- 将条目中的
log_shipping_secondary
复制作业 ID 设置为复制作业的作业 ID。 - 为禁用的辅助 ID 创建一个还原作业。
- 将条目中的
log_shipping_secondary
还原作业 ID 设置为还原作业的作业 ID。
- 使用提供的参数添加
权限
只有 sysadmin 固定服务器角色的成员才能运行此过程。
示例
此示例演示如何使用 sp_add_log_shipping_secondary_primary
存储过程为辅助服务器上的主数据库 AdventureWorks2022
设置信息。
EXEC master.dbo.sp_add_log_shipping_secondary_primary @primary_server = N'TRIBECA',
@primary_database = N'AdventureWorks2022',
@backup_source_directory = N'\\tribeca\LogShipping',
@backup_destination_directory = N'',
@copy_job_name = N'',
@restore_job_name = N'',
@file_retention_period = 1440,
@monitor_server = N'ROCKAWAY',
@monitor_server_security_mode = 1,
@copy_job_id = @LS_Secondary__CopyJobId OUTPUT,
@restore_job_id = @LS_Secondary__RestoreJobId OUTPUT,
@secondary_id = @LS_Secondary__SecondaryId OUTPUT;
GO