SQL Server 镜像

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:

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,如需转载请自行联系原作者

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
13天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
52 10
|
1月前
|
SQL 数据库 数据安全/隐私保护
Sql Server数据库Sa密码如何修改
Sql Server数据库Sa密码如何修改
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
96 0
|
23天前
|
SQL
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
启动mysq异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
17 0
|
13天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
78 6
|
1天前
|
SQL 关系型数据库 MySQL
:“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versi
:“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server versi
6 0
|
8天前
|
SQL 安全 网络安全
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
IDEA DataGrip连接sqlserver 提示驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接的解决方法
19 0
|
13天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
17天前
|
SQL 数据安全/隐私保护
SQL Server 2016安装教程
SQL Server 2016安装教程
19 1
|
17天前
|
SQL 安全 Java
SQL server 2017安装教程
SQL server 2017安装教程
15 1