SQLServer数据库实时备份技术

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
支持
复制时延
异步复制,秒级延时
支持应用方式
一对1、一对多、多对一
事务完整性
完整、一致
目标数据库状态
运行状态,能读能写
复制方向
单向,从源至目标
支持过滤
可设置表、视图、索引等对象的过滤
支持版本
SQLServer 2000 SQLServer 2005
支持操做系统
Windows 2000 XP 2003
源与目标硬件规格要求
无需一致
复制最大距离
无限制
网络带宽占用
远小于存储层复制
3 )其余功能
定时镜像计划, 系统还提供便捷的定时镜像计划。镜像计划做业可配置信息字段:开始时间、结束时间和日期以及在这段时间以内的镜像频率、须要镜像数据库。定时镜像计划相似于基准装载,均经过 SQLServer 数据库提供在线备份功能实现。
数据库备份存储, 镜像系统可将基准装载或定时镜像计划使用的数据库备份保存在磁盘上;系统采用时间戳命名备份文件。用户可调节保存的备份版本数量或时间;用户可手工在 SQLServer 企业管理将数据库备份还原至数据库中。
基于 Web 的任务监控和配置管理, 镜像系统提供基于 WEB 的监控、管理平台,用户能够经过浏览器便可管理全网的镜像代理、镜像服务器、传输备份策略以及任务监控。
镜像任务监控是镜像系统的一个组成部分,用来实时的监控信息包括:
ü 从主(源)服务器到备(目标)服务器数据复制的结果;
ü 镜像客户端和镜像服务器的工做状态。