Sql server 2012数据库镜像测试记录
测试目的
数据库做镜像,主数据库断开后应用程序可以自动连接到镜像数据库。
测试环境如果想主数据库断开后应用程序可以自动连接到镜像数据库,需要三台服务器,一台主体数据库,一台镜像数据库,一台见证服务器,因测试环境限制我们这里将见证服务器和镜像数据库安装在同一台虚拟机不同实例,具体配置如下:
主体数据库服务器 CRMVS(数据库实例:crmvs\mscrm)
镜像数据库服务器 Project(数据库实例:project\mscrm)
见证服务器 Project(数据库实例:project)
为测试主体数据库自动断开后应用程序能够正常连接到镜像数据库,我们使用了一个测试网站程序做实验。配置过程
在CRMVS上新建数据库并还原测试网站数据库MXNET_VitualClientDB,选择属性—选项—更改恢复模式为完整。
完整备份MXNET_VitualClientDB数据库
备份MXNET_VitualClientDB数据库事务日志
将备份文件拷贝到project服务器上对mscrm实例进行还原数据库操作
选择选项将恢复状态更改为下图所示:
回到CRMVS,进行镜像配置:
右击数据库——任务——镜像——配置安全性,打开配置向导进行配置,步骤如下:
配置成功后如下图所示:
配置成功后单击开始镜像
镜像成功后状态会如下图所示已同步:数据库完全同步
到这里数据库镜像配置就大功告成了,下面我们来做一下测试,看看测试结果如何!测试结果
我们首先看一下没有做故障转移前的数据库状态:CRMVS下的MXNET_VitualClientDB数据库显示主体、已同步
Project\MSCRM 实例下的MXNET_VitualClientDB数据库显示 镜像,已同步/正在还原
小V重新启动了CRMVS服务器后,发现主体和镜像的角色自动互换了,在CRMVS断开连接后,Project\MSCRM 实例下的MXNET_VitualClientDB数据库则显示为主体,已同步,我们开始访问测试网站提示连接错误,一分钟后重新刷新网站,访问正常。网站应用程序自动连接到了镜像数据库恢复成的主体数据库。在CRMVS启动成功后我们查看MXNET_VitualClientDB数据库状态发现它变成了镜像,已同步/正在还原,如下图所示。
注意事项:
1、自动切换需要配置见证服务器,如果没有配置见证服务器,需要手动切换。
右击主体数据库选择任务—镜像—故障转移,如下图所示,就可以手动的将主体服务器和镜像服务器进行切换。
2、可能会有小伙伴会问数据库镜像服务配置完成后,大家会发现我们有了两个数据库服务,这两个服务可以实现自动故障转移,但是我们拥有了两个数据库地址,应用程序如何实现自动连接正确的数据库呢?
那我们就需要更新应用程序的数据库连接文件,将两个数据库地址都添加到数据库连接文件中:
例:测试网站的连接
<add key="ConnectionString"value="server=CRMVS\MSCRM;Failover Partner=PROJECT\MSCRM;Initial Catalog=MXNET_VitualClientDB;database=MXNET_VitualClientDB; 问题及解决方法
本次测试出现了以下两个错误,在这里将错误提示和解决方案一起写出来供大家参考!
1、错误提示:
解决方案:
出现这样的错误可能是端口没开或者是端口被占用。本次测试时发生该错误是因为实例的服务账户问题。将实例服务账户更改为域账户后问题解决
2、错误描述:
因为配置sqlserver镜像时候出现错误,想删除原来的已经配置的镜像。但是出现“
已为数据库镜像启动数据库,必须删除数据库镜像才能删除该数据库”的错误提示。
需要执行如下sql语句:
alter database db_name set partner off;
restore database db_name with recovery;
然后就可以删除镜像数据库。