数据库镜像

参考:https://www.cnblogs.com/gered/p/10601202.html

一、Sql server 数据库镜像配置文档

  1. 设置sql server 服务启动账号

    1. 在主服务器和从服务器上创建相同windows账户sqladmin(用户名和密码完全相同).
    2. 为sqladmin分配windows权限,至少为管理权限。
    3. 设置sql server服务的启动账户为sqladmin(注:更改后sql server服务会重启)

DROP MASTER KEY key名–删除KEY

DROP CERTIFICATE  证书名–删除证书

DROP ENDPOINT镜像端点名  --删除镜像端点

  1. 创建主库镜像端点及证书(镜像认证分为:AD域认证,加密证书认证)

    1. 创建 master 数据库主密钥

--删除 KEY

--drop master key

Use master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe';

GO

  1. 对服务器实例创建一个用于其数据库镜像出站连接的加密证书。

--删除证书

-- DROP CERTIFICATE 证书名

USE master;

CREATE CERTIFICATE SQLSVR1_cert WITH SUBJECT =  'SQLSVR1 certificate for database mirroring',

start_date='2019-03-01',expiry_date='2030-01-01';

GO

  1. 使用主服务器实例的证书 SQLSVR1_cert 为主服务器 SQLSVR1 创建端点。

--查看镜像端点

select * from sys.endpoints ;

--删除镜像

Drop endpoint 镜像名

Use master;

CREATE ENDPOINT [默认的镜像端点]

STATE = STARTED AS TCP (

LISTENER_PORT=5022

, LISTENER_IP = ALL

)

FOR DATABASE_MIRRORING (

AUTHENTICATION = CERTIFICATE SQLSVR1_cert

, ENCRYPTION = REQUIRED ALGORITHM AES

, ROLE =  ALL

);

GO

  1. 备份主体服务器 SQLSVR1 的加密证书。一定要保证证书安全无损。

BACKUP CERTIFICATE SQLSVR1_cert TO FILE ='E:\temp_bak\SQLSVR1.cer';

注:要在E盘或相应位置创建目录

  1. 在主服务器实例的 master 数据库中为镜像服务器创建一个登录名

USE master;

CREATE LOGIN SQLSVR2_login WITH PASSWORD='Sample@#';

GO

  1. 为5中新创建的登录名创建一个用户

USE master;

CREATE  USER SQLSVR2_user FOR LOGIN SQLSVR2_login;

GO

  1. 创建从库镜像端点及证书(镜像认证分为:AD域认证,加密证书认证)

    1. 创建 master 数据库主密钥

Use master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe';

GO

  1. 对服务器实例创建一个用于其数据库镜像出站连接的加密证书。

USE master;

CREATE CERTIFICATE SQLSVR1_cert WITH SUBJECT =  'SQLSVR2 certificate for database mirroring',

start_date='2019-03-01',expiry_date='2030-01-01';

GO

  1. 使用主服务器实例的证书 SQLSVR2_cert 为主服务器 SQLSVR2 创建端点。

--查看镜像端点

select * from sys.endpoints ;

--删除镜像

Drop endpoint 镜像名

Use master;

CREATE ENDPOINT [默认的镜像端点]

STATE = STARTED AS TCP (

LISTENER_PORT=5022

, LISTENER_IP = ALL

)

FOR DATABASE_MIRRORING (

AUTHENTICATION = CERTIFICATE SQLSVR2_cert

, ENCRYPTION = REQUIRED ALGORITHM AES

, ROLE =  ALL

);

GO

  1. 备份主体服务器 SQLSVR2 的加密证书。一定要保证证书安全无损。

BACKUP CERTIFICATE SQLSVR2_cert TO FILE ='E:\temp_bak\SQLSVR2.cer';

注:要在E盘或相应位置创建目录

  1. 在主服务器实例的 master 数据库中为镜像服务器创建一个登录名

USE master;

CREATE LOGIN SQLSVR1_login WITH PASSWORD='Sample@#';

GO

  1. 为5中新创建的登录名创建一个用户

USE master;

CREATE  USER SQLSVR2_user FOR LOGIN SQLSVR1_login;

