数据库现在已经变成企业的基石,所以需要保证数据库的高可用性。同时也需要防止意外事情导致整个数据中心出现问题(比如地址,水灾等等)。所以对于数据中心高可用性和灾难恢复是同时要考虑。 使用 sql server的 数据库镜像和日志传送两项功能可以帮助我们完
数据库现在已经变成企业的基石,所以需要保证数据库的高可用性。同时也需要防止意外事情导致整个数据中心出现问题(比如地址,水灾等等)。所以对于数据中心高可用性和灾难恢复是同时要考虑。
使用sql server的数据库镜像和日志传送两项功能可以帮助我们完成上述目标。
情景:a 数据中心有sql2k8和r2两台数据库服务器,b数据中心有sql28(与a地域不同,为了防止意外导致整个a数据中心不可用),需要配置的数据库为auditdb。
配置如下:
1. 先对sql2k8的auditdb做完整备份和日志备份。
2. 将1创建的备份还原到r2和sql28(restorewith norecovery)。
3. 在management studio选择auditdb右键选择属性创建到sql2k8 auditdb的镜像(选择监视服务器)。
4. 配置镜像完成后,在属性中选择创建log shipping到sql28 auditdb(选择监视服务器)。
5. 上面的步骤完成后就可以实现高可用性以及灾难后恢复。
当监视服务器发现sql2k8出现问题后会自动failover到r2,应用程序就可以自动访问r2,从而减少down机时间(应用程序dbconnection中需要做配置:http://technet.microsoft.com/en-us/library/ms175484.aspx)。当整个数据中心出现问题时,我们仍然可以将数据中心b的服务器变为可用(logshipping会有一定的数据损失取决于设置的备份还原设置)。
好消息是在sql server 2012中用always on就可以实现上述功能,不需要使用两种功能组合。
其实集群,数据库镜像,日志传送配合使用可以产生多种组合解决方案,基本上可以达到0数据损失,99.999%的高可用性。(解决方案比如:a数据中心集群+b数据集群镜像,a数据集群 镜像+b数据集群日志传送,a数据集群集群+b数据中心 日志传送)。