一、背景:
项目中需要双数据库运行,如果主数据库出问题时,软件就自动连接到备数据库,并且此间数据不能有差别。做到无痕切换,所以这里考虑要对数据库做镜像,因为要实现自动切换,所以必须要配置见证服务器。
二、配置镜像注意点:
1.数据库的模式要是完整模式。
2.要对数据库完整备份和事务日志备份,分别还原到镜像库上,使用 NORECOVERY 模式。
3.实现数据库的故障自动切换。
4.要进行sql server的镜像设置一定要使用sql server 的配置管理器开启TCP/IP协议,如果没有启用TCP/IP协议则只能在同一个网段内的机器配置镜像,前面的配置步骤里面所用到的IP地址要换成对应的实例名。同一个网段配置并使用镜像的时实性、传输速率更高,适用于大数据量的同步,跨网段或者跨公网的sql server 镜像一般适用于数据量小,时实性要求不高的数据同步,而且数据库在公网上同步也不安全。
三、配置镜像操作步骤:
1.主机名与对应IP:
主机:192.168.3.21 更改为 ServerA
备机:192.168.3.201 更改为 ServerB
见证:192.168.3.55 更改为 ServerC
2.更改hosts,添加域名解析:
进入C:\Windows\System32\drivers\etc,找到hosts文件,编辑添加主机和备机的IP主机名,如:
192.168.3.21 ServerA
192.168.3.201 ServerB
192.168.3.55 ServerC
3.主机数据/日志还原到备机
主、备、见证数据库的名字,账号密码建议统一一样,服务不会自动维护用户密码,所以需要提前设置好,防止切换以后应用连接不上。
4.创建密钥:
1】、创建主密钥(主库、镜像库、认证服务器上都执行):
use master
go
create master key encryption by password='abc@123456'
Go
2】、分别在主体服务器、镜像服务器、见证服务器上创建证书:
主库上执行:
use master
go
create certificate ServerA_cert with subject='ServerA certificate',expiry_date='2099-1-1'
go
镜像库上执行:
use master
go
create certificate ServerB_cert with subject='ServerB certificate',expiry_date='2099-1-1'
go
见证服务器上执行
use master
go
create certificate ServerC_cert with subject='ServerC certificate',expiry_date=&#