sp_add_log_shipping_primary_database (Transact-SQL)
适用范围:SQL Server
设置日志传送配置(包括备份作业、本地监视记录及远程监视记录)的主数据库。
语法
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_threshold 为 int,默认值为 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
:启用。 始终压缩日志备份。2
(默认值):使用视图的设置或配置备份压缩默认值(服务器配置选项)。
返回代码值
0
(成功)或 1
(失败)。
结果集
无。
注解
sp_add_log_shipping_primary_database
必须从 master
主服务器上的数据库运行。 此存储过程可执行以下功能:
生成主 ID,并使用提供的参数为表中
log_shipping_primary_databases
的主数据库添加一个条目。为被禁用的主数据库创建一个备份作业。
将条目中的
log_shipping_primary_databases
备份作业 ID 设置为备份作业的作业 ID。使用提供的参数在主服务器上的表中
log_shipping_monitor_primary
添加本地监视器记录。如果监视器服务器与主服务器不同,
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