SQL Server 镜像

本文详细介绍如何在SQL Server 2005环境下搭建数据库镜像,包括环境要求、准备工作、证书创建与备份、端点创建、证书交换与登录创建、镜像关系建立及主备切换等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.环境要求

SQL Server 2005 SP3以上,主机与备机的SQL Server实例版本相同

一台主机:VM-DB-SRV1

一台备机:VM-DB-SRV2

主机与备机互通。


2.准备工作

在主机上设定主体库使用完整恢复模式

1
ALTER DATABASE EsmDB SET RECOVERY FULL


在主机上完整备份主体库

1
2
3
4
--完整备份
BACKUP DATABASE EsmDB TO DISK='C:\EsmDB.bak'
--备份日志
BACKUP LOG EsmDB TO DISK='C:\EsmDBlog.bak'


将2个bak文件拷贝到备机上,在备机上恢复库,使用NORECOVERY模式

1
2
3
4
--恢复数据库
RESTORE DATABASE EsmDB FROM DISK='C:\EsmDB.bak' WITH NORECOVERY
--恢复日志
RESTORE LOG EsmDB FROM DISK='C:\EsmDBlog.bak' WITH NORECOVERY


3.建立镜像

3.1.创建证书并备份

主机执行

1
2
3
4
5
6
7
USE master
--加密
CREATE MASTER KEY ENCRYPTION BY PASSWORD='mirror'
--为本机创建证书
CREATE CERTIFICATE SRV1_CERT WITH SUBJECT='vm-db-srv1',START_DATE='01/01/2013',EXPIRY_DATE='01/01/2050'
--备份到磁盘
BACKUP CERTIFICATE SRV1_CERT TO FILE='C:\SRV1_CERT.cer'


备机执行

1
2
3
4
5
6
7
USE master
--加密
CREATE MASTER KEY ENCRYPTION BY PASSWORD='mirror'
--为本机创建证书
CREATE CERTIFICATE SRV2_CERT WITH SUBJECT='vm-db-srv2',START_DATE='01/01/2013',EXPIRY_DATE='01/01/2050'
--备份到磁盘
BACKUP CERTIFICATE SRV2_CERT TO FILE='C:\SRV2_CERT.cer'


3.2.创建端点

主机执行

1
2
3
4
5
6
7
8
9
10
CREATE ENDPOINT EP                           --自定义端点名为EP
STATE=STARTED
AS TCP(LISTENER_PORT=5022, LISTENER_IP=ALL)--使用5022端口
FOR
DATABASE_MIRRORING                           --数据库镜像用
(
    AUTHENTICATION=CERTIFICATE SRV1_CERT,    --使用证书SRV1_CERT
    ENCRYPTION=REQUIRED ALGORITHM AES,
    ROLE=ALL
)


备机执行

1
2
3
4
5
6
7
8
9
10
CREATE ENDPOINT EP                           --自定义端点名为EP
STATE=STARTED
AS TCP(LISTENER_PORT=5022, LISTENER_IP=ALL)--使用5022端口
FOR
DATABASE_MIRRORING                           --数据库镜像用
(
    AUTHENTICATION=CERTIFICATE SRV2_CERT,    --使用证书SRV2_CERT
    ENCRYPTION=REQUIRED ALGORITHM AES,
    ROLE=ALL
)


3.3.互换证书并创建登录

主机拷贝备机的证书文件SRV2_CERT.cer,然后执行

1
2
3
4
5
6
7
8
--创建SRV2用的登录
CREATE LOGIN SRV2_login WITH PASSWORD='mirror'
--创建SRV2用的帐号
CREATE USER SRV2_user FOR LOGIN SRV2_login
--在SRV1上创建SRV2的证书,使用拷贝过来的cer文件
CREATE CERTIFICATE SRV2_CERT AUTHORIZATION SRV2_user FROM FILE='C:\SRV2_CERT.cer'
--授予SRV2连接到端点的权限
GRANT CONNECT ON ENDPOINT::EP TO SRV2_login


备机拷贝主机的证书文件SRV1_CERT.cer,然后执行

1
2
3
4
5
6
7
8
--创建SRV1用的登录
CREATE LOGIN SRV1_login WITH PASSWORD='mirror'
--创建SRV1用的帐号
CREATE USER SRV1_user FOR LOGIN SRV1_login
--在SRV2上创建SRV1的证书,使用拷贝过来的cer文件
CREATE CERTIFICATE SRV1_CERT AUTHORIZATION SRV1_user FROM FILE='C:\SRV1_CERT.cer'
--授予SRV1连接到端点的权限
GRANT CONNECT ON ENDPOINT::EP TO SRV1_login


3.4.建立镜像关系

先在备机执行

1
2
--为EsmDB库设定主体服务器为SRV1
ALTER DATABASE EsmDB SET PARTNER='TCP://VM-DB-SRV1:5022'


然后主机执行

1
2
--为EsmDB库设定镜像服务器为SRV2
ALTER DATABASE EsmDB SET PARTNER='TCP://VM-DB-SRV2:5022'


成功后主机上的EsmDB库会显示为“(主体,正在同步)”,备机上的EsmDB库会显示为“(镜像,正在同步/正在还原)”


4.主备切换

如果需要主动进行主备互换,在主机上执行

1
ALTER DATABASE EsmDB SET PARTNER FAILOVER


成功后主备互换,SRV2成功主机,SRV1成功备机。



如果主机无法工作,需要备机紧急启动,在备机执行

1
ALTER DATABASE EsmDB SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS


执行此命令前,备机上的EsmDB一定是显示为“(镜像,已断开连接)”。

成功后,EsmDB先显示“正在恢复”,10秒左右会变成“(主体,已断开连接)”。


如果此时主机恢复工作,主机上的EsmDB会显示为“(镜像,挂起/正在还原)”,备机上的EsmDB会显示为“(主体,挂起)”。


此时如果需要恢复主机工作,需要在备机上执行

1
2
ALTER DATABASE EsmDB SET PARTNER RESUME
ALTER DATABASE EsmDB SET PARTNER FAILOVER






     本文转自 BoyTNT 51CTO博客,原文链接:http://blog.51cto.com/boytnt/1344385,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值