sp_add_log_shipping_primary_database (Transact-SQL)

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

主题链接图标Transact-SQL 语法约定

语法

sp_add_log_shipping_primary_database [ @database = ] 'database', 
[ @backup_directory = ] 'backup_directory', 
[ @backup_share = ] '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= ] 'backup_directory'
    主服务器上备份文件夹的路径。backup_directory 的数据类型为 nvarchar(500),无默认值,且不能为 NULL。

  • [ @backup_share= ] '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 为 bit,并且不能为 NULL。

  • [ @monitor_server_login= ] 'monitor_server_login'
    访问监视服务器时所用帐户的用户名。

  • [ @monitor_server_password= ] 'monitor_server_password'
    访问监视服务器时所用帐户的密码。

  • [ @backup_threshold= ] backup_threshold
    从上一次备份到引发 threshold_alert 错误之前的时间长度(分钟)。backup_threshold 的数据类型为 int,默认值为 60 分钟。

  • [ @threshold_alert= ] threshold_alert
    超过备份阈值时引发的警报。threshold_alert 的数据类型为 int,默认值为 14,420。

  • [ @threshold_alert_enabled= ] threshold_alert_enabled
    指定超过 backup_threshold 时是否引发警报。默认值零 (0) 表示警报被禁用,将不会引发警报。threshold_alert_enabled 的数据类型为 bit。

  • [ @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,且不能为 NULL。

  • [ @primary_id= ] primary_id OUTPUT
    日志传送配置的主数据库 ID。primary_id 的数据类型为 uniqueidentifier,且不能为 NULL。

  • [ @backup_compression = ] backup_compression_option
    指定日志传送配置是否使用备份压缩。只有 SQL Server 2008 Enterprise(或更高版本)支持此参数。

    0 = 禁用。从不压缩日志备份。

    1 = 启用。始终压缩日志备份。

    2 = 使用备份压缩默认值服务器配置选项的设置。此为默认值。

返回代码值

0(成功)或 1(失败)

结果集

注释

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

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

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

  3. log_shipping_primary_databases 表项中的备份作业 ID 设置为该备份作业的作业 ID。

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

  5. 如果监视服务器与主服务器不同,则使用提供的参数在监视服务器上的 log_shipping_monitor_primary 表中添加一个监视记录。

权限

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

示例

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

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