使用T-SQL配置日志传送
作者: 深蓝, 出处:博客园, 责任编辑: 王晓晨,
2008-07-22 15:35
日志传送(log shipping)主要基于SQL Server代理,使用定时作业来完成,另外在配置日志传送之前必须要创建共享文件夹,用于辅助服务器访问。
日志传送(log shipping)主要基于SQL Server代理,使用定时作业来完成,另外在配置日志传送之前必须要创建共享文件夹,用于辅助服务器访问。这里我们假设有数据库logTrans1需要进行日志传送,共享文件夹为“C:\data”,在T-SQL中配置日志传送主要有以下几步操作:
(1)备份主数据库并在辅助服务器上还原主数据库的完整备份,初始化辅助数据库。具体操作如代码: ![]()
| backup database logTrans1 --在主数据库上备份 to disk='c:\logt.bak' --以下是将数据库还原到辅助数据库上 restore database logTrans2 from disk='c:\logt.bak' with NORECOVERY, move 'logTrans' to 'c:\logTrans2.mdf', move 'logTrans_log' to 'c:\logTrans2.ldf' |
(2)在主服务器上,执行sp_add_log_shipping_primary_database以添加主数据库。存储过程将返回备份作业ID和主ID,具体SQL脚本如代码:
| DECLARE @LS_BackupJobId AS uniqueidentifier DECLARE @LS_PrimaryId AS uniqueidentifier EXEC master.dbo.sp_add_log_shipping_primary_database @database = N'logTrans1' ,@backup_directory = N'D:\data' ,@backup_share = N'\\10.101.10.66\data' ,@backup_job_name = N'LSBackup_logTrans1' ,@backup_retention_period = 1440 ,@monitor_server = N'localhost' ,@monitor_server_security_mode = 1 ,@backup_threshold = 60 ,@threshold_alert_enabled = 0 ,@history_retention_period = 1440 ,@backup_job_id = @LS_BackupJobId OUTPUT ,@primary_id = @LS_PrimaryId OUTPUT ,@overwrite = 1 |
(3)在主服务器上,执行sp_add_jobschedule以添加使用备份作业的计划。为了能够尽快看到日志传送的效果,这里将日志备份的频率设置为2分钟一次。但是在实际生产环境中,一般是用不到这么高的执行频率的。添加计划的脚本如代码:
| DECLARE @schedule_id int EXEC msdb.dbo.sp_add_jobschedule @job_name =N'LSBackup_logTrans1', @name=N'BackupDBEvery2Min', @enabled=1, @freq_type=4, @freq_interval=1, @freq_subday_type=4, @freq_subday_interval=2, @freq_relative_interval=0, @freq_recurrence_factor=1, @active_start_date=20080622, @active_end_date=99991231, @active_start_time=0, @active_end_time=235959, @schedule_id = @schedule_id OUTPUT select @schedule_id |
【注意:sp_add_jobschedule存储过程是在msdb数据库中,在其他数据库中是没有该存储过程的。】
- 本文关键词:
- SQL Server
- 数据库

