一、什么是数据库镜像

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

  快速的故障转移恢复(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

在各服务器创建各端口

--步骤(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)

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

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

测试


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

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

sql server 高可用镜像的更多相关文章

  1. 深入解析 SQL Server 高可用镜像实现原理

    作者:郭忆 本文由 网易云 发布. SQL Server 是 windows 平台 .NET 架构下标配数据库解决方案,与 Oracle.MySQL 共同构成了 DB-Engines Ranking ...

  2. 深入解析SQL Server高可用镜像实现原理

    本文来自网易云社区 SQL Server 是windows平台.NET架构下标配数据库解决方案,与Oracle.MySQL共同构成了DB-Engines Ranking的第一阵营,在国内外企业市场中有 ...

  3. SQL Server高可用——日志传送(4-1)——概论

    原文:SQL Server高可用--日志传送(4-1)--概论 本文作为学习总结,部分内容出自联机丛书及其他书籍 日志传送是什么? SQLServer 2012之前(2012出现了AlwaysOn), ...

  4. SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn(实战篇)之AlwaysOn可用性组搭建

    因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> ...

  5. SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn可用性组(理论篇)

    因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> ...

  6. 京东云数据库RDS SQL Server高可用概述

    数据库的高可用是指在硬件.软件故障发生时,可以将业务从发生故障的数据库节点迁移至备用节点.本文主要讲述SQL Server高可用方案,以及京东云RDS数据库的高可用实现. 一.高可用解决方案总览 1. ...

  7. SQL Server高可用——日志传送(4-3)——使用

    原文:SQL Server高可用--日志传送(4-3)--使用 顺接上一篇:SQL Server高可用--日志传送(4-2)--部署 本文为本系列最重要的一篇,讲述如何使用日志传送及一些注意事项.从上 ...

  8. SQL Server高可用——日志传送(4-2)——部署

    原文:SQL Server高可用--日志传送(4-2)--部署 前文再续,书接上一回.本章演示一下日志传送的具体过程 准备工作: 由于时间关系,已经装好了3台虚拟机,且同在一个域里面: SQL01:主 ...

  9. SQL Server ->> 高可用与灾难恢复(HADR)技术 -- AlwaysOn(实战篇)之建立活动目录域、DNS服务器和Windows故障转移群集(准备工作)

    因为篇幅原因,AlwaysOn可用性组被拆成了两部分:理论部分和实战部分.而实战部分又被拆成了准备工作和AlwaysOn可用性组搭建. 三篇文章各自的链接: SQL Server ->> ...

随机推荐

  1. C语言之linux内核实现位数高低位互换

    linux内核实在是博大精深,有很多优秀的算法,我之前在工作中就遇到过位数高低位交换的问题,那时候对于C语言还不是很熟练,想了很久才写出来.最近在看内核的时候看到有内核的工程师实现了这样的算法,和我之 ...

  2. MongoDB下载安装测试及使用

    1.下载安装 64位:mongodb-win32-x86_64-enterprise-windows-64-2.6.4-signed.msi 余数为1的 db.collection.find({ &q ...

  3. 如何利用c中的指针实现两个8bit的数合并为16bit

    对于从事单片机开发,进行单片机c语言开发的人来说,在对外部信息采集回来的数据进行处理,经常会用到,将采集到的第一个字节作为高8位,采集到的第二个字节作为低8位,从而构成1个16bit的数,得到一次完整 ...

  4. 关于Html5发展和应用前景

    现在的HTML5就像当年崭露头角时的Ajax,有人在做,但不知道叫它什么.最近,苹果在 HTML5上大做文章,而著名的Web设计师Eric Meyer则提出了Web Stacks的概念.Alex Ke ...

  5. MakeFile 文件的作用

    makefile文件保存了编译器和连接器的参数选项,还表述了所有源文件之间的关系(源代码文件需要的特定的包含文件,可执行文件要求包含的目标文件模块及库等).创建程序(make程序)首先读取makefi ...

  6. rails常用命令备忘

    rails new xxx 创建一个新rails项目 rails generate scaffold xxx 创建表模型,视图,控制器和迁移的"脚手架" rake db:migra ...

  7. IT轮子系列(四)——使用Jquery+formdata对象 上传 文件

    前言 在MVC 中文件的上传,一般都采用控件: <h2>IT轮子四——文件上传</h2> <div> <input type="file" ...

  8. 我对AOP的理解

    1.问题 问题:想要添加日志记录.性能监控.安全监测 2.最初解决方案 2.1.最初解决方案 缺点:太多重复代码,且紧耦合 2.2.抽象类进行共性设计,子类进行个性设计,此处不讲解,缺点一荣俱荣,一损 ...

  9. 学习Spring Boot

    Spring boot 是什么 ? 简单说, spring boot 是一个构建项目的工具, 一个脚手架. Spring boot 能干什么? spring boot 做非常少的配置就可以构建生产级别 ...

  10. java -- 对Map按键排序、按值排序

                             java  -- 对Map按键.按值排序 1.按键排序(sort by key) 直接上代码  ↓ public Map<String, Str ...