欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

sql server 高可用镜像

程序员文章站 2022-12-19 23:14:00
一、什么是数据库镜像 基本软件的高可用性解决方案 快速的故障转移恢复(3秒转移),低硬件成本 基于数据库级别的实现 二、数据库镜像中的服务器角色 主体服务器 承载主体数据库 接受用户连接和事务处理请求 镜像服务器 承载镜像数据库 作为主体数据库的热备份(主体数据库的变化及时传到镜像数据库中) 仅在故 ......

一、什么是数据库镜像

    基本软件的高可用性解决方案

  快速的故障转移恢复(3秒转移),低硬件成本

  基于数据库级别的实现

二、数据库镜像中的服务器角色

        主体服务器

    承载主体数据库

    接受用户连接和事务处理请求

        镜像服务器

    承载镜像数据库

    作为主体数据库的热备份(主体数据库的变化及时传到镜像数据库中)

    仅在故障转移后接受用户连接,事务处理请求。

        见证服务器(监视)

    监视服务器状态和连接性,实现自动自动故障转移

三、数据库镜像会话

  会话初始化

    镜像请求事务日志记录,与主体服务器实现同步

  会话过程

    主体服务器将日志记录传输给镜像服务器

    各个角色之间相互监视会话状态

       会话终结

    发生故障转移

    管理员终止数据库镜像

四 数据库镜像三种模式

操作模式 事务安全 传输机制 是否需要仲裁 见证服务器 故障转移类型
高可用 Full 同步 Y Y 自动或手动
高级别保护 Full 同步 Y N 仅手动
高性能 OFF 异步 N N/A 仅强制

  高可用:要求高服务可用性, 要求实现自动故障转移,确保数据的完整。

  高级别保护模式: 数据完整性要求,不要求自动故障转移,对服务的可用性要求较低。

       高性能保护模式:主体服务器和镜像服务器距离很远,通讯链路有明显的延迟,对性能的事要求高于数据的完整性。

 五   配置演示

        环境: 数据库版本 sqlserver 2012  系统版本windows server 2008 R2 域管理

        mirroring测试场景

              主体服务器--FETCHINGDATA49\MSSQLSERVERTWO   tcp 5022 端口

              镜像服务器--172.168.18.132\MSSQLSERVER2012  tcp 5022 端口   

              见证服务器--FETCHINGDATA49 

            镜像操作模式: 高可用. 事务安全:Full,传输机制:同步,是否仲裁:Y,见证服务器:Y,故障转移:自动。

--步骤(1) 【主体服务器】设置为完整恢复模式,  做一次完整备份和日志备份
ALTER DATABASE Mirroring_Test SET  RECOVERY FULL 
backup database Mirroring_Test to disk='C:\data\Mirroring_Test.bak' with init
backup log  Mirroring_Test to disk='C:\data\Mirroring_Test.bak'  

  

--步骤(2) 【镜像服务器】还原到镜像库上(将备份文件复制到镜像服务器目录还原)
--运行下面语句,使之创建镜像数据库,处于正在还原状态并且是覆盖。
 restore database Mirroring_Test from disk='D:\data\Mirroring_Test.bak' 
 with file=1,
 move N'Mirroring_Test' To N'D:\data\Mirroring_Test.mdf',
  move N'Mirroring_Test_log' To N'D:\data\Mirroring_Test_log.ldf',
  norecovery, replace

 restore log Mirroring_Test  from disk='D:\data\Mirroring_Test.bak' with file=2,norecovery

    sql server 高可用镜像

      在各服务器创建各端口

--步骤(3) 创建端点  【主体服务器】创建端点用于伙伴通讯,激活端点
create endpoint Mirroring_Test
as TCP (listener_port=5022)
for database_mirroring(role=partner,Encryption=supported)
-- 【镜像服务器】创建端点用于伙伴通讯,激活端点
create endpoint Mirroring_Test
as TCP (listener_port=5022)
for database_mirroring(role=partner,Encryption=supported)
--【见证服务器】创建端点用于见证通讯,激活端点
create endpoint Mirroring_Test
as TCP (listener_port=5023)
for database_mirroring(role=witness,Encryption=supported)

   sql server 高可用镜像

     步骤4 创建connect(连接)权限。为三个数据库实例设置相同的账户名称和口令

           sql server 高可用镜像

       sql server 高可用镜像

        sql server 高可用镜像

         sql server 高可用镜像

         sql server 高可用镜像

           步骤(5) 【主体服务器】配置镜像向导

           sql server 高可用镜像

           sql server 高可用镜像

             sql server 高可用镜像

     

测试


 

--测试手动故障转移(在主体服务器上执行)

ALTER DATABASE Mirroring_Test SET PARTNER failover

--测试自动故障转移(如在主体数据库服务器切断网线,或停止实例)

--测试数据同步在主体服务器上改动数据,在镜像数据库上创建快照查询

CREATE DATABASE snap_Mirroring_Test

ON (NAME=Mirroring_Test,FILENAME='D:\Snap_Mirroring_Test.snap')

   AS SNAPSHOT OF  Mirroring_Test

  

--删除快照

DROP DATABASE snap_Mirroring_Test