SQL Server 2008 R2高可用解决方案--镜像(证书)
SQL Server高可用方案--镜像搭建(证书)环境:
角色
IP
操作系统
数据库版本
数据库
主
192.168.10.8
Windows Server2008 R2
SQL Server 2008 R2
fdb
备
192.168.10.9
Windows Server2008 R2
SQL Server 2008 R2
fdb
一.环境检查
1.网络是否互通
2.防火墙端口是否开放(需要开放1433、5022端口)
3.数据库软件版本是否有差异(软件版本为SQL Server 2008 R2)
4.SQL Server数据库的恢复模式确认,需要为“完整模式”
如果不是完整模式可以使用
USE
GO
ALTER DATABASE SET RECOVERY FULL WITH NO_WAIT
GO
进行更改,当然也可以通过上面的图形界面进行更改
二.使用证书配置镜像,并备份还原数据库
主服务器(192.168.10.8)
备服务器(192.168.10.9)
1.创建数据库主密钥
USE master
GO
CREATE MASTER KEYENCRYPTION BY PASSWORD = 'pa$$w0rd';
/* 删除主密钥
USE master;
DROP MASTER KEY
*/
2.创建证书并使用主密钥加密
USE master
GO
CREATE CERTIFICATEHost_8_Cert
WITH Subject ='Host_8 Certificate',
Expiry_Date ='2055-1-1'; --过期日期
/*删除证书
USE master;
DROP CERTIFICATEHost_8_Cert
*/
3.创建端点:
创建端点之前,先查找下看是否已经存在端点:
select * fromsys.database_mirroring_endpoints
如果需要删除端点
drop endpoint 端点名
IF NOT EXISTS (SELECT1
FROM sys.database_mirroring_endpoints )
BEGIN
CREATE ENDPOINT STATE = STARTED AS TCP ( LISTENER_PORT = 5022,
LISTENER_IP = ALL ) FORDATABASE_MIRRORING ( AUTHENTICATION =
CERTIFICATE Host_8_Cert, ENCRYPTION =REQUIRED Algorithm AES, ROLE =
ALL );
END
4.备份证书
在D盘创建Cert目录
BACKUP CERTIFICATEHost_8_Cert
TO FILE = 'D:\Cert\Host_8_Cert.cer';
1.创建数据库主密钥
USE master
GO
CREATE MASTER KEYENCRYPTION BY PASSWORD = 'pa$$w0rd';
/* 删除主密钥
USE master;
DROP MASTER KEY
*/
2.创建证书并使用主密钥加密
USE master
GO
CREATE CERTIFICATEHost_9_Cert
WITH Subject ='Host_9 Certificate',
Expiry_Date ='2055-1-1'; --过期日期
/*删除证书
USE master;
DROP CERTIFICATEHost_9_Cert
*/
3.创建端点:
创建端点之前,先查找下看是否已经存在端点:
select * fromsys.database_mirroring_endpoints
如果需要删除端点
drop endpoint 端点名
IF NOT EXISTS (SELECT1
FROM sys.database_mirroring_endpoints )
BEGIN
CREATE ENDPOINT STATE = STARTED AS TCP ( LISTENER_PORT = 5022,
LISTENER_IP = ALL ) FORDATABASE_MIRRORING ( AUTHENTICATION =
CERTIFICATE Host_9_Cert,ENCRYPTION = REQUIRED Algorithm AES, ROLE =
ALL );
END
4.备份证书
在D盘创建Cert目录
BACKUP CERTIFICATEHost_9_Cert
TO FILE = 'D:\Cert\Host_9_Cert.cer';
通过以上我们分别在10.8创建以Host_8_Cert证书认证的端点,以及在10.9创建了以Host_9_Cert证书认证的端点。
将D盘Cert目录下的Host_8_Cert证书复制到10.9服务器的对应的位置,同时将10.9上的Host_9_Cert证书复制到10.8服务器上
192.168.10.8
192.168.10.9
5.创建一个登录给镜像服务器10.9使用
CREATE LOGIN Host_9_LoginWITH PASSWORD = 'pa$$w0rd';
6.创建一个用户以映射到上面创建的登录中
CREATE USER Host_9_UserFor Login Host_9_Login;
7.使用证书进行授权
CREATE CERTIFICATEHost_9_Cert
AUTHORIZATIONHost_9_User
FROM FILE = 'D:\Cert\Host_9_Cert.cer';
8.对登录进行连接端点的授权
GRANT CONNECT ONENDPOINT:: TO ;
5.创建一个登录给镜像服务器10.8使用
CREATE LOGIN Host_8_LoginWITH PASSWORD = 'pa$$w0rd';
6.创建一个用户以映射到上面创建的登录中
CREATE USER Host_8_UserFor Login Host_8_Login;
7.使用证书进行授权
CREATE CERTIFICATEHost_8_Cert
AUTHORIZATIONHost_8_User
FROM FILE = 'D:\Cert\Host_8_Cert.cer';
8.对登录进行连接端点的授权
GRANT CONNECT ONENDPOINT:: TO ;
9.在主服务器对数据库进行备份,以及日志进行备份(192.168.10.8)
数据库备份
日志备份
数据库和日志备份是可以备份到一个文件。
10.在备机上对数据库进行还原(192.168.10.9)
a.选中源设备,并选中备份集中的“完整数据库备份”,并选择目录数据库为fdb
b.点击“选项”进行不回滚事务的恢复
使用同样的方法对事务日志也进行“不回滚提交事务的恢复”
恢复完之后可以看到数据库,提示“正在还原”
三.配置镜像
在192.168.10.9中执行
ALTER DATABASEfdb
SET PARTNER = 'TCP://192.168.10.8:5022';
GO
然后再在192.168.10.8中执行
ALTER DATABASEfdb
SET PARTNER = 'TCP://192.168.10.9:5022';
GO
到这里数据库的镜像就配置成功了
四.主备切换
1.在高安全模式下:
在主机执行:
use master;
alter database fdbset partner failover;
即完成主备切换
2.在高性能模式下,需要先切换到高安全模式下再执行切换
use master;
alter database fdbset partner safety full;
alter database fdbset partner failover;
3.在主机(10.8)宕机的情况下在备机(10.9)进行强制切换:
use master;
alter database fdbset partner FORCE_SERVICE_ALLOW_DATA_LOSS;
当主机(10.8)重新开机后,在10.9机器上执行
use master;
alter database fdbset partner resume;
此时10.8成为了备机,而10.9成为了主机。
再到10.9机器上执行
alter database fdbset partner failover;
就成了10.8成为主机,10.9成为备机
页:
[1]