sp_add_log_shipping_primary_database (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]
参数
- [ @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 = Microsoft Windows 身份验证。
0 = Microsoft 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 时是否引发警报。默认值一 (1) 表示引发警报。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。
返回代码值
0(成功)或 1(失败)
结果集
无
备注
必须从主服务器上的 master 数据库运行 sp_add_log_shipping_primary_database。此存储过程可执行以下功能:
- 生成一个主 ID,并使用提供的参数在 log_shipping_primary_databases 表中为主数据库添加一个表项。
- 为被禁用的主数据库创建一个备份作业。
- 将 log_shipping_primary_databases 表项中的备份作业 ID 设置为该备份作业的作业 ID。
- 使用提供的参数,在主服务器上的 log_shipping_monitor_primary 表中添加一个本地监视记录。
- 如果监视服务器与主服务器不同,则使用提供的参数在监视服务器上的 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
GO