GO

  1. 将用户与镜像服务器证书关联

    1. 已经将从服务器的证书本分SQLSVR2.CER拷贝到E:\temp_bak\
    2. 已经将主服务器证书的证书备份SQLSVR2.CER拷贝到E:\temp_bak\
    3. 在主库上执行:
Use master;CREATE CERTIFICATE SQLSVR2_cert AUTHORIZATION SQLSVR2_user FROM FILE = 'D:\temp_bak\SQLSVR2.cer'
  1. 在从库上执行:
Use master;
     CREATE CERTIFICATE SQLSVR1_cert    AUTHORIZATION SQLSVR1_user FROM FILE='D:\temp_bak\SQLSVR1.cer'
  1. 主从库上授予登录名对数据库镜像端点的 CONNECT 权限。

    1. 主库:
      GRANT connect on endpoint::[默认的镜像端点] TO [SQLSVR2_login];
     GO
  1. 从库
      GRANT connect on endpoint::[默认的镜像端点] TO          [SQLSVR1_login];
     GO
  1. 设置SQLSVR1中主库为完整恢复模式,并备份到从服务器SQLSVR2
        Alter databases db_name set recovery full with no_wait
      Backup databases db_name to disk='URL'
  1. 还原SQLSVR1服务器上传过来的主数据库备份文件
      Restore database db_name from disk='RRL' with norecovery,stats=10,
     Move N'logic_name'to 'RRL', Move N'logic_name'to 'RRL'
  1. (先做)设置镜像主从
      Alter database db_name set partner='TCP//192.168.1.1:5022'
  1. (后做)设置镜像主从
      Alter database db_name set partner='TCP//192.168.1.2:5022'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
从第五步开始,可以用图形操作
  1. 确认主库恢复模式为 完整

  1. 备份主数据库:先做完整备份、再做日志备份。

  1. 将主库的完整备份文件和日志备份文件复制到从数据库主机,进行从库还原

注:还原 恢复状态选择 RESTORE WITH NORECOVERY 模式。

  1. 回到主库创建EBAP数据库镜像

此处用配置安全性向导:

此处我们创建的是不带有见证服务器的镜像(所以不能自动故障转移)

此处默认即可:

选择 连接》连接到从数据库

然后下一步:

下图中的 主休、镜像 不用填写,下一步:

此处可选择开始或 不开始镜像。

选择运行模式:因是不带见证服务器的镜像,所以只能选择高性能或者高安全模式

到此,从主数据库镜像已完成。如下图:

注:如果需要故障自动转移功能的高可用性功能需要增加一台服务器做为见证服务器。

加入见证服务器配置如下:

  1. 在见证服务器上安装SQL SERVER
  2. 创建 master 数据库主密钥

Use master;

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe';

GO

  1. 然后对服务器实例创建一个用于其数据库镜像出站连接的加密证书。

CREATE CERTIFICATE SQLSVR3_cert

WITH SUBJECT = 'SQLSVR3 certificate for database mirroring',

start_date='2019-03-01',expiry_date='2030-01-01';

GO

  1. 使用主体服务器实例的证书 SQLSVR3_cert 为主体服务器 SQLSVR3 创建端点。

CREATE ENDPOINT [默认的镜像端点]

STATE = STARTED

AS TCP (

LISTENER_PORT=5022

, LISTENER_IP = ALL

)

FOR DATABASE_MIRRORING (

AUTHENTICATION = CERTIFICATE SQLSVR3_cert

, ENCRYPTION = REQUIRED ALGORITHM AES

, ROLE = ALL

);

GO

  1. 备份见证服务器 SQLSVR3 的加密证书。请确保此证书保存在安全可靠的存储介质上。

BACKUP CERTIFICATE SQLSVR3_cert TO FILE = 'e:\temp_bak\SQLSVR3.cer';

GO

  1. 创建登录名,在见证服务器实例的 master 数据库中为主体、镜像服务器分别创建1个登录名

USE master;

CREATE LOGIN SQLSVR2_login

WITH PASSWORD = 'Sample@#';

GO

