​​Sqlserver 2012 容灾方案 镜像故障转移(非域设置) 介绍​​

见证服务器是在 主机和镜像设置完成后 才设置的

​​Sqlserver 2012 容灾方案 镜像故障转移(非域设置) 主机设置篇​​

​​Sqlserver 2012 容灾方案 镜像故障转移(非域设置)镜像设置篇​​

1~22 请参照 主机和镜像设置篇

23)创建主密钥 密码与主机一样

USE master
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'ABC12345';

24)创建证书

CREATE CERTIFICATE CertC

WITH SUBJECT = 'CertC ',

EXPIRY_DATE ='2119-1-1' ;

GO

25)授权端点

CREATE ENDPOINT DatabaseMirroring
STATE = STARTED AS TCP ( LISTENER_PORT=5022 )
FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE CertC , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );

26)备份证书

出现创建权限问题参考主机 【备份证书】

BACKUP CERTIFICATE CertC

TO FILE = 'C:\Shares\Certs\CertC.cer'

把Certc.cer 放到 主机和镜像机 各一份 把CertA.cer和CertB.cer 文件拷到见证机文件下

三台服务器同时拥有图中的三个文件

Sqlserver 2012 容灾方案 镜像故障转移(非域设置) 见证服务器设置篇_IP

27)在见证机器上创建 主机和镜像机的用户

USE master;
--主机
CREATE LOGIN LoginA WITH PASSWORD = 'himm';

GO

CREATE USER UserA FOR LOGIN LoginA;

GO

CREATE CERTIFICATE CertA

AUTHORIZATION UserA

FROM FILE = 'C:\Shares\Certs\CertA.cer'

GO

GRANT CONNECT ON ENDPOINT::DatabaseMirroring
TO LoginA;

GO --镜像

CREATE LOGIN LoginB WITH PASSWORD = 'himm';

GO

CREATE USER UserB FOR LOGIN LoginB;

GO

CREATE CERTIFICATE CertB AUTHORIZATION UserB FROM FILE = 'C:\Shares\Certs\CertB.cer'

GO

GRANT CONNECT ON ENDPOINT::DatabaseMirroring TO LoginB;

GO

28)主机上创建见证机账户和端点

需要在主机上运行

USE master; 

CREATE LOGIN LoginC WITH PASSWORD = 'himm';

GO

CREATE USER UserC FOR LOGIN LoginC;

GO

CREATE CERTIFICATE CertC AUTHORIZATION UserC FROM FILE = 'C:\Shares\Certs\CertC.cer'

GO

GRANT CONNECT ON ENDPOINT::DatabaseMirroring TO LoginC;

GO

29)镜像机创建见证机账户端点

需要在镜像机上运行

USE master; 

CREATE LOGIN LoginC WITH PASSWORD = 'himm';

GO

CREATE USER UserC FOR LOGIN LoginC;

GO

CREATE CERTIFICATE CertC AUTHORIZATION UserC FROM FILE = 'C:\Shares\Certs\CertC.cer'

GO

GRANT CONNECT ON ENDPOINT::DatabaseMirroring TO LoginC;

GO

30)在主机加入见证机IP

执行完这一步  设置完成

ALTER DATABASE ciTreat SET WITNESS = 'TCP://见证机IP或电脑名:5022'

到这里 已经完成了 三台服务器的搭配 

应用端连接

在ADO.net中

<TIACSDBConnection>Data Source=USER-DFMJP2JB4S;Failover Partner=CC3L2FO67DPHD1V;Initial Catalog=ciTreat;Integrated Security=true;persist security info=True;User Id=sa;Password=himm@123;Pooling = True;Min Pool Size=100;Max Pool Size=1000;MultipleActiveResultSets=True;App=EntityFramework</TIACSDBConnection>

这里要画一个重点

Data Source 和Failover Partner 的值最好与主服务器(图 )设置名称一致 可以提高至少50% 应用端切换效率

Sqlserver 2012 容灾方案 镜像故障转移(非域设置) 见证服务器设置篇_sqlserver 容灾_02

切换

当主服务器恢复后 镜像服务器会成为主机 需要把主机切换回主服务器

USE master;
ALTER DATABASE ciTreat SET PARTNER SAFETY FULL;--高安全模式切换
ALTER DATABASE ciTreat SET PARTNER FAILOVER;--主备切换

切换之前 一定要确认 是否同步完成  并不是主机恢复了 就可以切换  数据需要同步的时间

同步完成 才可以切换

Sqlserver 2012 容灾方案 镜像故障转移(非域设置) 见证服务器设置篇_Sqlserver镜像_03

~~~~~~~~~~~~~~~~结束~~~~~~~~~~~~~~~~