数据库-SQL数据库高可用性解决方案介绍之数据库镜像--嘉为科技
- 格式:doc
- 大小:113.87 KB
- 文档页数:4
MySQL中的高可用解决方案MySQL是一种常用的关系型数据库管理系统,被广泛用于各种应用场景。
对于很多企业和组织来说,保证MySQL数据库的可用性和可靠性是非常重要的,因为数据库宕机或者数据丢失可能会导致巨大的经济损失和业务中断。
因此,开发高可用解决方案成为MySQL数据库管理者们必须面对的挑战。
一、MySQL复制MySQL复制是MySQL中最常用的高可用解决方案之一。
通过使用MySQL的复制功能,可以将一个主数据库的数据实时复制到一个或多个备份数据库。
当主数据库出现故障时,备份数据库可以顶替其角色,从而实现无缝切换。
MySQL复制是基于日志的机制,主数据库将产生的数据更改事件写入二进制日志(Binary Log),备份数据库则通过读取主数据库的二进制日志来实时复制数据。
主数据库将所有更改记录下来,备份数据库则按照相同的顺序应用这些更改,从而实现数据的同步。
虽然MySQL复制是一种简单且有效的高可用解决方案,但它也存在一些局限性。
首先,MySQL复制是异步的,主数据库和备份数据库之间有一定的延迟,可能会导致数据的不一致。
其次,MySQL复制只能实现单主节点的高可用,即只有一个主数据库,其他都是备份数据库。
这对于一些高并发的应用来说,可能无法满足需求。
二、MySQL集群为了解决MySQL复制的限制,MySQL提供了集群(Cluster)解决方案。
MySQL集群是一种基于共享存储器(Shared Storage)的高可用解决方案。
在MySQL集群中,多个MySQL节点共享相同的数据存储,数据的一致性由底层共享存储器保证。
MySQL集群采用了多个MySQL节点协同工作的方式,每个节点都可以处理客户端请求。
当其中一个节点发生故障时,其他节点可以自动接管服务,保证了系统的连续性。
同时,MySQL集群也提供了负载均衡的功能,可以将请求分发到不同的节点上,从而提高了系统的性能。
然而,MySQL集群也有一些限制。
MySQL数据库的集群方案和高可用性架构介绍引言MySQL是一种开源的关系型数据库管理系统,广泛用于各种规模的应用中。
为了满足大规模应用的需求,MySQL提供了一系列的集群方案和高可用性架构。
本文将介绍一些常用的MySQL集群方案和高可用性架构,以及它们的特点和适用场景。
一、数据库集群概述数据库集群是通过多个数据库实例进行数据共享和负载均衡,以提高性能和可用性的方案。
在数据库集群中,每个节点都是相互独立的数据库实例,它们可以是主-从结构、主-主结构或者其他形式。
当一个节点发生故障时,系统可以自动切换到其他可用节点,从而保证系统的可用性。
二、MySQL集群方案1. MySQL复制MySQL复制是最简单的集群方案之一。
它基于主-从结构,将数据从一个主节点复制到多个从节点。
主节点负责处理写操作,从节点负责处理读操作。
MySQL 复制具有易于实现、低成本和高可用性的特点。
然而,由于从节点只能读取数据,所以写操作需要在主节点上执行,可能会引发一些性能瓶颈。
2. MySQL主-主复制MySQL主-主复制是一种分布式架构,每个节点既是读节点又是写节点。
主-主复制通过双向复制实现数据的同步,从而提供更好的读、写负载均衡和高可用性。
然而,主-主复制需要处理数据冲突和一致性问题,配置和维护也相对复杂。
3. MySQL分片MySQL分片是一种将数据水平划分到多个节点上的集群方案。
每个节点只存储部分数据,通过分片策略将查询路由到正确的节点上。
分片可以提高系统的可伸缩性和性能,但也会增加架构的复杂性。
分片需要考虑数据切分、数据迁移、数据一致性和节点故障等问题。
三、MySQL高可用性架构1. 主-从复制+故障检测与切换主-从复制结合故障检测与切换是一种常见的MySQL高可用性架构。
其中,主节点负责处理写操作,从节点用于读操作和故障恢复。
故障检测与切换组件可以监控主节点的状态,并在主节点故障时自动将从节点升级为新的主节点。
这种架构具有简单、可靠和成本较低的特点。
SQLServer2012数据库镜像配置完整篇“数据库镜像”是⼀种提⾼ SQL Server 数据库的可⽤性的解决⽅案。
镜像基于每个数据库实现,并且只适⽤于使⽤完整恢复模式的数据库。
数据库镜像维护⼀个数据库的两个副本,这两个副本必须驻留在不同的 SQL Server 数据库引擎服务器实例上。
通常,这些服务器实例驻留在不同位置的计算机上。
启动数据库上的数据库镜像操作时,在这些服务器实例之间形成⼀种关系,称为“数据库镜像会话”。
其中⼀个服务器实例使数据库服务于客户端(“主体服务器”),另⼀个服务器实例则根据镜像会话的配置和状态,充当热备⽤或温备⽤服务器(“镜像服务器”)。
具有⾃动故障转移功能的⾼安全性模式要求使⽤第三个服务器实例,称为“见证服务器”。
主体服务器 (principal server)在数据库镜像中,是指当前作为主体数据库的数据库所属于的伙伴。
镜像服务器 (mirror server)在数据库镜像配置中,镜像数据库所在的服务器实例。
见证服务器 (Witness)仅⽤于⾼安全性模式,SQL Server 的⼀个可选实例,它能使镜像服务器识别何时要启动⾃动故障转移。
与这两个故障转移伙伴不同的是,见证服务器并不能⽤于数据库。
见证服务器的唯⼀⾓⾊是⽀持⾃动故障转移。
所有数据库镜像会话都只⽀持⼀台主体服务器和⼀台镜像服务器。
下图显⽰了该配置:下图显⽰了包含见证服务器的配置:更多关于SQL数据库镜像概念请参考Technet⽹站,链接如下:*****************************************************************************************************整个SQL Server 2012 数据库镜像的配置分为以下6个⼩章节环境准备安装数据库功能启⽤TCP/IP协议和RemoteDAC数据库准备⼯作数据库镜像配置功能验证*****************************************************************************************1. 环境准备1.1 本次Demo使⽤的服务器清单如下:2. 安装数据库功能2.1 在SQL01、SQL02和SQL03三台数据库服务器,打开服务器管理器并根据向导完成.Net framework3.5的安装2.2在SQL01、SQL02和SQL03三台数据库服务器分别插⼊并运⾏SQL Server 2012 Enterprise SP1安装程序,点击“安装”—“全新SQL Server独⽴安装或向现有安装添加功能”,根据向导完成SQL功能的安装2.3 在”功能选择”页⾯,根据实际应⽤需求勾选所需的功能,下⼀步2.4 在”服务器配置”页⾯,修改服务账户为域账户(确保该账户密码永不过期),启动类型为”⾃动”2.5 根据向导在SQL01、SQL02、SQL03完成数据库功能的成功安装3. 启⽤TCP/IP协议和RemoteDAC3.1 在SQL01、SQL02、SQL03中分别打开SQL Server配置管理器,启⽤TCP/IP协议3.2 在SQL01、SQL02、SQL03中分别打开SQL Server Management Studio,右键实例选择“⽅⾯”3.3 选择“外围应⽤配置器”—将属性“RemoteDACEnabled”的值改为“True”(三台都要做)4. 数据库准备⼯作(创建、备份和还原数据库)4.1 在SQL01(主体服务器)右键”数据库”—“新建数据库”4.2 在”常规“页⾯输⼊数据库名称4.3 在”选项”页⾯确保恢复模式为”完整“4.4 右键”DB01”选择”任务“—”备份“4.5 备份类型选择”完整“,点击”确定“4.6 备份成功完成后点击”确定“4.7 选择备份类型为”事务⽇志“,点击”确定“完成对事务⽇志的备份4.8 将备份⽂件拷贝到镜像服务器对应的路径,默认备份路径为“C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup”4.9 在镜像服务器打开SQL Server Management Studio,右键“数据库”选择“创建数据库”4.10 输⼊数据库名称,点击“确定”(此数据库名称必须与SQL01中创建的数据库名称保持⼀致)4.11 右键新创建的数据库“DB01”--选择“任务”—“还原”—“数据库”4.12 选择“设备”,点击右边“…”4.13 点击”添加”4.14 选择刚才从SQL01复制的备份⽂件,点击”确定”4.15 点击“确定”4.16 勾选要还原的备份集4.17 在“选项”页⾯勾选“覆盖现有数据库”,恢复状态选择“RESTORE WITH NORECOVERY”,取消勾选“还原前进⾏结尾⽇志备份”,点击“确定”5. 数据库镜像配置5.1 在主体服务器右键“DB01”选择“任务”—“镜像”5.2 点击“配置安全性”6. 功能验证6.1 在主体服务器SQL01右键数据库“DB01”选择“任务”—“启动数据库镜像监视器”。
数据库容灾解决方案数据库在现代企业中扮演着重要的角色,对于数据的可靠性和安全性要求越来越高。
然而,由于各种原因,例如硬件故障、自然灾害、人为错误等,数据库可能会遭受数据丢失或不可用的风险。
为了应对这些风险,数据库容灾解决方案变得至关重要。
本文将探讨几种常见的数据库容灾解决方案,并分析它们的优缺点。
一、主备复制主备复制是一种常见的数据库容灾解决方案。
它的原理是通过将数据库数据从主服务器复制到备份服务器,实现数据的冗余存储和备份。
当主服务器发生故障时,备份服务器可以快速切换为主服务器,从而保证数据的可用性和连续性。
优点:主备复制方案实施简单,成本相对较低。
备份服务器可以处于热备状态,即时响应故障,提高恢复速度。
缺点:主备复制方案不可避免地存在数据同步延迟问题,因为数据是通过网络传输进行复制的,可能会出现部分丢失的情况。
此外,备份服务器处于待命状态,资源利用率相对较低。
二、数据库镜像数据库镜像是一种高可用性和容灾解决方案,它通过将数据库实例实时复制到多个服务器上来实现数据的冗余存储。
当主服务器发生故障时,镜像服务器可以立即接管主服务器的工作,确保业务的连续性。
优点:数据库镜像方案具有较低的数据同步延迟和较高的数据可用性。
它可以实现实时数据同步,保证数据的完整性和一致性。
另外,镜像服务器可以承担部分主服务器的工作负载,提高资源利用率。
缺点:数据库镜像方案需要较高的硬件和网络设备,成本较高。
镜像服务器需要实时监控主服务器的状态,对系统资源要求较高。
三、数据库集群数据库集群是一种高可用性和高容灾性的解决方案。
它通过将数据库分布在多个服务器上,实现数据的冗余存储和负载均衡。
当某个节点发生故障时,其他节点可以接管工作,确保业务的连续性。
优点:数据库集群方案具有较低的数据同步延迟和较高的数据可用性。
它可以实现实时数据同步,并且具有较高的扩展性,可以随着业务的增长进行水平扩展。
缺点:数据库集群方案实施较为复杂,需要考虑节点之间的同步和通信问题。
数据库管理技术的高可用性实现方法在当今信息化的时代,数据库已经成为了企业和组织日常工作不可或缺的一部分。
然而,数据库管理系统的可用性一直是个值得关注的问题。
为了确保数据库系统的平稳运行和数据的安全性,高可用性的实现是非常必要的。
本文将介绍一些常用的数据库管理技术的高可用性实现方法,以帮助读者了解和应用这些技术来提高数据库系统的可用性。
1. 数据库复制数据库复制是一种常用的高可用性实现方法。
它通过将主库的数据复制到一个或多个备库来实现数据的冗余存储和高可用性。
当主库出现故障时,备库可以立即接管主库的工作,保证系统的可用性。
数据库复制可以采用同步复制或异步复制的方式。
同步复制要求备库必须与主库保持实时同步,确保数据的一致性;而异步复制则可以有一定的延迟,提高了数据同步的效率。
2. 数据库集群数据库集群是一种将多个数据库服务器连接起来形成一个逻辑上的整体,从而提高数据库系统的可用性和性能的方法。
数据库集群通常由主节点和多个从节点组成。
主节点负责处理用户提交的写请求,而从节点则用来处理读请求。
当主节点发生故障时,从节点中的一个会自动晋升为新的主节点。
数据库集群的好处在于它提供了水平扩展的能力,可以根据需要增加或减少节点的数量,以适应不同规模的应用需求。
3. 数据库备份与恢复数据库备份与恢复是一种保证数据安全和高可用性的重要手段。
通过定期对数据库进行备份,可以在数据库发生故障时快速恢复数据,减少系统停机时间。
在选择备份方案时,需要考虑到数据库的大小、备份的频率和备份的存储位置等因素。
同时,还需要测试备份和恢复的过程,以确保备份数据的完整性和可用性。
4. 数据库监控和故障检测数据库监控是保证数据库高可用性的关键环节之一。
通过对数据库系统的实时监控,可以及时发现故障和异常,采取相应的措施来预防和解决问题。
数据库监控可以包括对数据库性能指标的监测、对数据库资源的监控和对数据库操作的审计等。
同时,也可以通过故障检测来及时发现数据库中的硬件故障和软件故障,并采取相应的措施来修复。
SQL server高可用方案—、高可用的类型•AlwaysOn高可用牲解决方案,需要sqlserver版本在2012以上SQL Server Always On即“全面的髙可用性和灾难恢复解决方案”。
客户iiil使用Always On技术,可以提髙应用用11的部署和管理方面的工作。
SQL Server Always On在以下2个级别提旅了可用性。
*数据库级可用性是一种“热备份”技术。
在同步提交模式下,主副本的数掘被同步更新到其他籀助副本,主制本与箱助副本之IP到主副本发生故障时,辅助剧本可以立即威为新的主副本。
"实傍圾可用性Always On故障转務雅集实M (Failover Cluster Instance,简称FCI)可以在多个16个节直之同实现故障转移(Faile 点,标准版只支持2f节自。
当主节点发生故常附,舖助节点提开为主节点并获取共享存嵋中的Uffi,然后才在这个新的主节点服务器中启3)FCI是一种“冷爸卅”技术。
籀助节自并不从主节自同步数据,唯一的一卅数据被保存在共享存储(稲集其享砒舌•日志传送日志传送依賴于传鋭的Windows文件复科技术与SQL Server代理。
主数据库所做岀的任何数据变化那会被生成事务日志,这些事务日志将定期备份。
然后笛份文件ffiSM数据库所b最后事务日志备悅在稱助数松库中aiitift,从面实现在两个数据库之间异步更新数据。
当主数掘库发生故障时,可以使舖助数掘库变成朋机状态。
可以把每一彳、帝助数据库都当作“冷爸用”数松库•其它稱助技术刘数据库进行备份,当出现故障时,手动将数据还原到JR务器,使得数据库重新联机,这也可以算作实现高可用 fi « (Replication )并不算是一个高可用性解决方案,只是它的功能可以实现高可用性。
复制通过“发布JT阅” ♦发布数掘,使这些服务器间实现可fflttoSQL server fi 制定义及应用:数据库间口制和分发数据和数据库对象,然后在数松库间进行同; 可以通il局域网和广域网、按号连接、无线连接和Internet将数据分配到不同sql server ft制什成三类:事务夏對通常用于需耍髙吞吐量的服务器到服务器方案(色括:提髙可伸编性成多个站点的数据、集威异类数据以及减轻批处理的负荷)。
sqlserver双机热备份⽅案之数据库镜像(实测sqlserver2016)⼀、先简单介绍下sql server ⾃带的双机的热备的⼏种⽅案1,发布--订阅利⽤sql server 复制功能实现主机发布数据库,备机订阅数据库,做到数据热备2,⽇志传送SQLServer数据库引擎中,使⽤⽇志传送将事务⽇志不间断地从⼀个数据库(主数据库)发送到另⼀个数据库(辅助数据库)。
不间断地备份主数据库中的事务⽇志,然后将它们复制并还原到辅助数据库,这将使辅助数据库与主数据库基本保持同步。
⽬标服务器充当备份服务器,并可以将查询处理从主服务器重新分配到⼀个或多个只读的辅助服务器。
⽇志传送可与使⽤完整或⼤容量⽇志恢复模式的数据库⼀起使⽤。
3,数据库镜像利⽤sql server 镜像功能在备机建⽴镜像后,实现主机和备机数据热备。
数据库镜像是⽤于提⾼数据库可⽤性的主要软件解决⽅案。
镜像基于每个数据库实现,并且只适⽤于使⽤完整恢复模式的数据库。
数据库镜像维护⼀个数据库的两个副本,这两个副本必须驻留在不同的SQL Server数据库引擎实例(服务器实例)上。
通常,这些服务器实例驻留在不同位置的计算机上。
其中⼀个服务器实例使数据库服务于客户端(“主体服务器”),⽽另⼀个服务器实例则充当热备⽤或备⽤服务器(“镜像服务器”),具体取决于镜像会话的配置和状态。
同步数据库镜像会话时,数据库镜像提供了热备⽤服务器,可⽀持在已提交事务不丢失数据的情况下进⾏快速故障转移。
⼆、数据库镜像热备⽅法注意点:1.数据库的模式要是完整模式。
2.要对数据库完整备份和事务⽇志备份,分别还原到镜像库上,使⽤NORECOVERY模式。
3.镜像数据库是不允许删除和操作,即便查看属性也不⾏。
4.先删除端点,再删除证书,再删除主密钥。
5.只有是同步模式的时候,才能⼿动故障转移,异步模式不能⼿动故障转移。
主机:192.168.11.253备机:192.168.11.251(1),先创建密匙,主机备机都要下⾯执⾏代码use master --创建密匙gocreate master key encryption by password='888888'goselect * from sys.key_encryptions --查询密匙(2),创建证书,主机执⾏use master --主机证书为:DBAgocreate certificate DBA_cert with subject='DBA certificate',expiry_date='2099-1-1'go备机执⾏use master --主机证书为:DBBgocreate certificate DBB_cert with subject='DBB certificate',expiry_date='2099-1-1'goselect * from sys.certificates --查看证书(3),创建主库镜像和端点主机执⾏use mastergocreate endpoint Ticket_Mirroring --端点为Ticket_Mirroring ,端⼝号:5022,镜像为DBAstate=startedas tcp ( listener_port = 5022,listener_ip = all )for database_mirroring ( authentication = certificate DBA_cert, encryption = required algorithm aes, role = all )go备机执⾏create endpoint Ticket_Mirroring --端点为Ticket_Mirroring ,端⼝号:5022,镜像为DBBstate=startedas tcp ( listener_port = 5022,listener_ip = all )for database_mirroring ( authentication = certificate DBB_cert, encryption = required algorithm aes, role = all )go(4),备份密匙主机执⾏use master --备份密匙gobackup certificate DBA_cert to file = 'D:\cert\DBA_cert.cer' --密匙路径go备机执⾏use master --备份密匙gobackup certificate DBB_cert to file = 'D:\cert\DBA_cert.cer' --密匙路径go(5),复制交换密匙,保证在主机和备机的D:\cer下路径都有DBA_cert和DBB_cert⽂件(6)创建登录名,和证书关联,主机创建备机,备机创建主机主机执⾏use mastergocreate login DBB_login with password='888888'go备机执⾏use mastergocreate login DBA_login with password='888888'go(7),创建使⽤该登录名的⽤户,主机创建备机,备机创建主机主机执⾏use mastergocreate user DBB for login DBB_logingo备机执⾏use mastergocreate user DBA for login DBA_logingo(8),证书与⽤户关联,主机关联备机,备机关联主机主机执⾏use mastergocreate certificate DBB_certauthorization DBBfrom file='D:\cert\DBB_cert.cer'go备机执⾏use mastergocreate certificate DBA_certauthorization DBAfrom file='D:\cert\DBA_cert.cer'go(9),授予对远程数据库端点的登录名的CONNECT权限,主授权备机,备机授权主机主机执⾏use mastergoGRANT CONNECT ON ENDPOINT::Ticket_Mirroring TO [DBB_login];go备机执⾏use mastergoGRANT CONNECT ON ENDPOINT::Ticket_Mirroring TO [DBA_login];go(10),从主机上备份需要热备的数据库的数据库和事务⽇志,数据库⼀定要完整,然后把数据库和事务⽇志还原到备机,还原⼀定要使⽤NORECOVERY模式,还原后备机数据库显⽰正在还原为正常现象。
mysql高可用解决方案
《MySQL高可用解决方案》
MySQL是一种流行的开源关系型数据库管理系统,被广泛应
用于许多网站和应用程序中。
然而,作为数据库系统,高可用性是至关重要的。
在日益增长的数据和用户量下,任何数据库系统的停机都可能导致严重的损失。
因此,为了确保MySQL
数据库的高可用性,需要采取一些解决方案来应对可能出现的故障。
一种常见的MySQL高可用解决方案是主从复制。
主从复制是
一种将主数据库的更新同步到一个或多个从数据库的技术。
当主数据库出现故障时,可以快速切换到从数据库来提供服务。
另外,主从复制还可以用于负载均衡,将读操作分发到多个从数据库上,减轻主数据库的压力。
另外,MySQL还提供了一种基于集群的高可用解决方案,即MySQL集群。
MySQL集群可以将多个数据库节点组成一个逻辑集群,通过多个节点共同提供服务,以确保高可用性。
MySQL集群还可以在节点故障时实现自动故障切换,从而保
证系统的持续运行。
此外,利用负载均衡器也是一种提高MySQL高可用性的方法。
通过负载均衡器可以将流量分发到多个数据库服务器上,实现负载均衡和故障切换。
综上所述,对于MySQL数据库的高可用性,可以采取多种解
决方案,包括主从复制、集群和负载均衡等。
选择合适的解决方案可以有效提高MySQL数据库的稳定性和可靠性,确保系统的持续运行。
MySQL中的高可用性和容灾方案介绍在现代信息技术发展的背景下,相当一部分应用程序都需要与数据库进行交互,而作为最流行的开源关系型数据库管理系统之一,MySQL在众多应用中广泛应用。
然而,随着业务的不断扩张和数据的不断增长,保障MySQL的高可用性和容灾方案变得尤为重要。
本文将就MySQL中的高可用性和容灾方案进行介绍,并探讨一些有效的实现方法。
一、高可用性概述在介绍高可用性方案之前,我们首先要了解什么是高可用性。
简而言之,高可用性指的是系统在面临故障或异常情况时,能够维持长时间的可用性,不影响正常的业务运行。
对于数据库而言,高可用性通常包括以下几个方面:1.故障容错能力:系统在面临故障时,能够自动检测和处理故障,尽可能减少业务中断时间。
2.数据可靠性:数据的持久性和一致性是数据库的核心功能,因此高可用性方案需要确保数据的完整性和可靠性。
3.可伸缩性:数据库在面临高负载时能够有效地扩展和分布式处理,以保证性能和可用性。
二、MySQL的高可用性方案1.主从复制(Master-Slave Replication)主从复制是MySQL最常见的高可用性方案之一。
它通过将一个数据库(主库)的更改操作同步到其他数据库实例(从库)上来实现数据的备份和故障容错。
主从复制方案的优势在于简单易实施,可以保证数据的备份和可用性。
同时,主从复制还可以通过读写分离的方式,提高系统的性能。
不过,主从复制方案也存在一些限制。
首先,主从复制的延迟问题可能导致从库上的数据不是实时更新的。
其次,主库出现故障时,需要手动进行故障切换,较为繁琐。
因此,如果对数据一致性和实时性要求较高的应用场景,可能需要考虑其他的高可用性方案。
2.主主复制(Master-Master Replication)主主复制是一种更加高级的MySQL高可用性方案,它解决了主从复制方案中主库故障切换的问题,同时保证了数据的实时同步。
在主主复制方案中,每个节点既是主库又是从库,可以同时处理读和写操作。
SQL数据库高可用性解决方案介绍之数据库镜像
文:鲍胜全
引言:随着企业业务系统对数据库的依赖增强,数据库平台的高可用性也显得越来越重要。
数据库镜像是SQL 2005 SP1以后新增的数据库级别的高可用性解决方案,用于解决数据库单一副本的问题。
今天,我们来简单介绍一下数据库镜像技术及其特点。
一、数据库镜像概述
“数据库镜像”是SQL Server 2005 SP1以后版本自带的用于提高数据库可用性的主要软件解决方案。
镜像基于每个数据库实现,并且只适用于使用完整恢复模式的数据库。
简单恢复模式和大容量日志恢复模式不支持数据库镜像。
数据库镜像可使用任意支持的数据库兼容级别。
master、msdb、tempdb 或model 等系统数据库不支持数据库镜像。
数据库镜像维护一个数据库的两个副本,这两个副本必须驻留在不同的SQL Server 数据库引擎实例(服务器实例)上。
通常,这些服务器实例驻留在不同位置的计算机上。
其中一个服务器实例使数据库服务于客户端(“主体服务器”),而另一个服务器实例则充当热备用或备用服务器(“镜像服务器”),具体取决于镜像会话的配置和状态。
同步数据库镜像会话时,数据库镜像提供了热备用服务器,可支持在已提交事务不丢失数据的情况下进行快速故障转移。
未同步会话时,镜像服务器通常用作备用服务器(可能造成数据丢失)。
二、数据库镜像工作方式
在“数据库镜像会话”中,主体服务器和镜像服务器作为“伙伴”进行通信和协作。
两个伙伴在会话中扮演互补的角色:“主体角色”和“镜像角色”。
在任何给定的时间,都是一个伙伴扮演主体角色,另一个伙伴扮演镜像角色。
每个伙伴拥有其当前角色。
拥有主体角色
的伙伴称为“主体服务器”,其数据库副本为当前的主体数据库。
拥有镜像角色的伙伴称为
“镜像服务器”,其数据库副本为当前的镜像数据库。
如果数据库镜像部署在生产环境中,则主体数据库即为生产数据库。
数据库镜像涉及尽快将对主体数据库执行的每项插入、更新和删除操作重做到镜像数据库中。
重做通过将每个活动事务日志记录发送到镜像服务器来完成,这会尽快将日志记录按顺序应用到镜像数据库中。
与逻辑级别执行的复制不同,数据库镜像在物理日志记录级别执行。
数据库镜像会话可以以同步操作或异步操作运行,不同的操作方式可以将数据库划分为两种不同的运行模式:高安全性运行模式和高性能运行模式。
高安全性运行模式,支持同步操作,当会话开始时,镜像服务器将使镜像数据库尽快与主体数据库同步;在同步数据库之后,已提交的事务将在伙伴双方上提交,但会延长事务滞后时间。
高性能运行模式,支持异步运行,镜像服务器尝试与主体服务器发送的日志记录保持同步;虽然镜像数据库可能稍微滞后于主体数据库,但这两个数据库之间的时间间隔通常很小。
但是,如果主体服务器的工作负荷过高或镜像服务器系统的负荷过高,则时间间隔会增大。
在高性能模式中,主体服务器向镜像服务器发送日志记录之后会立即再向客户端发送确认一条消息,而不需要等待镜像服务器的确认。
这意味着事务不需要等待镜像服务器将日志写入磁盘便可提交。
此异步操作允许主体服务器在事务滞后时间最小的条件下运行,但可能会丢失某些数据。
所有数据库镜像会话都只支持一台主体服务器和一台镜像服务器,如下图所示:
高安全性运行模式还可以按照是否能够自动故障转移分为:带自动故障转移的高安全性模式(也称高可用性模式)和不带自动故障转移的高安全性模式(也称高安全性模式)。
其中,带自动故障转移的高安全性模式还需要第三个服务器实例,称为“见证服务器”。
与这两
个镜像伙伴不同的是,见证服务器并不能用于数据库;见证服务器通过验证主体服务器是否
已启用和运行来支持自动故障转移。
只有在当见证服务器与主体服务器断开连接而与镜像服务器保持相互连接时,镜像服务器才启动自动故障转移。
下图显示了包含见证服务器实例的
数据库镜像配置:
三、数据库镜像故障转移
在数据库镜像会话上下文中,通常可以使用一个称为“角色切换”的过程来互换主体角
色和镜像角色,角色切换涉及将主体角色转换给镜像服务器的操作。
在角色切换中,镜像服
务器充当主体服务器的“故障转移伙伴”。
进行角色切换时,镜像服务器将接管主体角色,
并使其数据库的副本在线以作为新的主体数据库。
以前的主体服务器(如果有)将充当镜像
角色,并且其数据库将变为新的镜像数据库,这些角色可以反复地来回切换。
数据库镜像共存在三种故障转移方式:
自动故障转移:要求使用高安全性模式并具有镜像服务器和见证服务器。
数据库必须已
同步,并且见证服务器必须连接到镜像服务器。
见证服务器的作用是验证给定的伙伴服务器
是否已启动并运行。
如果镜像服务器与主体服务器断开连接,但见证服务器仍与主体服务器
保持连接,则镜像服务器无法启动故障转移。
相反,如果见证服务器与主体服务器断开连接,
但见证服务器仍与镜像服务器保持连接,则镜像服务器将自动启动故障转移。
手动故障转移:要求使用高安全性模式。
伙伴双方必须互相连接,并且数据库必须已同步。
强制服务:在高性能模式和不带自动故障转移功能的高安全性模式下,如果主体服务器出现故障而镜像服务器可用,则可以强制服务运行。
在高性能模式下,由于主体服务器和镜像服务器的数据库副本可能没有完全同步,故强制服务故障转移可能导致部分数据丢失。
四、数据库镜像支持
数据库镜像角色包含主体服务器实例、镜像服务器实例和见证服务器实例(可选)。
其中主体服务器实例和镜像服务器实例可以支持SQL Server 2005标准版或企业版的Service Pack 1以上版本,见证服务器实例可以支持SQL Server 2005标准版、企业版、工作组版、Express版的Service Pack 1以上版本。
虽然可以有方法能够实现数据库镜像伙伴使用不同版本的SQL Server实例(例如主体服务器使用企业版而镜像服务器使用标准版),但是我们强烈建议主体服务器角色和镜像服务器角色使用相同版本的SQL Server实例,而见证服
务器角色则可以选择支持范围内的任意版本的SQL Server实例。