CREATE LOGIN SQLSVR1_login

WITH PASSWORD = 'Sample@#';

GO

  1. 为新创建的2登录名分别创建一个用户

USE master;

CREATE USER SQLSVR2_user FOR LOGIN SQLSVR2_login;

GO

CREATE USER SQLSVR1_user FOR LOGIN SQLSVR1_login;

GO

  1. 将用户与镜像服务器的证书相关联(注:需要有相应路径文件夹)

USE master;

CREATE CERTIFICATE SQLSVR2_cert

AUTHORIZATION SQLSVR2_user

FROM FILE = 'E:\temp_bak\SQLSVR2.cer'

GO

CREATE CERTIFICATE SQLSVR1_cert

AUTHORIZATION SQLSVR1_user

FROM FILE = 'E:\temp_bak\SQLSVR1.cer'

GO

  1. 授予其各自的登录名对数据库镜像端点的 CONNECT 权限。

USE master;

GRANT connect on endpoint::[默认的镜像端点] TO [SQLSVR2_login];

GO

GRANT connect on endpoint::[默认的镜像端点] TO [SQLSVR1_login];

GO

  1. 然后在主、从库上都创建登录名、用户、绑定证书、授权端点(已经复制见证服务器的SQLSVR3.cer证书过去)

USE master;

CREATE LOGIN SQLSVR3_login

WITH PASSWORD = 'Sample@#';

GO

CREATE USER SQLSVR3_user FOR LOGIN SQLSVR3_login;

GO

CREATE CERTIFICATE SQLSVR3_cert

AUTHORIZATION SQLSVR3_user

FROM FILE = 'E:\temp_bak\SQLSVR3.cer'

GO

GRANT connect on endpoint::[默认的镜像端点] TO [SQLSVR3_login];

GO

  1. 在主库上进行与见证服务器连接(注:只能在主库上连接,10.10.10.85为见证服务器IP)

ALTER DATABASE ebap SET WITNESS = 'TCP://10.10.10.85:5022'

  1. 然后查看见证服务器连接情况:

到此有见证服务器的数据库镜像搭建完成。

注:带有见证服务器的数据库镜像模式只能运行 高性能和高可用模式

数据库镜像主从切换

主备切换(注意有高可用、高安全、高性能模式的区别)

【1】.在高安全模式下:

在主机执行:

use master;

alter database Demo1 set partner failover;

即完成主备切换

【2】.在高性能模式下,需要先切换到高安全模式下再执行切换

use master;

alter database Demo1 set partner safety full;

alter database Demo1 set partner failover;

【3】.在主机(SQLSVR1)宕机的情况下在备机(SQLSVR2)进行强制切换:

use master;

alter database Demo1 set partner FORCE_SERVICE_ALLOW_DATA_LOSS;

当主机(SQLSVR1)重新开机后,在SQLSVR2机器上执行

use master;

alter database Demo1 set partner resume;

此时SQLSVR1成为了备机,而SQLSVR2成为了主机。

再到SQLSVR2机器上执行

alter database Demo1 set partner failover;

就成了SQLSVR1成为主机,SQLSVR2成为备机

【4】切换镜像在高性能模式下(慎用,可能会丢失数据)

use master;

alter database Demo1 set partner safety off;

【5】.关闭数据库镜像

ALTER DATABASE Demo1 SET PARTNER OFF

【6】.暂停与恢复数据库镜像

在主体镜像服务器上,若是不小心日志过大,可以进行暂停来设置日志上限

(1)暂停:ALTER DATABASE AdventureWorks2012 SET PARTNER SUSPEND;

(2)恢复:ALTER DATABASE AdventureWorks2012 SET PARTNER RESUME;

【7】移除见证服务器

USE [master]

GO

ALTER DATABASE Demo1 SET WITNESS OFF

GO

