Configure Log Shipping
准备工作
两台装有的Windows Server 2012R2以及SQL Server 2012的服务器
下载评估版 Windows Server 2012 R2
下载 Microsoft SQL Server 2012 SP1
两台机器可以相互Ping 通,测试环境为了不必要的麻烦请关闭Windows 防护墙
IP:192.168.100.101 Servername: SQL1\SQL1
IP:192.168.100.102 Servername: SQL2\SQL2
开始SQL Server 代理服务 并设置为自动开启
SQL Agent 登入设置:在服务管理中改成使用Administrator,如自建用户请确保两边用户名以及密码相同。并启动服务。
准备共享文件夹
事务日志传送的就是由主库不断产生事务日志文件的备份(或者叫归档日志,可能更好理解)而备库不断还原这些事务日志备份文件的过程。
中间需要一个文件夹作为双方的访问的共享文件夹。
如果这个共享文件夹位于主库的服务器上,主库的备份路径可以不写成UNC路径的形式,而备库则必须写成UNC路径的形式。
如果这个共享文件夹位于备库的服务器上,主库的备份路径就要写成UNC路径,而备库可以写成本地路径的形式。
如果共享文件夹即不在主库也不在备库的服务器上面,那么备份、还原目录的名称都要写成UNC路径了。
在SQL1的C 盘创建一个名为primaryBackupLog的文件夹,并设置为共享文件夹。 NUC:\\SQL1\primaryBackupLog
在SQL2的C 盘创建一个名为secondaryBackup
SQL Server 请使用SQL Server账号进行登录的,
UserName:sa Password 相同
测试环境为了不必要的麻烦,请使用Administrator账号
将SQL1的 AdventureWorks2012 恢复模式改为完整
1 USE [master] 2 GO 3 ALTER DATABASE [AdventureWorks2012] SET RECOVERY FULL WITH NO_WAIT 4 GO
对SQL1的AdventureWorks2012进行全备
1 USE [master] 2 BACKUP DATABASE [AdventureWorks2012] TO DISK = N'C:\primaryBackupLog\AdventureWorks.BAK' WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks2012-FullBackup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 3 GO
在SQL2上进行还原,并以STANDBY的方式进行恢复
1 USE [master] 2 RESTORE DATABASE [AdventureWorks2012] 3 FROM DISK = N'C:\secondaryBackup\AdventureWorks.BAK' WITH FILE = 1, 4 MOVE N'AdventureWorks2012_Data' TO N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2\MSSQL\DATA\AdventureWorks2012_Data.mdf', 5 MOVE N'AdventureWorks2012_Log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL11.SQL2\MSSQL\DATA\AdventureWorks2012_log.ldf', 6 STANDBY = N'C:\secondaryBackup\AdventureWorks.BAK_S', 7 NOUNLOAD, STATS = 10 8 GO
设置备份选项
配置复制作业
以下为代码方式实现
1 -- 在主服务器上执行下列语句,以便为数据库 [192.168.100.101\SQL1].[AdventureWorks2012] 2 -- 配置日志传送。 3 -- 需要在主服务器上 [msdb] 数据库的上下文中运行该脚本。 4 ------------------------------------------------------------------------------------- 5 -- 添加日志传送配置 6 7 -- ****** 开始: 要在主服务器 [192.168.100.101\SQL1] 上运行的脚本 ****** 8 9 10 DECLARE @LS_BackupJobId AS uniqueidentifier 11 DECLARE @LS_PrimaryId AS uniqueidentifier 12 DECLARE @SP_Add_RetCode As int 13 14 15 EXEC @SP_Add_RetCode = master.dbo.sp_add_log_shipping_primary_database 16 @database = N'AdventureWorks2012' 17 ,@backup_directory = N'C:\primaryBackupLog' 18 ,@backup_share = N'\\SQL1\primaryBackupLog' 19 ,@backup_job_name = N'LSBackup_AdventureWorks2012' 20 ,@backup_retention_period = 4320 21 ,@backup_compression = 2 22 ,@backup_threshold = 60 23 ,@threshold_alert_enabled = 1 24 ,@history_retention_period = 5760 25 ,@backup_job_id = @LS_BackupJobId OUTPUT 26 ,@primary_id = @LS_PrimaryId OUTPUT 27 ,@overwrite = 1 28 29 30 IF (@@ERROR = 0 AND @SP_Add_RetCode = 0) 31 BEGIN 32 33 DECLARE @LS_BackUpScheduleUID As uniqueidentifier 34 DECLARE @LS_BackUpScheduleID AS int 35 36 37 EXEC msdb.dbo.sp_add_schedule 38 @schedule_name =N'LSBackupSchedule_192.168.100.101\SQL11' 39 ,@enabled = 1 40 ,@freq_type = 4 41 ,@freq_interval = 1 42 ,@freq_subday_type = 4 43 ,@freq_subday_interval = 15 44 ,@freq_recurrence_factor = 0 45 ,@active_start_date = 20141015 46 ,@active_end_date = 99991231 47 ,@active_start_time = 0 48 ,@active_end_time = 235900 49 ,@schedule_uid = @LS_BackUpScheduleUID OUTPUT 50 ,@schedule_id = @LS_BackUpScheduleID OUTPUT 51 52 EXEC msdb.dbo.sp_attach_schedule 53 @job_id = @LS_BackupJobId 54 ,@schedule_id = @LS_BackUpScheduleID 55 56 EXEC msdb.dbo.sp_update_job 57 @job_id = @LS_BackupJobId 58 ,@enabled = 1 59 60 61 END 62 63 64 EXEC master.dbo.sp_add_log_shipping_alert_job 65 66 EXEC master.dbo.sp_add_log_shipping_primary_secondary 67 @primary_database = N'AdventureWorks2012' 68 ,@secondary_server = N'192.168.100.102\SQL2' 69 ,@secondary_database = N'AdventureWorks2012' 70 ,@overwrite = 1 71 72 -- ****** 结束: 要在主服务器 [192.168.100.101\SQL1] 上运行的脚本 ****** 73 74 75 -- 在辅助服务器上执行下列语句,以便为数据库 [192.168.100.102\SQL2].[AdventureWorks2012] 76 -- 配置日志传送。 77 -- 需要在辅助服务器上 [msdb] 数据库的上下文中运行该脚本。 78 ------------------------------------------------------------------------------------- 79 -- 添加日志传送配置 80 81 -- ****** 开始: 要在辅助服务器 [192.168.100.102\SQL2] 上运行的脚本 ****** 82 83 84 DECLARE @LS_Secondary__CopyJobId AS uniqueidentifier 85 DECLARE @LS_Secondary__RestoreJobId AS uniqueidentifier 86 DECLARE @LS_Secondary__SecondaryId AS uniqueidentifier 87 DECLARE @LS_Add_RetCode As int 88 89 90 EXEC @LS_Add_RetCode = master.dbo.sp_add_log_shipping_secondary_primary 91 @primary_server = N'192.168.100.101\SQL1' 92 ,@primary_database = N'AdventureWorks2012' 93 ,@backup_source_directory = N'\\SQL1\primaryBackupLog' 94 ,@backup_destination_directory = N'C:\secondaryBackup' 95 ,@copy_job_name = N'LSCopy_192.168.100.101\SQL1_AdventureWorks2012' 96 ,@restore_job_name = N'LSRestore_192.168.100.101\SQL1_AdventureWorks2012' 97 ,@file_retention_period = 4320 98 ,@overwrite = 1 99 ,@copy_job_id = @LS_Secondary__CopyJobId OUTPUT 100 ,@restore_job_id = @LS_Secondary__RestoreJobId OUTPUT 101 ,@secondary_id = @LS_Secondary__SecondaryId OUTPUT 102 103 IF (@@ERROR = 0 AND @LS_Add_RetCode = 0) 104 BEGIN 105 106 DECLARE @LS_SecondaryCopyJobScheduleUID As uniqueidentifier 107 DECLARE @LS_SecondaryCopyJobScheduleID AS int 108 109 110 EXEC msdb.dbo.sp_add_schedule 111 @schedule_name =N'DefaultCopyJobSchedule' 112 ,@enabled = 1 113 ,@freq_type = 4 114 ,@freq_interval = 1 115 ,@freq_subday_type = 4 116 ,@freq_subday_interval = 1 117 ,@freq_recurrence_factor = 0 118 ,@active_start_date = 20141015 119 ,@active_end_date = 99991231 120 ,@active_start_time = 0 121 ,@active_end_time = 235900 122 ,@schedule_uid = @LS_SecondaryCopyJobScheduleUID OUTPUT 123 ,@schedule_id = @LS_SecondaryCopyJobScheduleID OUTPUT 124 125 EXEC msdb.dbo.sp_attach_schedule 126 @job_id = @LS_Secondary__CopyJobId 127 ,@schedule_id = @LS_SecondaryCopyJobScheduleID 128 129 DECLARE @LS_SecondaryRestoreJobScheduleUID As uniqueidentifier 130 DECLARE @LS_SecondaryRestoreJobScheduleID AS int 131 132 133 EXEC msdb.dbo.sp_add_schedule 134 @schedule_name =N'DefaultRestoreJobSchedule' 135 ,@enabled = 1 136 ,@freq_type = 4 137 ,@freq_interval = 1 138 ,@freq_subday_type = 4 139 ,@freq_subday_interval = 1 140 ,@freq_recurrence_factor = 0 141 ,@active_start_date = 20141015 142 ,@active_end_date = 99991231 143 ,@active_start_time = 0 144 ,@active_end_time = 235900 145 ,@schedule_uid = @LS_SecondaryRestoreJobScheduleUID OUTPUT 146 ,@schedule_id = @LS_SecondaryRestoreJobScheduleID OUTPUT 147 148 EXEC msdb.dbo.sp_attach_schedule 149 @job_id = @LS_Secondary__RestoreJobId 150 ,@schedule_id = @LS_SecondaryRestoreJobScheduleID 151 152 153 END 154 155 156 DECLARE @LS_Add_RetCode2 As int 157 158 159 IF (@@ERROR = 0 AND @LS_Add_RetCode = 0) 160 BEGIN 161 162 EXEC @LS_Add_RetCode2 = master.dbo.sp_add_log_shipping_secondary_database 163 @secondary_database = N'AdventureWorks2012' 164 ,@primary_server = N'192.168.100.101\SQL1' 165 ,@primary_database = N'AdventureWorks2012' 166 ,@restore_delay = 0 167 ,@restore_mode = 0 168 ,@disconnect_users = 0 169 ,@restore_threshold = 45 170 ,@threshold_alert_enabled = 1 171 ,@history_retention_period = 5760 172 ,@overwrite = 1 173 174 END 175 176 177 IF (@@error = 0 AND @LS_Add_RetCode = 0) 178 BEGIN 179 180 EXEC msdb.dbo.sp_update_job 181 @job_id = @LS_Secondary__CopyJobId 182 ,@enabled = 1 183 184 EXEC msdb.dbo.sp_update_job 185 @job_id = @LS_Secondary__RestoreJobId 186 ,@enabled = 1 187 188 END 189 190 191 -- ****** 结束: 要在辅助服务器 [192.168.100.102\SQL2] 上运行的脚本 ******
View Code
在SQL1 上进行测试
1 use AdventureWorks2012 2 CREATE TABLE testtable( number int , 3 num nvarchar( 50 4 ) 5 ); 6 INSERT INTO testtable 7 VALUES( 1 , 8 'aaa' 9 ); 10 GO 11 select * from testtable;
Step By Step SQL Server Log Shipping
Configure Log Shipping (SQL Server)
转载于:https://www.cnblogs.com/SignalTips/p/3999673.html
Configure Log Shipping相关推荐
- SQL Server Log Shipping学习总结
SQL Server的日志传送(log shipping)技术一直比较鸡肋,尤其当SQL Server 推出了Always On技术以后,估计使用日志传送(log shipping)这种技术方案的 ...
- SQL Server数据库log shipping 灾备(Part2 )
3.配置步骤: 主服务器(A机)设置 (1) 启用Log Shipping Configuration 右键单击需要配置日志传输的数据库->Tasks-> Ship Transaction ...
- SQLServer主从同步配置(Log Shipping方式)
SQLServer主从同步配置(Log Shipping方式) 目录 SQLServer主从同步配置(Log Shipping方式)
- sql server发布订阅和log shipping日志传送的优缺点
快照传送 备份模式 可选方式 选项参数说明 可发布对象 逻辑说明 适合场景 缺点 PUB/SUB(发布和订阅) 快照发布 发布服务器按照预定的时间间隔向订阅服务器发布快照 表 存储过程 视图等 通过源 ...
- Microsoft Azure 中的 SharePoint Server 2013 灾难恢复
摘要: 使用 Azure,你可以为内部部署 SharePoint 服务器场创建灾难恢复环境.本文介绍如何设计和实施此解决方案. 观看 SharePoint Server 2013 灾难恢复概述视频 当 ...
- SQL FILESTREAM与数据库快照,镜像,TDE和日志传送的兼容性
This article is the continuation of the SQL FILESTREAM series. 本文是SQL FILESTREAM系列的继续. SQL FILESTREA ...
- 数据库镜像怎么还原数据库_镜像数据库上的日志传送
数据库镜像怎么还原数据库 Both log shipping and mirroring are high availability and disaster recovery options ava ...
- 各类web服务器 http access log获取用户和代理ip
IIS.apache.nginx日志中获取访客真实IP的解决方案 http://bbs.jiasule.com/thread-3957-1-1.html 一. IIS Web服务器解决方 ...
- The Log: What every software engineer should know about real-time data's unifying abstraction
分布式经典文章,先mark,后面慢慢总结一下读书心得. 原文链接:The Log: What every software engineer should know about real-time d ...
- SQL Server中的文件流
This article will discuss SQL Server FILESTREAM including installation, configuration, enabling and ...
最新文章
- 为什么「反向传播」一定要在生物学上有对应?
- Linux Bash 笔记
- PHP正则表达式快速学习方法
- 10.2 运算符重载函数作为类成员函数和友元函数
- 蓝牙a2dp硬件卸载是什么意思_索尼这项音频黑科技 让蓝牙音质从此不输有线
- 普通java项目配置mybatis是总是显示数据库驱动找不到
- QlikSense移动端使用攻略
- ASP.NET与JavaScript联合操作之一 选择DataGrid中的CheckBox控件后该行背景变色
- perl学习之:函数总结
- SpringCloud学习笔记014---可以使用json对rabbitmq进行封装,方便数据传输
- sql as关键字_SQL AS关键字概述和示例
- HMAC加密的消息摘要码
- 怎么判断子元素距离父元素顶部位置_css子元素如何相对父元素定位?
- linux 下竟有想大白菜软件,大白菜U盘做PE及CDLINUX镜像共存的启动盘.pdf
- unity PC 、安卓修改数据库文件
- python中index什么意思_Python中index()和seek()的用法(详解)
- dbeaver(下载、安装图文过程)
- 【原创】快速上手使用思维导图
- iOS 直播技术及Demo
- RN学习和开发笔记(一)