一种基于自主可控数据库的高可用性方法及构架的制作方法_2

文档序号:9350091阅读:来源:国知局
日志传输。此外,在事务提交方式上也采取了新的架构模式,良好的解决了数据库复制性能问题以及主备端数据不完整,不一致的问题。
[0033]本发明采用的是是一种基于日志的传输技术,在传输过程中不需要等待主库日志填写完整后再传送到备库,而是采用一条一条记录的方式,随着主机日志的产生实时传送至备机。流复制分为同步流复制和异步流复制两种方式,同步流复制是指主库上每一个事务提交,必须等待日志传入到备库上所有节点并写入磁盘后再提交;异步流复制是指复制开始后,备库会根据时间线上的时间点向主库发起日志传输请求,主库根据要求将事务日志传送给备库,因此备库会和主库有一个微小的时间差。
[0034]在默认情况下,事务提交的方式是异步的,即在主库完成一个事务与在备库中看到数据库的变化之间有一个很小的时间差(远远小于直接对日志的传输),用户也可以将事务提交模式更改为同步,即只有当主、备库的所有服务器都接收到数据,并写入磁盘上的事务日志后,才能够执行提交或者回滚操作,只有其中一方完成,其它数据库没有完成操作,事务无法提交。这种传输模式虽然保证了灾备端数据的完整性和一致性,但是,一旦备库出现问题,势必造成很大的影响。因此可以采用以下两种方式解决。第一,如果预算可以,建议采用多个备库的同步流复制方案,要求每个备库的存储空间与主节点要保持一致,当同步standby节点异常时,采用角色转嫁给其他standby中的一员,这样做可以降低了standby异常带来的风险。还有一种架构模式,采用主备两个节点,再增设一个专门存放事务日志的位置(主、备节点都可以访问到),以此来保证事务日志的安全,同时在备库端增加一个实时接收日志工具,这个工具的作用是制造一个虚拟的standby节点,使得数据库在切换之前,应用高可用模块fence掉主节点,同时判断当前standby节点的恢复进度是否比pg_recivexlog §f,如果不是,则从pg_recivexlog中将事务日志拷贝过来,应用后激活standby,达到数据一致,不丢失的效果。
[0035]灾备工作中,备库应用主库传过来的日志,进行介质恢复,达到和主数据库同步的效果。如果在介质恢复过程中,从库能够始终处于可读取状态,就可以来处理查询、报表和统计等业务工作。这样做,实际上是应用了读写分离的工作模式,可以有效的减轻主数据库的压力和10。
[0036]读写分离操作是通过连接池来完成,连接池将传输过来的SQL语句进行解析,并分为SELECT和修改操作两大类,将只读性操作分发至备机中的任意数据库,修改操作分发至主数据库。因此在主/备模式中,DDL和DML操作都在主节点上完成,SELECT操作可以在备节点上执行,当然也可以在主节点上执行。同时,主库通过流复制技术,将日志同步到备库中,以保证所有的数据块改变是一致的。同时,由于PowerDB采取了写新数据时,旧数据不删除,只是将新数据插入的方式进行的多版本并发控制,因此备库完全可以只读取当前生效的数据。从而确保查询与恢复的同时进行,即实现了在介质恢复过程中,可以对备机进行统计和查询操作。同时,当出现一主多备的情况,中间件会采取分布式计算中的动态算法和自适应算法来保证备机间的负载均衡;也会考虑级联复制的部署方式来解决主机的性能问题。
[0037]以上内容是结合具体的优选实施方式对本发明所做的进一步详细说明,不能认定本发明的具体实施只局限于该说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思及精神的前提下,通过若干简单推演或替换,都应视为属于本发明的保护范围。
【主权项】
1.一种基于自主可控数据库的高可用性方法,其特征在于: 该方法具体包括以下步骤: 步骤1:复制开始后,备库会根据时间线上的时间点向主库发起日志传输请求,主库根据要求将事务日志传送给备库; 步骤2:主库上每一个事物提交,必须等待日志传入到主库上每一个事务提交,必须等待日志传入到备库上所有节点并写入磁盘后再提交。2.根据权利要求1所述的一种基于自主可控数据库的高可用性方法,其特征在于:在主库完成一个事务与在备库中看到数据库的变化之间有一个很小的时间差,但远远小于直接对日志的传输。3.根据权利要求1所述的一种基于自主可控数据库的高可用性方法,其特征在于:只有当主、备库的所有服务器都接收到数据,并写入磁盘上的事务日志后,才能够执行提交或者回滚操作,同时,采用多个备库的同步流复制方案,要求每个备库的存储空间与主节点要保持一致,当同步备用节点异常时,采用角色转嫁给其他备用结点中的一员。4.根据权利要求1所述的一种基于自主可控数据库的高可用性方法,其特征在于:只有当主、备库的所有服务器都接收到数据,并写入磁盘上的事务日志后,才能够执行提交或者回滚操作,并采用主备两个节点,再增设一个主、备节点都可以访问到的专门存放事务日志的位置。5.根据权利要求1所述的一种基于自主可控数据库的高可用性方法,其特征在于:重建主库,可以通过原主库生成最新的备份进行恢复,恢复完成后,原主库以备库模式启动,并成为新主库的新备库,将新产生的所有事务日志,进行主备的同步,同步完成后,完成数据库重建。6.根据权利要求5所述的一种基于自主可控数据库的高可用性方法,其特征在于:主数据库服务器硬件配置优于备数据库服务器。7.根据权利要求1所述的一种基于自主可控数据库的高可用性方法,其特征在于:连接池将传输过来的SQL语句进行解析,将只读性操作分发至备机中的任意数据库,修改操作分发至主数据库。8.根据权利要求7所述的一种基于自主可控数据库的高可用性方法,其特征在于:当出现一主多备的情况,中间件会采取分布式计算中的动态算法和自适应算法来保证备机间的负载均衡。9.一种基于自主可控数据库的高可用性构架,其特征在于: 构架包括连接池、HA模块、主库、备库组成,其中主库和备库作为主服务器和备用服务器的节点,连接池负责建立应用程序和数据库之间的连接,HA模块用来做集群的状态监控和主备机自动切换的部分。10.根据权利要求9所述的一种基于自主可控数据库的高可用性构架,其特征在于:HA模块包括监控模块、切换模块及仲裁模块三个模块,其中:监控模块主要负责循环监控主库和备库所有服务器网络情况与数据库健康状况;仲裁模块负责接受监控模块提交的故障信息,对故障进行分类诊断和处理;切换模块负责接收仲裁模块的切换指令,完成主备节点切换。
【专利摘要】本发明提供一种基于自主可控数据库的高可用性方法及构架,该架构是基于国产自主可控的数据库软件产品PowerDB设计的,包括连接池、HA模块、主库、备库组成,其中主库和备库作为主服务器和备用服务器的节点,连接池负责建立应用程序和数据库之间的连接,HA模块用来做集群的状态监控和主备机自动切换的部分,通过块级别的数据复制技术,以及同步事务提交方式,保证了在灾备工作中,主备库的数据一致性,同时又见减小了复制对性能的影响。
【IPC分类】G06F17/30
【公开号】CN105069160
【申请号】CN201510530766
【发明人】邢艳, 张宇, 缪燕, 刘红超, 李海, 张学深
【申请人】国家电网公司, 北京许继电气有限公司
【公开日】2015年11月18日
【申请日】2015年8月26日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1