sql server 主从数据库镜像+见证服务器相关推荐

  1. SQL Server 2012 数据库镜像配置完整篇

    "数据库镜像"是一种提高 SQL Server 数据库的可用性的解决方案. 镜像基于每个数据库实现,并且只适用于使用完整恢复模式的数据库.数据库镜像维护一个数据库的两个副本,这两个 ...

  2. SQL Server HA - 数据库镜像2 (Mirroring)(1418错误解决)

    SQL Server2008数据库镜像的配置 (1418错误解决) 准备三台安装SQL的服务器,三台中两台担当惊喜数据库,一天当作监控服务器 在要做镜像的数据库之上右键单击,选择备份 备份类型为完整, ...

  3. SQL Server HA - 数据库镜像 (Mirroring)

    数据库镜像简介 From: http://mssqlmct.blog.51cto.com/9951484/1641831 11.3  数据库镜像简介 11.3.1 数据库镜像会话 数据库镜像(Data ...

  4. 信息见证服务器,数据库镜像见证服务器

    数据库镜像见证服务器 12/15/2008 本文内容 若要支持自动故障转移,必须在高安全性模式下配置数据库镜像会话,并且还要具有第三个服务器实例(也称为"见证服务器**").见证服 ...

  5. SQL SERVER 2005数据库镜像搭建

    SQL SERVER 2005数据库镜像搭建 一 概述 数据库镜像是SQL SERVER 2005用于提高数据库可用性的新技术.数据库镜像将事务日志记录直接从一台服务器传输到另一台服务器,并且能够在出 ...

  6. SQL Server主从数据库同步方式及同步问题解决方案总结

    SQL Server主从数据库同步方式及同步问题解决方案总结 参考文章: (1)SQL Server主从数据库同步方式及同步问题解决方案总结 (2)https://www.cnblogs.com/zh ...

  7. SQL Server主从数据库同步

    一.准备工作: 主数据库服务器: OS:Windows Server 2008 R2    DB: SQL Server 2008 R2 Hostname : CXMasterDB  IP: 192. ...

  8. SQL Server主从数据库配置过程

    条件 源端的表,需要添加主键: 检查主库的所有者必须为sa: 检查主库的排序规则,备库要和主库的排序规则要一致: 建议安装与源端一致的操作系统和数据库版本或相近版本: 启动sqlserver 代理服务 ...

  9. sql server 主从数据库同步 利用发布 订阅是实现

    发布订阅功能自SQL 2005之后就有了 配置方法可参考:http://blog.csdn.net/wanmdb/article/details/7515277 遇到问题: 1. 如果代理无法启动 , ...

最新文章

  1. 首届腾讯数字安全创新大赛在京启动,挖掘新锐力量推动产业创新
  2. 两个黑箱问题 ——深度神经网络和脑神经网络
  3. UITableView 重用机制
  4. Scala主构造方法和辅助构造方法
  5. POJ 2229 Sumsets
  6. mysql-零基础安装
  7. Array的javascript数据结构描述
  8. 单机安装oracle,单机安装oracle系统
  9. 超级无敌数字加密算法
  10. 史上最硬核的rpm和dpkg依赖问题解决方案
  11. 今天小小的总结一下最近的小程序中的问题
  12. 操作系统—哲学家进餐问题
  13. Remove_if 删除vector数据
  14. Oracle 11.2.0.4 下载地址
  15. 从零开始Ubuntu16.04+ORBSLAM2+ROS实验实录(四):ORBSLAM评估工具EVO的使用
  16. [转]MOSS 2007 整合運用 - Office System 2007 整合應用秘訣
  17. 7-26 出生年 (15分)
  18. Coding and Paper Letter(三十)
  19. python易盾滑动验证码
  20. Druid 索引服务的资源精细化调度

热门文章

  1. 如何利用IP地址实现在线广告精准投放,只需1个公式
  2. 信号量 java_java 信号量简单分析
  3. 架构——12..15——Zabbix 的循序渐进
  4. Redis 6.0多线程模型总结
  5. 用计算机绘制颗粒级配曲线,精确绘制土颗粒级配曲线图方法的研究.doc
  6. Python实现FLV视频拼接
  7. Oracle EBS Interface/API(31) -PR最终关闭API
  8. Linux常用搜索命令
  9. 贫穷限制想象:3460家上市公司高管年薪大赏
  10. BGP的RR反射原理和实验配置