sp_add_log_shipping_primary_database (Transact-SQL)

适用范围:SQL Server

设置日志传送配置(包括备份作业、本地监视记录及远程监视记录)的主数据库。

Transact-SQL 语法约定

语法

sp_add_log_shipping_primary_database
    [ @database = ] 'database'
    , [ @backup_directory = ] N'backup_directory'
    , [ @backup_share = ] N'backup_share'
    , [ @backup_job_name = ] 'backup_job_name'
    [ , [ @backup_retention_period = ] backup_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' ]
    [ , [ @backup_threshold = ] backup_threshold ]
    [ , [ @threshold_alert = ] threshold_alert ]
    [ , [ @threshold_alert_enabled = ] threshold_alert_enabled ]
    [ , [ @history_retention_period = ] history_retention_period ]
    [ , [ @backup_job_id = ] backup_job_id OUTPUT ]
    [ , [ @primary_id = ] primary_id OUTPUT ]
    [ , [ @backup_compression = ] backup_compression_option ]
[ ; ]

参数

[ @database = ] 'database'

日志传送主数据库的名称。 @database是 sysname,没有默认值,不能NULL

[ @backup_directory = ] N'backup_directory'

主服务器上的备份文件夹的路径。 @backup_directory为 nvarchar(500),没有默认值,不能。NULL

[ @backup_share = ] N'backup_share'

主服务器上的备份目录的网络路径。 @backup_share为 nvarchar(500),没有默认值,不能NULL

[ @backup_job_name = ] 'backup_job_name'

主服务器上将备份复制到备份文件夹中的SQL Server 代理作业的名称。 @backup_job_name是 sysname,不能NULL

[ @backup_retention_period = ] backup_retention_period

在主服务器上的备份目录中保留日志备份文件的时长(以分钟为单位)。 @backup_retention_period是 int 的,没有默认值,不能NULL

[ @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'

用于访问监视服务器的帐户的密码。

[ @backup_threshold = ] backup_threshold

在引发@threshold_alert错误之前上次备份的时间长度(以分钟为单位)。 @backup_thresholdint,默认值为 60 分钟。

[ @threshold_alert = ] threshold_alert

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

[ @threshold_alert_enabled = ] threshold_alert_enabled

指定在超出@backup_threshold是否引发警报。 默认值为零(0),表示警报已禁用且不会引发。 @threshold_alert_enabled位

[ @history_retention_period = ] history_retention_period

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

[ @backup_job_id = ] backup_job_id OUTPUT

与主服务器上的备份作业关联的SQL Server 代理作业 ID。 @backup_job_id是 uniqueidentifier 类型的 OUTPUT 参数,不能NULL

[ @primary_id = ] primary_id OUTPUT

日志传送配置的主数据库 ID。 @primary_id是 uniqueidentifier 类型的 OUTPUT 参数,不能NULL

[ @backup_compression = ] backup_compression_option

指定日志传送配置是否使用 备份压缩

返回代码值

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

结果集

无。

注解

sp_add_log_shipping_primary_database 必须从 master 主服务器上的数据库运行。 此存储过程可执行以下功能:

  1. 生成主 ID,并使用提供的参数为表中 log_shipping_primary_databases 的主数据库添加一个条目。

  2. 为被禁用的主数据库创建一个备份作业。

  3. 将条目中的 log_shipping_primary_databases 备份作业 ID 设置为备份作业的作业 ID。

  4. 使用提供的参数在主服务器上的表中 log_shipping_monitor_primary 添加本地监视器记录。

  5. 如果监视器服务器与主服务器不同, sp_add_log_shipping_primary_database 请使用提供的自变量在 log_shipping_monitor_primary 监视器服务器上添加监视器记录。

权限

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

示例

此示例将在日志传送配置中添加 AdventureWorks2022 数据库作为主数据库。

DECLARE @LS_BackupJobId AS UNIQUEIDENTIFIER;
DECLARE @LS_PrimaryId AS UNIQUEIDENTIFIER;

EXEC master.dbo.sp_add_log_shipping_primary_database
    @database = N'AdventureWorks',
    @backup_directory = N'c:\lsbackup',
    @backup_share = N'\\tribeca\lsbackup',
    @backup_job_name = N'LSBackup_AdventureWorks',
    @backup_retention_period = 1440,
    @monitor_server = N'rockaway',
    @monitor_server_security_mode = 1,
    @backup_threshold = 60,
    @threshold_alert = 0,
    @threshold_alert_enabled = 0,
    @history_retention_period = 1440,
    @backup_job_id = @LS_BackupJobId OUTPUT,
    @primary_id = @LS_PrimaryId OUTPUT,
    @overwrite = 1,
    @backup_compression = 0;
GO