码迷,mamicode.com
首页 > 数据库 > 详细

SQL Server 2008 R2高可用解决方案--镜像(证书)

时间:2016-10-25 03:39:42      阅读:695      评论:0      收藏:0      [点我收藏+]

标签:db sql server 镜像

SQL Server高可用方案--镜像搭建(证书)

环境:

角色

IP

操作系统

数据库版本

数据库

主

192.168.10.8

Windows Server  2008 R2

SQL Server 2008 R2

fdb

备

192.168.10.9

Windows Server  2008 R2

SQL Server 2008 R2

fdb


一.环境检查

1.网络是否互通

2.防火墙端口是否开放(需要开放1433、5022端口)

3.数据库软件版本是否有差异(软件版本为SQL Server 2008 R2)

4.SQL Server数据库的恢复模式确认,需要为“完整模式”

技术分享

如果不是完整模式可以使用

USE [master]  

GO  

ALTER DATABASE [fdb]SET RECOVERY FULL WITH NO_WAIT  

GO

进行更改,当然也可以通过上面的图形界面进行更改

 

二.使用证书配置镜像,并备份还原数据库

主服务器(192.168.10.8)

备服务器(192.168.10.9)

1.创建数据库主密钥

USE master  

GO  

CREATE MASTER KEY  ENCRYPTION BY PASSWORD = ‘pa$$w0rd‘;

 

 

/* 删除主密钥

USE master;

DROP MASTER KEY

*/

 

2.创建证书并使用主密钥加密

USE master  

GO  

CREATE CERTIFICATE  Host_8_Cert   

WITH Subject =  ‘Host_8 Certificate‘,  

Expiry_Date =  ‘2055-1-1‘; --过期日期

 

 

/*删除证书

USE master;

DROP CERTIFICATE  Host_8_Cert

*/

 

3.创建端点:

创建端点之前,先查找下看是否已经存在端点:

select * from  sys.database_mirroring_endpoints

如果需要删除端点

drop endpoint 端点名

 

IF NOT EXISTS (  SELECT  1  

                FROM    sys.database_mirroring_endpoints )  

    BEGIN    

        CREATE ENDPOINT [DatabaseMirroring]  STATE = STARTED AS TCP ( LISTENER_PORT = 5022,  

            LISTENER_IP = ALL ) FOR  DATABASE_MIRRORING ( AUTHENTICATION =    

            CERTIFICATE Host_8_Cert, ENCRYPTION =  REQUIRED Algorithm AES, ROLE =  

            ALL );  

    END

 

 

4.备份证书

在D盘创建Cert目录

BACKUP CERTIFICATE  Host_8_Cert  

TO FILE = ‘D:\Cert\Host_8_Cert.cer‘;

1.创建数据库主密钥

USE master  

GO  

CREATE MASTER KEY  ENCRYPTION BY PASSWORD = ‘pa$$w0rd‘;

 

 

/* 删除主密钥

USE master;

DROP MASTER KEY

*/

 

2.创建证书并使用主密钥加密

USE master  

GO  

CREATE CERTIFICATE  Host_9_Cert   

WITH Subject =  ‘Host_9 Certificate‘,  

Expiry_Date =  ‘2055-1-1‘; --过期日期

 

 

/*删除证书

USE master;

DROP CERTIFICATE  Host_9_Cert

*/

 

3.创建端点:

创建端点之前,先查找下看是否已经存在端点:

select * from  sys.database_mirroring_endpoints

如果需要删除端点

drop endpoint 端点名

 

IF NOT EXISTS (  SELECT  1  

                FROM    sys.database_mirroring_endpoints )  

    BEGIN    

        CREATE ENDPOINT [DatabaseMirroring]  STATE = STARTED AS TCP ( LISTENER_PORT = 5022,  

            LISTENER_IP = ALL ) FOR  DATABASE_MIRRORING ( AUTHENTICATION =    

            CERTIFICATE Host_9_Cert,  ENCRYPTION = REQUIRED Algorithm AES, ROLE =    

             ALL );  

    END

 

 

4.备份证书

在D盘创建Cert目录

BACKUP CERTIFICATE  Host_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_Login  WITH PASSWORD = ‘pa$$w0rd‘;     

 

6.创建一个用户以映射到上面创建的登录中

CREATE USER Host_9_User  For Login Host_9_Login;

 

7.使用证书进行授权

CREATE CERTIFICATE  Host_9_Cert  

AUTHORIZATION  Host_9_User  

FROM FILE = ‘D:\Cert\Host_9_Cert.cer‘; 

 

8.对登录进行连接端点的授权

GRANT CONNECT ON  ENDPOINT::[DatabaseMirroring] TO [Host_9_Login];

5.创建一个登录给镜像服务器10.8使用

CREATE LOGIN Host_8_Login  WITH PASSWORD = ‘pa$$w0rd‘;     

 

6.创建一个用户以映射到上面创建的登录中

CREATE USER Host_8_User  For Login Host_8_Login;

 

7.使用证书进行授权

CREATE CERTIFICATE  Host_8_Cert  

AUTHORIZATION  Host_8_User  

FROM FILE = ‘D:\Cert\Host_8_Cert.cer‘; 

 

8.对登录进行连接端点的授权

GRANT CONNECT ON  ENDPOINT::[DatabaseMirroring] TO [Host_8_Login];

 

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成为备机


 

 


本文出自 “枫林晚” 博客,请务必保留此出处http://fengwan.blog.51cto.com/508652/1865070

SQL Server 2008 R2高可用解决方案--镜像(证书)

标签:db sql server 镜像

原文地址:http://fengwan.blog.51cto.com/508652/1865070

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!