事件描述:
MIR-A、MIR-B和MIR-W组成高可用性镜像,且用证书进行身份验证。其中MIR-B为主体服务器,MIR-A为镜像服务器,MIR-W为见证服务器。MIR-B服务器发生故障且不能用备份进行恢复(如磁盘故障,系统不能启动等)。MIR-B发生故障后MIR-A自动故障转移成主体服务器,MIR-W仍为见证服务器,现重新安装MIR-B并将其加入原来的镜像组中使其成为镜像服务器。
镜像恢复的一般步骤:
1、在MIR-B上连同私钥一起备份MIR_B_cert证书,以便于在MIR-B完全全新安装后有证书可恢复。
BACKUP CERTIFICATE MIR_B_cert TO FILE = 'C:\cert\MIR_B_cert.cer'
WITH PRIVATE KEY
(
FILE = 'C:\cert\MIR_B_PK.pvk' ,
ENCRYPTION BY PASSWORD = '111111'
);
GO
WITH PRIVATE KEY
(
FILE = 'C:\cert\MIR_B_PK.pvk' ,
ENCRYPTION BY PASSWORD = '111111'
);
GO
2、MIR-B发生故障,MIR-A成为主体服务器。
3、全新安装MIR-B,使其成为一台全新的SQL Server服务器。
4、拷贝MIR_A_cert.cer、MIR_W_cert.cer和连同私钥一起备份的MIR_B_cert证书到MIR-B上。
5、在MIR-B上创建数据库主密钥
--创建数据库主密钥
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '111111';
GO
6、使用私钥和MIR_B_cert.cer恢复证书。
CREATE CERTIFICATE MIR_B_cert
FROM FILE = 'C:\cert\MIR_B_cert.cer'
WITH PRIVATE KEY (FILE = 'C:\cert\MIR_B_PK.pvk',
DECRYPTION BY PASSWORD = '111111');
GO
--创建数据库主密钥
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '111111';
GO
6、使用私钥和MIR_B_cert.cer恢复证书。
CREATE CERTIFICATE MIR_B_cert
FROM FILE = 'C:\cert\MIR_B_cert.cer'
WITH PRIVATE KEY (FILE = 'C:\cert\MIR_B_PK.pvk',
DECRYPTION BY PASSWORD = '111111');
GO
7、在MIR-B上使用上面创建的证书为数据库实例创建镜像端点
CREATE ENDPOINT Endpoint_Mirroring
STATE = STARTED
AS TCP (
LISTENER_PORT=5024,
LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING (
AUTHENTICATION = CERTIFICATE MIR_B_cert,
ENCRYPTION = REQUIRED ALGORITHM RC4,
ROLE = ALL
);
GO
8、为镜像数据库配置入站连接
--在MIR-B上为MIR-A创建登陆
USE master;
CREATE LOGIN MIR_A_login WITH PASSWORD = '111111';
GO
--为以上登陆创建一个用户
CREATE USER MIR_A_user FOR LOGIN MIR_A_login;
GO
--绑定证书到用户
CREATE CERTIFICATE MIR_A_cert
AUTHORIZATION MIR_A_user
FROM FILE = 'C:\MIR_A_cert.cer'
GO
--在镜像端点上为登陆赋予CONNECT权限
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [MIR_A_login];
GO
USE master;
CREATE LOGIN MIR_A_login WITH PASSWORD = '111111';
GO
--为以上登陆创建一个用户
CREATE USER MIR_A_user FOR LOGIN MIR_A_login;
GO
--绑定证书到用户
CREATE CERTIFICATE MIR_A_cert
AUTHORIZATION MIR_A_user
FROM FILE = 'C:\MIR_A_cert.cer'
GO
--在镜像端点上为登陆赋予CONNECT权限
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [MIR_A_login];
GO
--在MIR-B上为MIR-W创建登陆
USE master;
CREATE LOGIN MIR_W_login WITH PASSWORD = '111111';
GO
--为以上登陆创建一个用户
CREATE USER MIR_W_user FOR LOGIN MIR_W_login;
GO
--绑定证书到用户
CREATE CERTIFICATE MIR_W_cert
AUTHORIZATION MIR_W_user
FROM FILE = 'C:\MIR_W_cert.cer'
GO
--在镜像端点上为登陆赋予CONNECT权限
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [MIR_W_login];
GO
USE master;
CREATE LOGIN MIR_W_login WITH PASSWORD = '111111';
GO
--为以上登陆创建一个用户
CREATE USER MIR_W_user FOR LOGIN MIR_W_login;
GO
--绑定证书到用户
CREATE CERTIFICATE MIR_W_cert
AUTHORIZATION MIR_W_user
FROM FILE = 'C:\MIR_W_cert.cer'
GO
--在镜像端点上为登陆赋予CONNECT权限
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [MIR_W_login];
GO
9、在MIR-A上做完全备份和事务日志备份
10、将备份文件拷贝到MIR-B上进行恢复。
添加备份文件,并选中完整数据库备份和事务日志备份。
点击选项,将 恢复状态修改为第二项(RESTORE WITH NORECOVERY)。
11、在MIR-B上为镜像设置伙伴。
12、回到MIR-A上为镜像配置伙伴、见证服务器和数据库镜像的安全级别。
13、检查镜像配置情况。
转载于:https://blog.51cto.com/67054/70412