灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2384回复:0

[SQL Server]MSSQL Server LogShipping实现主从切换的详细步骤

楼主#
更多 发布于:2012-09-04 18:06


LogShipping是MSSQL Server高可用性解决方案中比较容易实现的一种,其优劣程度及具体的配置步骤,相信大家都已经很熟悉了,所以不再赘述。我们知道,LogShipping只能使用手工方式实现故障转移,所以往往都有这种感觉:实现主从切换要比前期配置Logshipping更难。今天我结合常见的两个场景,整理了下实现主从切换的详细步骤。  

背景:
为了方便截图,我将Primary server及Secondary设定为在同一个instance上,也就是说LogShipping跟LogShipping_secondary是在同一instance上的两个数据库,我们已经为primary数据库LogShipping配置了日志传送,且LogShipping_secondary是secondary数据库。但是为了方便区分主从,我还是使用 Primary server 及Secondary server来代指这两个数据库
截图:


60_3710_7018be74e5de1ce.jpg[删除]

场景一,Primary 数据库依然可访问,只是需要切换至Secondary数据库

Step1,在Primary server的master数据库中打开一个新的查询窗口,运行下面的sql语句以完成对LogShipping的日志备份且with NORECOVERY。  
Backup log LogShipping to disk = 'E:backupLogShippingLog.bak' with NORECOVERY
截图:


60_3710_c5eb16f29e7a20e.jpg[删除]

Step2, 手动运行Secondary server上的复制文件agent及还原agent,以完成从备份共享文件夹的文件复制及在Secondary server上的还原。
截图:


60_3710_58dca017a4a08c4.jpg[删除]

Step3, 将警报agent、Primary server上的备份agent、Secondary server上的复制文件agent及还原agent都禁用掉。
截图:


60_3710_9502a3413951bd2.jpg[删除]

Step4,在Secondary server上使用step1中创建的日志备份还原LogShipping_secondary数据库,且with RECOVERY。
Restore log LogShipping_secondary  from disk ='E:backupLogShippingLog.bak' with RECOVERY
截图:


60_3710_edb923e8f332ca4.jpg[删除]

Step5, 重新配置现在的Primary server(原Secondary server)对应的Logshipping选项,还是用以前的配置即可,只是将原来的Primary server 设定成了现在的Secondary server(standby mode)。
截图:


60_3710_2706b760c9e0efa.jpg[删除]

Step6,启用当前Primary server(原Secondary server)上的备份agent,启用当前Secondary server(原Primary server)上的复制文件agent及还原agent。

场景二,Primary 数据库遇到了灾难,已不可正常访问,需要迅速转移至Secondary数据库
截图:


60_3710_ea655c459ec38a4.jpg[删除]

Step1, 手动运行Secondary server上的复制文件agent及还原agent,以完成从备份共享文件夹的文件复制及在Secondary server上的还原。
截图:


60_3710_58dca017a4a08c4.jpg[删除]

Step2, 将警报agent、Primary server上的备份agent、Secondary server上的复制文件agent及还原agent都禁用掉。
截图:


60_3710_9502a3413951bd2.jpg[删除]

Step3, 在Secondary server的master数据库中打开一个新的查询窗口,运行下面的sql语句以完成对LogShipping_secondary的还原,且with RECOVERY。实际上也就是将LogShipping_secondary数据库从read-only状态改成online状态。  
Restore database  LogShipping_standby with Recovery
Step4, 重新配置现在的Primary server(原Secondary server)对应的Logshipping选项,还是用以前的配置即可。如果原Primary server还继续可用,只需将原来的Primary server设定成了现在的Secondary server(standby mode),并使用现在的LogShipping_secondary数据库还原出来一个新的LogShipping数据库

注意:在SQL Server 2008 版本中无需再使用DTS/SSIS包或者bcp去同步两个db之间的logins及users了,因为在每次的还原剂备份中都会自动将Primary server上的login及users同步至Secondary server中。


喜欢0 评分0
游客

返回顶部