sp_add_log_shipping_secondary_primary (Transact-SQL)

适用范围:SQL Server

为指定的主数据库设置主服务器信息,添加本地和远程监视器链接,并在辅助服务器上创建复制作业和还原作业。

Transact-SQL 语法约定

语法

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_directorynvarchar(500), 不能 NULL

[ @backup_destination_directory = ] N'backup_destination_directory'

备份文件复制到的辅助服务器上的目录。 @backup_destination_directorynvarchar(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 辅助服务器上的数据库运行。 此存储过程执行以下操作:

  1. 为指定的主服务器和主数据库生成一个辅助 ID。

  2. 执行以下操作:

    1. 使用提供的参数添加 log_shipping_secondary 辅助 ID 的条目。
    2. 为禁用的辅助 ID 创建一个复制作业。
    3. 将条目中的 log_shipping_secondary 复制作业 ID 设置为复制作业的作业 ID。
    4. 为禁用的辅助 ID 创建一个还原作业。
    5. 将条目中的 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