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 ...
随机推荐
- P3402 最长公共子序列
P3402 最长公共子序列经典问题LCS-->LIS把第一数列转化成1~n,然后将第二个数列映射成1~n中的一些数,然后求第二个数列的LIS即可,然后用Bit求LIS,O(nlogN) //数据 ...
- python中关于if-else使用性能的一点感悟
今天做leetcode第7题关于数字倒序的问题,分别使用如下程序:(72ms) class Solution: def reverse(self, x): """ :ty ...
- 配置lambda
=========== 添加 apply plugin: 'me.tatarka.retrolambda' 添加 compileOptions { sourceCompatibilit ...
- hihoCoder.1465.后缀自动机五 重复旋律8(后缀自动机)
题目链接 \(Description\) 给定母串S,求模式串的循环同构串在S中的出现次数. \(Solution\) 将模式串s复制一遍,在母串的SAM上匹配,记录以每个位置作为后缀所能匹配的最大长 ...
- 牛客OI赛制测试赛3游记
A - 数字权重 题目大意: 一个\(n\)位的数字.设第\(i\)位的数为\(a_i\),其中\(a_1\)为最高位,\(a_n\)为最低位,\(k\)为给定的数字.求同时满足满足以下两个条件的数的 ...
- BZOJ2973 : 石头游戏
考虑到$lcm(1,2,3,4,5,6)=60$,所以操作序列每60秒一个循环. 将操作表示成转移矩阵的形式,预处理出前60秒的转移矩阵以及它们的乘积$B$. 那么t秒的转移矩阵为前$t\bmod 6 ...
- 重温JavaScript预编译的四个步骤
JS是解释型语言,运行过程分三步: 一.语法分析(检查代码是否存在语法错误): 二.预编译(代码执行之前,在内存中开辟空间,存放变量与函数): 三.解释执行(执行JS代码): 理解预编译的过程,对于理 ...
- Java+Windows+ffmpeg实现视频转换
最近由于项目需要,研究了一下如何用Java实现视频转换,“着实”废了点心思,整理整理,写出给自己备忘下. 思路 由于之前没有没法过相关功能的经验,一开始来真不知道从哪里入手.当然,这个解决,googl ...
- 在windows server 2008 R2 64bit上面配置PI OPC Server的DCOM
今天想配置PI OPC SERVER的DCOM设置,但是发现在“运行dcomcnfg->组件服务-计算机-我的电脑-DCOM设置”中找不到PI OSI DA Server.如下图所示 这是以前从 ...
- 高速排序C++实现
//高速排序 #include<iostream> #include<functional> #include<Windows.h> using namespace ...