DatabaseMirroring搭建
1. 概述
数据库镜像维护一个数据库的两个副本,这两个副本必须驻留在不同的 SQL Server 数据库引擎 服务器实例上。通常,这些服务器实例驻留在不同位置的计算机上。启动数据库上的数据库镜像操作时,在这些服务器实例之间形成一种关系,称为“数据库镜像会话”。其中一个服务器实例使数据库服务于客户端(“主体服务器”),另一个服务器实例则根据镜像会话的配置和状态,充当热备用或温备用服务器(“镜像服务器”)。同步数据库镜像会话时,数据库镜像提供热备用服务器,可支持在已提交事务不丢失数据的情况下进行快速故障转移。未同步会话时,镜像服务器通常用作热备用服务器(可能造成数据丢失)。在“数据库镜像会话”中,主体服务器和镜像服务器作为“伙伴”进行通信和协作。两个伙伴在会话中扮演互补的角色:“主体角色”和“镜像角色”。在任何给定的时间,都是一个伙伴扮演主体角色,另一个伙伴扮演镜像角色。每个伙伴拥有其当前角色。拥有主体角色的伙伴称为“主体服务器”,其数据库副本为当前的主体数据库。拥有镜像角色的伙伴称为“镜像服务器”,其数据库副本为当前的镜像数据库。如果数据库镜像部署在生产环境中,则主体数据库即为“生产数据库”。数据库镜像涉及尽快将对主体数据库执行的每项插入、更新和删除操作“重做”到镜像数据库中。重做通过将活动事务日志记录的流发送到镜像服务器来完成,这会尽快将日志记录按顺序应用到镜像数据库中。与逻辑级别执行的复制不同,数据库镜像在物理日志记录级别执行。从 SQL Server 2008 开始,在事务日志记录的流发送到镜像服务器之前,主体服务器会先将其压缩。在所有镜像会话中都会进行这种日志压缩。
2. 目的
发生灾难时,在具有自动故障转移功能的高安全性模式下,自动故障转移可快速使数据库的备用副本联机(而不会丢失数据)。在其他运行模式下,数据库管理员可以选择强制服务(可能丢失数据),以替代数据库的备用副本
3. 测试环境
3.1. 主服务器
Windows 2008R2 64bit,2G Mem,CPU 2.0GHz,局域网,IP:192.168.102.4x
3.2. 镜像服务器
Windows 2008R2 64bit,2G Mem,CPU 2.0GHz,局域网,IP:192.168.102.4y
3.3. 见证服务器
Windows 2008R2 64bit,2G Mem,CPU 2.0GHz,局域网,IP:192.168.102.4z
4. 配置镜像
4.1. 准备工作
4.1.1. 账户建立
Windows账户建立:分别在”主服务器”,”镜像服务器”,”见证服务器”,上建立本地帐号”public”,密码设置相同。
4.1.2. 端口开放
保持三台服务器端口5022端口可用,可用telnet命令测试,telnetIP 5022(建立完通讯端点后测试)
4.2. 配置镜像(基于工作组模式)
4.2.1. 主服务器上执行
|
use master |
4.2.2. 镜像服务器上执行
|
use master |
4.2.3. 启动镜像
4.2.3.1. 镜像服务器执行
|
--启动镜像 |
4.2.3.2. 主体服务器执行
|
--启动镜像 |
4.2.4. 测试镜像效果
4.2.4.1. 主体服务器执行
|
use Northwind |
4.2.4.2. 镜像服务器执行
|
use master |
4.2.4.3. 通过镜像监视器查看镜像状态
4.2.4.4. 使用系统视图查看镜像的状态
|
select * from sys.database_mirroring |
4.2.5. 加入见证服务器
4.2.5.1. 见证服务器执行
|
use master |
4.2.5.2. 主体服务器执行
|
--加入见证服务器 |
5. 故障模拟
5.1. 数据库损坏
5.1.1. 停止主服务器的SQLServer服务。
5.1.2. 此时辅助服务器自动切换为主体角色(主体已断开连接)(192.168.102.4y)
5.1.3. 启动原主体数据库的SQLServer服务(192.168.102.4x)
5.1.4. 此时192.168.102.4y变为(主体/已同步)状态,192.168.102.4x变成(镜像/已经同步)
5.2. 手动切换
5.2.1. 主体服务器执行
|
alter database Northwind |
5.2.2. 主体及镜像角色自动实现了切换
6. 总结
6.1. 注意点
6.1.1. 基于工作组的镜像,需要在各服务器上建立相同的本地帐号,且密码相同
6.1.2. 启动镜像必须从镜像服务器开始执行
6.1.3. 见证服务器需要在主体服务器上加入
6.1.4. 数据库模式需要为完整模式
6.1.5. 各服务器的版本必须相同
6.1.6. 保证镜像数据库有足够的空间容纳镜像数据库
6.1.7. 在镜像服务器上还原数据库,要用Norecovery选项
6.1.8. 如果数据库镜像已经停止,则必须将对主体数据库执行的所有后续日志备份应用到镜像数据库中,然后才可以重新启动镜像
6.2. 结论
6.2.1. 基于工作组的镜像操作起来比基于证书的要简单,切换容易
6.2.2. SQLAgent对于镜像来说是非必须的,不同于Log Shipping
6.3. 知识点
6.3.1. 修改数据库的所有者
|
alter authorization on Database::Northwind to [sa] |
DatabaseMirroring搭建的更多相关文章
- SQL Server非域(跨域)环境下镜像(Mirror)的搭建步骤及注意事项
在实际的生产环境下,我们经常需要跨域进行数据备份,而创建Mirror是其中一个方案.但跨域创建Mirror要相对复杂的多,需要借助证书进行搭建. 下面我们将具体的步骤总结如下: 第一部分 创建证书 S ...
- 非域环境下SQL Server搭建Mirror(镜像)的详细步骤
1.测试验证环境 服务器角色 机器名 IP SQL Server Ver 主体服务器 WIN-TestDB4O 172.83.XXX.XXX SQL Server 2012 - 11.0.5058.0 ...
- Online Judge(OJ)搭建(第一版)
搭建 OJ 需要的知识(重要性排序): Java SE(Basic Knowledge, String, FileWriter, JavaCompiler, URLClassLoader, Secur ...
- Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境
一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...
- 总结:Mac前端开发环境的搭建(配置)
新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...
- Angular企业级开发(5)-项目框架搭建
1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
- 一起学微软Power BI系列-使用技巧(4)Power BI中国版企业环境搭建和帐号问题
千呼万唤的Power BI中国版终于落地了,相信12月初的微软技术大会之后已经铺天盖地的新闻出现了,不错,Power BI中国版真的来了,但还有些遗憾,国际版的一些重量级服务如power bi emb ...
- 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)
从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...
随机推荐
- InnoDB的锁机制浅析(一)—基本概念/兼容矩阵
InnoDB锁的基本概念 文章总共分为五个部分: InnoDB的锁机制浅析(一)-基本概念/兼容矩阵 InnoDB的锁机制浅析(二)-探索InnoDB中的锁(Record锁/Gap锁/Next-key ...
- 蓝牙设备探测工具blueranger
蓝牙设备探测工具blueranger blueranger是Kali Linux预安装的一款蓝牙探测工具.该工具通过向指定设备发送蓝牙L2CAP协议的ping包,创建连接.由于大部分蓝牙设备对pi ...
- BeagleBone Black教程之BeagleBone Black设备的连接
BeagleBone Black教程之BeagleBone Black设备的连接 BeagleBone Black开发前需要准备的材料 经过上面的介绍,相信你已经对BeagleBone有了大致的了解, ...
- handlebars.min.js的使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Dos常用命令大全
dos命令进入文件夹 输入 D: 回车,进入D盘的根目录,然后输入dir 回车 可以查看根目录下的文件和文件夹, 输入 cd空格文件夹的名字(不区分大小写) 进入文件夹根目录下, 依次输入dir 查 ...
- Linux C语言编程学习笔记 (1)进程控制入门
想进行Linux系统开发已经很久了,一直没有付诸实践.今日终于开始学习Linux下的C语言编程,研究一天,终于大概弄明白了Linux系统进程管理的一些基本概念和编程方法,总结下来以方便大家学习和自己实 ...
- VS2013发布网站删除.CS文件
VS2013发布网站时,默认不删除.CS文件,想要删除的话,需要一些配置 1.在要发布的网站上右键,选择"发布网站". 2.在发布窗口中,会让你选择一个发布配置文件,没有的话点 ...
- centos ssh终端下高亮显示git分支名
#set git branch green=$'\e[1;32m' magenta=$'\e[1;35m' normal_colours=$'\e[m' function find_git_branc ...
- 0xWS2812 STM32 driver for WS2812(B) RGB LEDs
0xWS2812 STM32 driver for WS2812(B) RGB LEDs 0xWS2812 pronounced "hex-WS2812" This code ai ...
- Memcache 分布式高可用集群介绍
分布式缓存需考虑如下三点: 1.缓存本身的水平线性扩展的问题. 2.缓存大病罚下的本身性能问题. 3.避免缓存的单点鼓掌问题. 分布式缓存存在的问题: 1.内存本身的管理问题.内存的分配,管理和回收机 ...