SQL Server 2005高可用性之镜像功能
SQL Server 2005相对于SQL Server 2000来说,无论是性能还是功能都有一个相当大的提高,甚至可以用“革命”来形容这一次升级。SQL Server 2005使 SQL Server 跻身于企业级数据库行列。在数据高可用性方面,SQL Server 2005为用户提供了数据镜像、复制、故障转移群集、日志传送功能。本文向读者简单介结SQL Server 2005镜像功能。
一、镜像简介
数据库镜像是一个高可用性软件解决方案,为客户端提供小于10秒故障转移。每个数据库镜像配置均包含一个主体服务器(包含主体数据库)、一个镜像服务器(包含镜像数据库)和一个见证服务器,其中见证服务器是可选的。主体服务器和镜像服务器要求是独立的服务器实例。主体服务器和镜像服务器的角色是相对的,可以自动或者手动地将主体服务器设置为镜像服务器,镜像服务器设置为主体服务器。与主体服务器和镜像服务器不同的是,见证服务器并不能用于数据库。见证服务器监视主体服务器和镜像服务器,确保在给定的时间内这两个故障转移服务器中有且只有一个作为主体服务器,从而支持自动故障转移。如果存在见证服务器,同步会话将以“高可用性模式”运行,如果主体服务器出现故障,可以实现故障自动转移。如果见证服务器不存在,同步会话将以“高级别保护模式”运行,出现故障需要手动故障转移,并且有可能丢失数据。
图1:两台服务器镜
数据库准备结束,端点创建完成,用户便可以启用数据库镜像。镜像启动后,每个伙伴都将开始维护所在数据库中有关其数据库,以及另一个伙伴和见证服务器的状态信息。这些状态信息允许服务器实例维护称为“数据库镜像会话”的当前关系。在数据库镜像会话过程中,服务器实例将通过彼此定期交换 PING 消息来互相监视。
镜像会话启动后,镜像服务器将识别镜像数据库上最新完成的事务的日志序列号 (LSN),并要求主体服务器提供所有后续事务的事务日志,主体服务器向像镜像服务器发生一份当前活动的事务日志,镜像服务器会立即将传入日志镜像到磁盘。主体服务器继续让客户端连接使用主体数据库,每次客户端更新主体数据库时,主体服务器都会在写入到日志时,并将得到的事务日志发送给镜像服务器,镜像服务器会将其镜像到磁盘。同时,镜像服务器将从最早的事务日志开始,将事务应用到镜像数据库中,从而实现主体数据库和镜像数据库同步。
二、配置实例
了解数据库镜像的基本知识之后,看一看怎样去配置镜像。(使用镜像功能请确保安装了SQL Server 2005 SP1)。
笔者为做镜像实验,在同一个服务器上同时装三个实例: SERVER01、SERVER02、SERVER03。其中,SERVER01将作为主体服务器、SERVER02作为镜像服务器、 SERVER03作为见证服务器。
在完成本实验的第一步需要将主体服务器的DBMirror数据库,完全备份出来,然后在SERVER02上还原,在还原的时候注意使用NORECOVERY,使用镜像数据处于还原状态。在备份之前请将DBMirror数据库的日志模式设置为完整。
完成了上面的准备之后就可以设置镜像。
第一步:创建端点。
在SERVER01上运行下面的SQL:
CREATE ENDPOINT DbMirroring
STATE=STARTED
AS TCP(LISTENER_PORT=5011)
FOR DATABASE_MIRRORING(ROLE=PARTNER,ENCRYPTION=SUPPORTED)
go
在SERVER02上运行下面的SQL:
CREATE ENDPOINT DbMirroring
STATE=STARTED
AS TCP(LISTENER_PORT=5022)
FOR DATABASE_MIRRORING(ROLE=PARTNER,ENCRYPTION=SUPPORTED)
go
在SERVER03上执行下面的SQL,创建见证服务器。
CREATE ENDPOINT DbMirroring
STATE=STARTED
AS TCP(LISTENER_PORT=5033)
FOR DATABASE_MIRRORING(ROLE=WITNESS,ENCRYPTION=SUPPORTED)
go
第二步:启动镜像
在前面的规划中SERVER01将作为主体服务器、SERVER02作为镜像服务器,首先在主体服务器上执行下面的SQL:
ALTER DATABASE DBMirror
SET PARTNER='TCP://jeffery:5022' --(注:笔记的机器名称是jeffery)
go
指定SERVER01的通讯伙伴是SERVER02(因为前面定义端点的时候SERVER02的端口号为5022)。
在SERVER02的上执行下面的SQL,指定通讯伙伴为SERVER01。
ALTER DATABASE DBMirror
SET PARTNER='TCP://jeffery:5011'
go
回到主体服务器,指定见证服务器。在SERVER01上执行下面的SQL:
ALTER DATABASE DBMirror
SET WITNESS='TCP://jeffery:5033'
go
完成以上步骤之后,镜像配置完成。如图3所示。
三、管理镜像
1、 相关系统视图
sys.database_mirroring:此视图显示服务器实例中每个镜像数据库的数据库镜像元数据。实例 SQL Server 中的每个数据库在表中占一行。如果数据库未联机,或未启用数据库镜像,则除 database_id 以外的所有列的值都将为 NULL。
sys.database_mirroring_endpoints:目录视图显示有关服务器实例的数据库镜像端点的信息。
sys.dm_db_mirroring_connections:为每个数据库镜像网络连接返回一行。
2、 手动主体、镜像服务器之间的切换
在主体服务器中执行下面的代码就可以将镜像服务器设为主体服务器,主体服务器设置为镜像服务器。
USE MASTER
Go
ALTER DATABASE DBMirror SET PARTNER FAILOVER
Go
数据库镜像是一个很好的高可用性解决方案,笔者参加微软的技术论坛时曾看到过微软的技术人员演示镜像的故障转移,如主体服务器出现故障,在10秒内客户端就重新连到数据库服务器。限于篇幅和笔者的水平,对数据库镜像作了简单的介绍,还有很多东西没有提及到比如说客户端怎样连到服务器等等,希望本文成为读者学习镜像功能的开端。
转载于:https://www.cnblogs.com/fangbo/archive/2009/08/13/1544878.html
SQL Server 2005高可用性之镜像功能相关推荐
- 黄聪:SQL server 2005高可用性之----数据库镜像
SQL server 2005高可用性之数据库镜像,是SQL server 2005的新技术之一,是一种基于软件的高可用性解决方案,可以对不同服务器或同一服务器不同实例之间的数据库实验无数据延迟,自动 ...
- 实验二:SQL server 2005高可用性之----数据库镜像
如转载,请注明出处:http://blog.csdn.net/robinson_0612/archive/2009/11/04/4769060.aspx SQL server 2005高可用性之数据库 ...
- 实验一:SQL server 2005高可用性之----日志传送
如转载,请注明出处:http://blog.csdn.net/robinson_0612/archive/2009/10/31/4751070.aspx SQL server 2005高可用性之日志传 ...
- Ms Sql Server 2005的数据库快照功能使用实践
数据库快照是sql server 2005的一个新功能.Msdn上对它的定义是: 数据库快照是数据库(称为"源数据库")的只读静态视图.在创建时,每个数据库快照在事务上都与源数据库 ...
- SQL Server 2005高可用性之复制(http://tech.it168.com/db/s/2007-05-15/200705150909375.shtml)
SQL Server 2005相对于SQL Server 2000来说,无论是性能还是功能都有一个相当大的提高,甚至可以用"革命"来形容这一次升级.SQL Server 2005使 ...
- Visual C# 2008+SQL Server 2005 数据库与网络开发--9.1.1 SQL Server 2005中的XML功能
在SQL Server 2005中,对XML的支持已经集成到数据库本身的所有组件中,主要包括以下几方面. 支持XML格式的数据类型. 可以对XML格式的数据或者变量进行XQuery的查询. 增强了XM ...
- SQL SERVER 2005镜像配置(包含见证服务器)
镜像简介 重要说明:保持数据库镜像运行.如果您关闭数据库镜像,则必须执行完全备份并还原数据库以重建数据库镜像. 一. 简介 SQL SERVER 2005镜像基于日志同步,可良好实现故障转移.每个数据 ...
- SQL Server 2005 中的商务智能和数据仓库
微软发布了SQL Server 2005,对于微软与BI来说这是一个非常重要的版本,它完善了微软在BI方面的产品线.SQL Server 2005以及 Visual Studio .net2005的整 ...
- SQL Server 2005的商务智能和数据仓库
摘要:本文概述了 SQL Server 2005 Beta 2 中"商务智能"平台的增强功能.本文并非实施指南,而是为读者提供了关于"商务智能"平台增强功能的信 ...
- SQL Server 2005:你应该知道的13件事情
距离微软的SQL Server 2005正式版的推出,已经将近一年的时间.随着最近两份研究报告的出炉,SQL Server 2005又引起了业界的关注和评论--微软凭借SQL Server 2005取 ...
最新文章
- Kotlin 类的定义
- 什么是TypeScript?为什么我要用它代替JavaScript? [关闭]
- insightface 切换GPU训练报错解决
- oracle 恢复 跳过 表空间,Oracle表空间恢复
- 使用Akka.net开发第一个分布式应用
- 计算数字的出现次数 java_关于Java:如何计算数字在.txt文件中出现的次数
- python读取日期_从文件中读取日期和数据(Python)
- kali 邮箱攻击_kali下邮件发送工具swaks入坑
- 深度优先遍历和广度优先遍历_图与深度优先搜索和广度优先搜索
- 防仿百度图片背景色php,基于jQuery实现仿百度首页换肤背景图片切换代码_jquery...
- 4.7UF400V 10*8.4贴片铝电解电容封装尺寸
- python 万年历代码
- windows下ping端口
- 国外统计学课程主页Statistical Books, Manuals and Journals
- Java集合分页公式
- 如何恢复RAW格式移动硬盘的数据
- # gazebo 仿真
- 删除在计算机的没用东西,怎么删除电脑中没用的东西?
- FZU 2219 StarCraft (哈夫曼树)
- android 音频压缩 silk,微信音頻silk導出多個mp3,合並成一個mp3,壓縮大小
热门文章
- 物质为何能在虚空粒子海中存在
- php mysql sum用法_mysql怎么使用sum()求id字段的和?
- mysql创建的数据库保存在哪里_在MySQL中创建数据库时,我的数据库保存在哪里?...
- python orm开发模型_Python ORM框架Peewee初探【二】创建或者生成模型
- python list array_Python列表list 数组array常用操作集锦【转】
- Linux/Unix下ODBC的安装、配置与编程
- linux运维之网络配置
- sql server 用户创建与权限管理
- (一)区块链的共识算法:整体介绍 及 分叉 的通俗讲解
- 题目:求100以内的全部素数,每行输出10个。1不是素数