实现灾备数据库同步
2020-01-15江苏霍祥伟
江苏 霍祥伟
为保证有线电视的安全播出,确保用户服务质量和核心数据信息安全,某公司在某区建立了省级数字电视容灾备份中心。当公司主机房发生重大故障省前端信号无法使用的情况下,灾备中心可立即启用,作为备份信源给某地市提供安全可靠的备份信号,确保广播电视信号传输不中断。某区数字电视容灾备份中心设计定位是省级数字电视容灾备份中心,也是全国第一家省级异地数字电视信号备份中心,作为各地市电视信号的备份前端,与省播控中心实现传输信号的1+1 备份。
灾备数据库系统现状
某区备份中心互动门户系统由门户展现Portal、后台管理APP、增值业务平台、注入M3P、核心数据库组成,建设目标为实现与门户主数据库实时同步,负载实时切换,并具备负载全省门户展现业务的承载能力。一般情况下,备份中心数据库仅用于保持与主前端数据库的数据一致,并不负载业务。
灾备中心同步方式选择
按照主中心和灾备中心同步负载业务的设计要求,主前端和备份中心的后台APP 及展现Portal 都要向全省互动电视用户提供服务,对于主中心和备份中心核心数据库均存在写操作,如果采用数据双向同步的方式无法保证数据的一致性,且容易导致数据逻辑混乱,基于以上原因,备份中心门户数据库系统数据同步采用单向同步的方式,即仅主前端门户数据库将数据同步至备份中心门户数据库。
GoldenGate 介绍
GoldenGate 同步软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步。GoldenGate可以在不同类型和版本的数据库之间进行数据复制,如 ORACLE、DB2、SYBASE、SQL SERVER,INFORMIX 和Teradata 等。适用于不同操作系统如Windows 2000/2003/XP、Linux、Sun Solaris、HP NonStop、HP-UX等。GoldenGate 对操作系统内存的需求主要取决于Extract和Replicat进程数。图1 为主备数据库同步原理示意图。
图1 主备数据库同步原理示意图
支持的拓扑结构
GoldenGate 能够支持多种拓扑结构,包括一对一,一对多,多对一,层叠和双向复制等等,如图2 所示。
图2 GoldenGate 复制的拓扑结构
数据库同步步骤
同步由4 个主要步骤完成:
1.Local Extract Process,利用抽取进程(Extract Process)在 主前端数据库端读取Online Redo Log 或Archive Log,然后进行解析,只提取其中变化的数据如增、删、改操作,并将相关信息转换为GoldenGate TDM 自定义的中间格式存放在队列文件(Trail file)中。
2.Starting the Pump,通过数据传送进程(Date Pump Process)将队列文件(Trail file)通 过TCP/IP传送到备份中心数据库。
3.Performing the Initial Load,抽取进程(Extract Process)在每次读完log 中的数据变化并在数据传送到目标数据库后,会写入检查点(check point),记录当前完成抽取的log 位置,检查点(check point)可以使抽取进程(Extract Process)中 止并恢复后从检查点(check point)位置继续复制。
4.Starting the Replicate,备份中心数据库接收数据并缓存到GoldenGate TDM 队列中(队列为临时存储数据变化的文件),等待复制进程(Replicat Progress)读取数据。复制进程(Replicate Progess)从队列中读取数据变化并创建对应的SQL 语句,通过数据库本地接口执行,提交到数据库成功后更新检查点(Check Point),记录已经完成复制的位置,整个数据复制过程结束。
由以上步骤可见,GoldenGate 是一种基于变化数据的复制方式,它从数据库的日志解析数据的变化(数据量只有日志的四分之一)。
数据库主备切换测试
1.门户数据库主备同步
备份中心门户数据库通过GoldenGate 数据同步软件保持与主前端数据库数据的一致性,备份门户APP 及门户展现Portal 的数据源正常情况下指向主前端门户数据库,如图3 所示。
当主前端数据库暂时无法提供服务(如掉电、突发故障、设备搬迁等)时,通过将主前端及备份中心的门户后台管理APP 及门户展现Portal 的数据源由主前端数据库修改为备份中心数据库,实现门户数据库的主备切换,如图4 所示。
图3 数据库同步链路
图4 用户访问路径
2.计划内主备切换要点
当前,省公司新建成的麒麟三网融合基地将成为省公司的新机房所在地,老机房将面临搬迁,对于设备搬迁引起的主前端数据库无法提供服务所进行的主备切换属于计划内切换,备份中心数据库在省公司机房搬迁期间(一个月甚至几个月)内应全面接管主前端数据库所负载的业务,如图4 虚线所示。此时应以确保互动电视业务功能及性能为首要目标,需保持正常的节目、排版、海报等的更新工作,在切换期间内将产生大量的数据变更,因此,在主前端数据库恢复服务提供能力后,应采取全量同步的方式在备份中心数据库与主前端数据库之间做一次全数据复制,然后将业务系统数据源指向指回主前端数据库,最后恢复主备库之间的GoldenGate 数据同步。
3.非计划内应急切换测试
经过测试,正常情况下利用GoldenGate 软件进行的同步数据延迟在30 秒以内,基本上符合实时同步的要求,对用户体验无明显影响。对于掉电、突发故障引起的主前端数据库无法提供服务所进行的主备切换属于非计划内应急切换,可以预见,恢复时间一般在小时(最差在天)级别,此时应以尽快恢复业务为首要目标,尽量减少对数据库的改动,同时节目、排版、海报等的更新工作应暂时停止。另外,在备份中心数据库接管业务期间产生的不可避免的新增写数据,如续看表、集数记忆、节目收藏等可暂不处理或通过事后手动同步个别表数据的方式将切换期间产生的变更的数据同步回主前端数据库。
GoldenGate 运维及同步测试
1.数据库库同步状态检查
CRT 登录至10.73.X.X(用户名/密码),输入/ggs/ggsci,进入goldengate操作区,输入命令info all来查看各进程的状态,正常情况下Status 应该为running,Lag 应该为0-3s 之间。可以发现两个数据库同步Lag 值长达5:40:31。
通过df -h 检查磁盘空间,prtdiag 检查CPU 内 存使用率,机房巡检检查硬件状态。
图5 为数据库同步异常状态截图。
图5 数据库同步异常状态截图
2.GoldenGate 数据库同步测试
GoldenGate 数据同步所需的网络带宽是目前各种技术中最低的,GoldenGate 将数据变化转化为自己的格式,直接通过TCP/IP 网络传输,无需依赖于数据库自身的数据传输方式。复制全库数据时,通常GoldenGate 队列文件大小与数据库日志大小的比例为1:4,GoldenGate网络传输压缩比例为1:8,TCP/IP 网络传输效率最高为0.7。
根据以上数据估算,以业务高峰期每小时产生100GB 数据库日志为例,GoldenGate 维持秒级数据同步延迟的带宽要求为:50×1024(MB/小时)×8(每字节8 位)/3600(秒/小时)/4 (队列/日志比例)/8(传输压缩比例)/0.7(网络传输效率)=10.16Mbps。从实际监控数据来看,主前端至备份中心用于数据库数据同步的链路带宽峰值在20Mbps 以下。
总结
本文主要介绍了利用Goldengate 软件实现备份中心与主前端互动电视门户数据库的异地数据同步方法,为全国各省异地建设省级数字电视备份中心实现数据库备份方法提供思路。
备份中心目标是与主前端(包括将来的麒麟枢纽)形成双核心的业务承载架构,在具备数据冗余备份的前提下兼具用户负载的相互切换能力,实现双中心同时负载业务并互为备份的全冗余电视平台。