SQLServer数据库实时备份技术
发布时间:2020-12-12 15:56:59 所属栏目:MsSql教程 来源:网络整理
导读:1 前言 浪擎?镜像系统是业界成熟的应用系统实时备份容灾解决方案。其 SQLServer 镜像通过数据库逻辑层的复制技术,可以方便地实现 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 )特性 列表 |