在主数据中心,我们有两台服务器设置了MSsql数据库镜像(同步).这为我们提供了足够好的服务器故障高可用性解决方案.如果服务器死机,它会在几秒钟内自动(在第三个见证服务器的帮助下)进行故障转移.
我正在考虑使用镜像数据库中的MSsql复制或日志传送来将热备用服务器保存在另一个数据中心 – 注意这将是跨大西洋的,因此高ping~100ms.我想我可以使用一些短暂(5分钟)TTL的DNS故障转移服务,它将在第一个数据中心发生故障时将流量引导到第二个数据中心.
问题:
我是否可以使用镜像数据库中的复制或日志传送(如果故障转移到另一个实例,则无缝工作)?
哪个是首选 – 复制或日志传送或其他什么?
是否可以让故障转移数据库接受写入?
或者是否会因故障转移而导致潜在的数据丢失,因此在我们故障返回主数据中心之前最好将其设置为只读?
谢谢!
编辑:任何人有任何想法的备用MSsql服务器配置?
解决方法
是否可以让故障转移数据库接受写入?
注意:我假设您的意思是一旦发生故障转移,而不是在日常正常运行期间.
当然,对于日志传送,可以使辅助DC中的故障转移数据库接受写入.如果您可以采用并应用在主DC中运行的数据库的尾部日志备份(以最大限度地减少数据丢失,并保持日志链完好无损),那么您将拥有正在运行的数据库的最新副本,不要忘记你在这种情况下正在暴露.定期日志备份可以提供帮助,但如果您的目标不是丢失任何事务,那么当您仅在另一个DC中的日志传送辅助服务器上运行时,无法保证这一点.在您的HA再次设置之前,最好只运行应用程序处于只读状态.从此状态,您可以将日志备份复制到主数据中心,然后重新初始化镜像.
有用的链接:
http://msdn.microsoft.com/en-us/library/ms187016.aspx – 日志传送和数据库镜像
http://msdn.microsoft.com/en-us/library/ms151799.aspx – 复制和数据库镜像
注意:要获得对logshipping数据库的写访问权限RESTORE DATBASE dbname WITH RECOVERY之后它可以像主程序一样编写,但是在执行此操作后无法恢复任何其他日志.您需要还原新的完整备份才能使logshipping再次运行.但它至少可以让你故障转移到它.