配置镜像数据库

为了方便,这里以主数据库和镜像数据库为例,不设置见证数据;

1、环境准备。

(1)准备一个主数据库服务器 10.10.10.1,一个镜像据库服务器 10.10.10.2;

(2)两个服务器都安装好SqlServer 2012;

2、数据库文件准备。

(1)主库创建一个数据库 EmptyDb,恢复模式为【完整】,自动关闭为【false】,

也可以用已经有的数据库,但是注意保证【恢复模式】:【完整】、【自动关闭】:【false】

(2)主库备份数据库 (完整备份)

(3)在镜像库还原数据库 ,保证镜像库还原中状态;

3、加密、证书生成、证书互换

(1)主库执行(保证主服务器存在路径d:\mirror)

USE master
CREATE MASTER KEY ENCRYPTION BY PASSWORD ='123456'
--创建本地证书
CREATE CERTIFICATE MirrorDB0_Cerf WITH SUBJECT='MirrorDB0_Cerf ',EXPIRY_DATE='20501230'
-- 创建镜像端点
CREATE ENDPOINT Mirroring STATE=STARTED
   AS TCP(LISTENER_PORT = 5022, LISTENER_IP = ALL)
   FOR DATABASE_MIRRORING
    (AUTHENTICATION = CERTIFICATE MirrorDB0_Cerf, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE=ALL)
-- 备份证书文件
BACKUP CERTIFICATE MirrorDB0_Cerf TO FILE ='D:\Mirror\MirrorDB0_Cerf.cer'

CREATE LOGIN sqlmirror WITH PASSWORD ='123456' --; //如果已经存在这个用户则不需要创建
CREATE USER sqlmirror FOR LOGIN sqlmirror--; //如果已经存在这个用户则不需要创建

(2) 镜像库执行(保证镜像服务器存在路径d:\mirror),跟主库基本一致,只是证书文件不一样;

 USE master
CREATE MASTER KEY ENCRYPTION BY PASSWORD ='123456'
--创建本地证书
CREATE CERTIFICATE MirrorDB0_Cerf WITH SUBJECT='MirrorDB1_Cerf ',EXPIRY_DATE='20501230'
-- 创建镜像端点
CREATE ENDPOINT Mirroring STATE=STARTED
   AS TCP(LISTENER_PORT = 5022, LISTENER_IP = ALL)
   FOR DATABASE_MIRRORING
    (AUTHENTICATION = CERTIFICATE MirrorDB0_Cerf, ENCRYPTION = REQUIRED ALGORITHM AES, ROLE=ALL)
-- 备份证书文件
BACKUP CERTIFICATE MirrorDB0_Cerf TO FILE ='D:\Mirror\MirrorDB1_Cerf.cer'

CREATE LOGIN sqlmirror WITH PASSWORD ='123456' --; //如果已经存在这个用户则不需要创建
CREATE USER sqlmirror FOR LOGIN sqlmirror--; //如果已经存在这个用户则不需要创建

(3)文件拷贝

 把主库服务器的D:\Mirror\MirrorDB0_Cerf.cer 拷贝到镜像数据库服务器的D:\Mirror;

 把镜像服务器的D:\Mirror\MirrorDB1_Cerf.cer 拷贝到主库数据库服务器的D:\Mirror;

(4)主库执行

--交换证书
GRANT CONNECT ON ENDPOINT::Mirroring TO sqlmirror;
CREATE CERTIFICATE MirrorDB1_Cerf AUTHORIZATION sqlmirror FROM FILE='D:\Mirror\MirrorDB1_Cerf.cer'

(5)镜像库执行

GRANT CONNECT ON ENDPOINT::Mirroring TO sqlmirror;
CREATE CERTIFICATE MirrorDB0_Cerf AUTHORIZATION sqlmirror FROM FILE='D:\Mirror\MirrorDB0_Cerf.cer'

4、生成镜像

(1)镜像库执行

 ALTER DATABASE EmptyDb SET PARTNER = 'TCP://10.10.10.1:5022';

(2)主库执行

  

 ALTER DATABASE EmptyDb SET PARTNER = 'TCP://10.10.10.2:5022';

猜你喜欢

转载自www.cnblogs.com/caiyongxi/p/9110118.html