1前言
浪擎·镜像系统是业界成熟的应用系统实时备份容灾解决方案。其
SQLServer
镜像通过数据库逻辑层的复制技术,可以方便地实现
SQLServer
数据库的实时备份容灾,严格保障事务的一致性和完整性,在实时备份、本地和异地容灾领域具有非常大的优势。
目标数据库系统处于运行状态,无需进行恢复提高容灾切换能力。
镜像系统也无需源和目标硬件规格一致,具有准实时复制、系统和网络资源占用少、应用方式灵活等特点。
2实时备份容灾原理
2.1 SQLServer事务日志架构
每个
SQLServer
数据库都有事务日志,用以记录所有事务和每个事务对数据库所做的修改。
SQLServer
使用预写日志技术。预写日志确保在相关的日志记录之后才将数据修改写入磁盘。日志文件在概念上是一串连续的日志记录。每条日志记录由一个日志序号
(LSN)
标识,且在一个虚拟日志文件中后续日志记录的
LSN
总是高于前一记录的
LSN
。日志记录按创建时的串行序列存储。每条日志记录由所属的事务的
ID
标记。对于每个事务,使用可提高事务回滚速度的向后指针,在链内单向链接与事务相关联的所有日志记录。
事务日志内记录许多类型的操作,包括:每个事务的起点和终点;数据修改(插入、更新或删除),包括
DDL
语言对系统表的更改;每次分配或释放扩展盘区;表或索引的创建或除去;数据库进程启动时的操作标记。
日志记录包含的数据有已修改数据的前像(
undo
)和后像
(redo)
两种类型。前像是操作执行前的数据复本;后像是操作执行后的数据复本。
基于上述事务日志架构,
SQLServer
数据库镜像通过实时捕获预写日志文件块,并解析还原成数据库记录,再执行到目标数据库,即可实现
SQLServer
数据库实时备份容灾。
2.2 镜像引擎架构
SQLServer
数据库镜像引擎包括代理、镜像服务器、基准装载器三大部件。代理包含事务日志实时捕获器、事务日志分析器、自适应数据字典、初步过滤器、传输控制器和任务队列等;镜像服务器包含接收队列、事务队列和
Snapshot
存储、
SQL
应用机构等。
2.3 复制流程
事务日志实时捕获器实时监控源
SQLServer
事务日志文件和捕获其变化数据;事务日志分析器通过数据字典将日志数据解析还原成数据库记录,并过滤不需要镜像的表或其他数据库对象;传输控制器从任务队列中取出记录数据传输至镜像服务器。镜像服务器接收队列将记录数据保存至事务队列和
Snapshot
文件中;
SQL
应用机构扫描事务队列,将提交事务应用到目标
SQLServer
。
2.4 实时事务捕捉及解析
镜像系统通过内嵌的
Windows
文件系统驱动程序实时捕捉
SQLServer
数据库的日志
I/O
及数据块。其具备以下技术特点:
第一,镜像系统在
SQLServer
数据库内安装少量对象用来存储需复制的信息,但这些对象从创建时就被设置成禁用状态,不参与复制工作,也不会影响数据库结构。
第二,文件系统驱动程序的捕捉完全独立于
SQLServer
数据库进程,因此镜像系统对
SQLServer
数据库的性能影响极小。
第三,文件系统驱动程序仅捕获需要复制的数据库的日志文件,且仅捕获其写操作,忽略其他文件的任何操作。因此,对操作系统性能影响也极小。
第四,只有发生变化的日志文件块才会被捕捉,而不是整个日志文件,因此提高了解析性能,降低了网络传输流量。
事务日志分析器根据数据字典依次解析日志文件块,获取该记录的操作类型、涉及对象等,忽略不在数据字典中的对象并放弃该日志记录的后续解析。
当
DDL
语言更改了数据库结构时,事务日志分析器将通知数据字典使其动态调整对象结构。因此数据字典具备自适应能力,无需重新启动即可解析后续日志文件块。
2.5 传输控制
镜像系统的传输协议基于
TCP/IP
实现。传输控制器记录当前传输成功的事务点。当连接中断等因素导致传输失败,传输控制则停止传输工作,尝试连接直至成功。
镜像系统可创建多个通道实现并行传输,提高传输效率。
2.6 应用数据
镜像系统将客户端传送到信息转化为
SQL
语句,并按照在源数据库中的
Commit
顺序发送给目标
SQLServer
数据库执行。
2.7 基准装载
基准装载器使用
SQLServer
数据库提供的在线备份功能,将源数据库备份出来,还原至目标数据库,实现源和目标数据库基准一致。
3 技术特性
1
)目标数据库状态
目标
SQLServer
数据库处于运行状态,能读能写,运行的目标系统保证了系统的一致性。
2
)两阶段检查(
2PC
)
在传输阶段和数据库记录提交阶段均设置成功检查点。两阶段检查可防止如网络连接断开、目标数据库没有运行、进程崩溃等意外因素发生造成的事务丢失。
2
)特性
列表
技术参数
|
说明
|
复制原理
|
捕获
SQLServer
的增量事务进行复制
|
复制粒度
|
数据库记录
|
复制
DDL
语言
|
复制数据库定义语言,如:
增加、删除、修改表
增加、删除、修改字段定义
增加、删除、修改触发器、存储过程
…
|
复制
DML
语言
|
复制应用程序提交的数据
|
标识(
Identity
)字段
|
支持
|
Bulk insert
|
支持
|
Text
、
Image
|
支持
|
复制时延
|
异步复制,秒级延时
|
支持应用方式
|
一对一、一对多、多对一
|
事务完整性
|
完整、一致
|
目标数据库状态
|
运行状态,能读能写
|
复制方向
|
单向,从源至目标
|
支持过滤
|
可设置表、视图、索引等对象的过滤
|
支持版本
|
SQLServer 2000
、
SQLServer 2005
|
支持操作系统
|
Windows 2000
、
XP
、
2003
|
源与目标硬件规格要求
|
无需一致
|
复制最大距离
|
无限制
|
网络带宽占用
|
远小于存储层复制
|
3
)其他功能
定时镜像计划,
系统还提供便捷的定时镜像计划。镜像计划作业可配置信息字段:开始时间、结束时间和日期以及在这段时间之内的镜像频率、需要镜像数据库。定时镜像计划类似于基准装载,均通过
SQLServer
数据库提供在线备份功能实现。
数据库备份存储,
镜像系统可将基准装载或定时镜像计划使用的数据库备份保存在磁盘上;系统采用时间戳命名备份文件。用户可调节保存的备份版本数量或时间;用户可手工在
SQLServer
企业管理将数据库备份还原至数据库中。
基于
Web
的任务监控和配置管理,
镜像系统提供基于
WEB
的监控、管理平台,用户可以通过浏览器即可管理全网的镜像代理、镜像服务器、传输备份策略以及任务监控。
镜像任务监控是镜像系统的一个组成部分,用来实时的监控信息包括:
ü
从主(源)服务器到备(目标)服务器数据复制的结果;
ü
镜像客户端和镜像服务器的工作状态。
可以访问[url]http://www.wavetop.com.cn[/url]