欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-09 23:12:51
...

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 容灾方案 镜像故障转移(非域设置) 见证服务器设置篇

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;aaa@qq.com;Pooling = True;Min Pool Size=100;Max Pool Size=1000;MultipleActiveResultSets=True;App=EntityFramework</TIACSDBConnection>

 

这里要画一个重点

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

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

切换

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

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

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

同步完成 才可以切换

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

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

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