CN117349088B - 数据库增量回切方法、装置、设备及存储介质 - Google Patents
数据库增量回切方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117349088B CN117349088B CN202311641820.4A CN202311641820A CN117349088B CN 117349088 B CN117349088 B CN 117349088B CN 202311641820 A CN202311641820 A CN 202311641820A CN 117349088 B CN117349088 B CN 117349088B
- Authority
- CN
- China
- Prior art keywords
- database
- data
- backup
- source
- incremental
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012544 monitoring process Methods 0.000 claims description 75
- 230000006399 behavior Effects 0.000 claims description 40
- 230000008859 change Effects 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 abstract description 6
- 238000011084 recovery Methods 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2033—Failover techniques switching over of hardware resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2064—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2082—Data synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于计算机灾备技术领域,公开了一种数据库增量回切方法、装置、设备及存储介质。本发明通过在发送回切指令至备端数据库时,确定业务系统在所述备端数据库支撑下产生的增量数据,所述回切指令用于将所述备端数据库中备端数据回切到源端数据库支撑业务系统,所述业务系统在所述备端数据库支撑下产生的增量数据是业务系统从由源端数据库支撑,切换至由备端数据库支撑下产生的增量数据,将所述备端数据库的增量数据回切到所述源端数据库,在所述增量数据回切完成时,将业务系统由备端数据库支撑切换到由所述源端数据库支撑,实现业务系统由源端数据库切换到备端数据库后,使用增量或全量的方式将备端数据库中新增数据再次同步到源端数据库。
Description
技术领域
本发明涉及计算机灾备技术领域,尤其涉及一种数据库增量回切方法、装置、设备及存储介质。
背景技术
当源端数据库由于各种原因被损坏,无法维持业务时,为了使业务能够正常运行,则需要将业务切换到备端数据库。当源端数据库修复完成后,需要将备端数据库上承载的业务切换回来,当业务需要从备端数据库切换到源端数据库时,由于备端数据库作为业务数据库已经运行了一段时间,产生了一部分增量数据,并且,在同步备端数据库增量数据到源端数据库这期间,业务端仍在不断产生数据库,如何保证数据一致性,成为一个相当大的难题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种数据库增量回切方法、装置、设备及存储介质,旨在解决现有技术将使用备端数据库过程中产生的增量数据后回切至源端数据库导致备端数据库与源端数据库之间无法形成一致性的技术问题。
为实现上述目的,本发明提供了一种数据库增量回切方法,所述方法包括以下步骤:
在发送回切指令至备端数据库时,确定业务系统在所述备端数据库支撑下产生的增量数据,所述回切指令用于将所述备端数据库中备端数据回切到源端数据库支撑业务系统,所述业务系统在所述备端数据库支撑下产生的增量数据是业务系统从由源端数据库支撑,切换至由备端数据库支撑下产生的增量数据;
将所述备端数据库的增量数据回切到所述源端数据库;
在所述增量数据回切完成时,将所述业务系统由备端数据库支撑切换到由所述源端数据库支撑。
可选地,所述将所述备端数据库的增量数据回切到所述源端数据库,包括:
获取所述备端数据库的增量数据中的日志序列号,对所述日志序列号的连续性判断,得到所述备端数据库的增量数据的连续性结果;
获取源端数据库的数据写入状态;
在所述源端数据库的数据写入状态为不冲突,所述备端数据库的增量数据的连续性结果为连续时,将所述备端数据库的增量数据回切到所述源端数据库。
可选地,所述将所述备端数据库的增量数据回切到所述源端数据库,还包括:
在所述源端数据库的数据写入状态为冲突,所述备端数据库的增量数据的连续性结果为不连续时,将所述备端数据库的全部数据回切至所述源端数据库;
或,将所述备端数据库的增量数据回切到所述源端数据库的数据量大于将所述备端数据库中的全部数据回切到所述源端数据库的数据量时,将所述备端数据库的全部数据回切至所述源端数据库。
在所述源端数据库的数据写入状态为冲突,所述备端数据库的增量数据的连续性结果为连续时,确定所述源端数据库中的冲突数据,根据所述冲突数据确定所述备端数据库中对应的备份数据,将所述备份数据替换所述冲突数据;
根据所述源端数据库中除所述冲突数据外源端数据确定所述备端数据库中对应的增量数据,将所述备端数据库中对应的增量数据回切至所述源端数据库。
可选地,所述将所述备端数据库的增量数据回切到所述源端数据库的数据量大于将所述备端数据库中的全部数据回切到所述源端数据库的数据量时,将所述备端数据库的全部数据回切至所述源端数据库,还包括:
获取所述备端数据库的监控线程的操作日志,并根据所述操作日志得到事务信息;
对所述事务信息分析,得到所述备端数据库中各个表的增量数据;
获取所述备端数据库回切时刻的各个表的全部数据;
在所述表的增量数据回切到所述源端数据库的数据量大于所述表的全部数据回切到所述源端数据库的数据量时,将所述表的全部数据回切到所述源端数据库。
可选地,所述备端数据库包括备端监控线程,所述源端数据库包括源端监控线程,所述在发送回切指令至备端数据库时,确定业务系统在所述备端数据库支撑下产生的增量数据,包括:
在发送切换指令至所述源端数据库时,获取所述源端数据库的第一状态,所述切换指令用于将业务系统从由源端数据库支撑切换为由备端数据库支撑;
根据所述源端监控线程监测所述源端数据库的状态监测结果,并根据所述监测结果与所述第一状态得到所述源端数据库的写行为,根据所述写行为与预设写行为比较,得到中间写入状态;
在发送回切指令至所述备端数据库时,根据当前的状态检测结果更新所述中间写入状态,并将更新后的中间写入状态输出为所述源端数据库的数据写入状态;
获取在发送切换指令至所述备端数据库时,所述备端数据库的第二状态;
根据所述备端监控线程监测所述备端数据库中的状态监测结果,并根据所述状态监测结果与所述第二状态得到数据变化量;
在发送回切指令至所述备端数据库时,根据当前的状态监测结果更新所述数据变化量,并将更新后的数据变化量输出为所述备端数据库的增量数据。
可选地,所述将更新后的数据变化量输出为所述备端数据库的增量数据,包括:
根据所述第二状态得到的数据变化量确定事务数据;
对所述事务数据合并,得到所述备端数据库的增量数据。
可选地,所述对所述事务数据合并,得到所述备端数据库的增量数据,包括:
在所述备端数据库为存在归档行为的数据库时,在所述源端数据库同步数据至备端数据库的过程中,关闭备端数据库归档功能;
在所述源端数据库切到所述备端数据库之后,开启所述归档功能,所述备端数据库的监控线程读取操作日志,根据所述操作日志得到所述备端数据库的增量数据。
此外,为实现上述目的,本发明还提出一种数据库增量回切装置,所述数据库增量回切装置包括:
数据回切模块,用于在发送回切指令至备端数据库时,确定业务系统在所述备端数据库支撑下产生的增量数据,所述回切指令用于将所述备端数据库中备端数据回切到源端数据库支撑业务系统,所述业务系统在所述备端数据库支撑下产生的增量数据是业务系统从由源端数据库支撑,切换至由备端数据库支撑下产生的增量数据;
数据回切模块,还用于将所述备端数据库的增量数据回切到所述源端数据库;
业务回切模块,用于在所述增量数据回切完成时,将所述业务系统由备端数据库支撑切换到由所述源端数据库支撑。
此外,为实现上述目的,本发明还提出一种数据库增量回切设备,所述数据库增量回切设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据库增量回切程序,所述数据库增量回切程序配置为实现如上文所述的数据库增量回切方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有数据库增量回切程序,所述数据库增量回切程序被处理器执行时实现如上文所述的数据库增量回切方法的步骤。
本发明通过在发送回切指令至备端数据库时,确定业务系统在所述备端数据库支撑下产生的增量数据,所述回切指令用于将所述备端数据库中备端数据回切到源端数据库支撑业务系统,所述业务系统在所述备端数据库支撑下产生的增量数据是业务系统从由源端数据库支撑,切换至由备端数据库支撑下产生的增量数据,将所述备端数据库的增量数据回切到所述源端数据库,在所述增量数据回切完成时,将业务系统由备端数据库支撑切换到由所述源端数据库支撑,实现业务系统由源端数据库切换到备端数据库后,使用增量或全量的方式将备端数据库中新增数据再次同步到源端数据库。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的数据库增量回切设备的结构示意图;
图2为本发明数据库增量回切方法第一实施例的流程示意图;
图3为本发明数据库增量回切方法一实施例的系统示意图;
图4为本发明数据库增量回切方法第二实施例的流程示意图;
图5为本发明数据库增量回切装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的数据库增量回切设备结构示意图。
如图1所示,该数据库增量回切设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,Wi-Fi)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对数据库增量回切设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据库增量回切程序。
在图1所示的数据库增量回切设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明数据库增量回切设备中的处理器1001、存储器1005可以设置在数据库增量回切设备中,所述数据库增量回切设备通过处理器1001调用存储器1005中存储的数据库增量回切程序,并执行本发明实施例提供的数据库增量回切方法。
本发明实施例提供了一种数据库增量回切方法,参照图2,图2为本发明一种数据库增量回切方法第一实施例的流程示意图。
本实施例中,所述数据库增量回切方法包括以下步骤:
步骤S10:在发送回切指令至备端数据库时,确定业务系统在所述备端数据库支撑下产生的增量数据,所述回切指令用于将所述备端数据库中备端数据回切到源端数据库支撑业务系统,所述业务系统在所述备端数据库支撑下产生的增量数据是业务系统从由源端数据库支撑,切换至由备端数据库支撑下产生的增量数据。
需要说明的是,本实施例的执行主体是数据库增量回切设备,其中,该数据库增量回切设备具有数据处理,数据通信及程序运行等功能,所述数据库增量回切设备可以为集成控制器,控制计算机等设备,当然还可以为其他具备相似功能的设备,本实施例对此不做限制。
应当理解的是,源端数据库是用于存储业务数据的数据库,负载业务系统,备端数据库是用于存储业务数据的数据库,在源端数据库异常时负载业务系统,业务系统在所述备端数据库支撑下产生的增量数据,指的是在源端数据库宕机或者演练时,由备端数据库支撑业务系统运行时所产生的相对于在切换业务系统支撑的数据库时数据库中的数据的增量数据。
可以理解的是,参照图3,整个系统是由源端数据库,备端数据库、控制器及业务系统四部分组成,在所有的机器节点中,需要提前安装代理程序,在源端数据库宕机或者演练的时候,控制器通过代理程序发送切换指令到源端数据库,源端数据库在接收到指令后,立刻启动监控线程持续的解析源数据操作日志得到表和对象的修改行为,修改行为包括新增、删除和更新,然后将业务飘移到备端数据库,同时记录源端数据库的状态A。在业务飘移到备端数据库之前,备端数据库也需要启动监控线程持续的解析备端数据库操作日志,将解析后得到的事务信息合并之后进行保存,同样的也需要记录备端数据库的状态B。当源端数据库修复成功后,需要将业务系统由备端数据库切回到源端数据库时,由控制器发送校验指令给源端代理程序,源代理程序提取源监控线程保存的信息与状态A,判断是否在状态A之后产生了影响业务的数据冲突行为,这些行为包括:表或者业务对象修改。当未发生影响业务使用的数据冲突,并且备端数据库保存的增量数据完整,那么可以将这部分增量数据回传至源端数据库,否则需要进行全量的数据回传,当然在满足一定条件的情况下,也可以只全量同步部分对象,来达到数据回传的目的。当数据回传完毕之后,将业务切换到源端数据库,完成备端数据库到源端数据库的切换。
在具体实现中,在备端数据库接收到控制器发送的回切指令时,此时能够得到一个时间戳,同样的,在业务系统从源端数据库支撑转为由备端数据库支撑时,此时也存在一个时间戳。 根据这两个时间戳能确定在这段时间内的数据增量。
进一步地,所述备端数据库包括备端监控线程,所述源端数据库包括源端监控线程,所述在发送回切指令至备端数据库时,确定业务系统在所述备端数据库支撑下产生的增量数据,包括:
在发送切换指令至所述源端数据库时,获取所述源端数据库的第一状态,所述切换指令用于将业务系统从由源端数据库支撑切换为由备端数据库支撑;
根据所述源端监控线程监测所述源端数据库的状态监测结果,并根据所述检测结果与所述第一状态得到所述源端数据库的写行为,根据所述写行为与预设写行为比较,得到中间写入状态;
在发送回切指令至所述备端数据库时,根据当前的状态检测结果更新所述中间写入状态,并将更新后的中间写入状态输出为所述源端数据库的数据写入状态;
在发送切换指令至所述备端数据库时,所述备端数据库的第二状态;
根据所述备端监控线程监测所述备端数据库中的状态监测结果,并根据所述状态监测结果与所述第二状态得到数据变化量;
在发送回切指令至所述备端数据库时,根据当前的状态监测结果更新所述数据变化量,并将更新后的数据变化量输出为所述备端数据库的增量数据。
需要说明的是,第一状态指的是在源端数据库在接收到切换指令时,源端数据库此时的数据状态,中间写入状态是在监控线程在对源端数据库进行监测时,在某一时间的检测结果与第一状态相比存在的写入状态,在下一监测时间进行检测时,可以直接在上一检测时间产生的中间写入状态上进行更新操作;所述第二状态指的是在控制器发送切换指令至备端数据库时,备端数据库所记录的当前的备端数据库中的数据的状态和数据变化量。
在具体实现中,在具体实现中,在源端数据库接收到控制器发送的切换指令之后,启动监控线程持续的解析数据库操作日志得到表和对象的修改行为,修改行为包括新增、删除和更新,然后将业务飘移到从库,同时记录源端数据库的第一状态,第一状态是用于判断回切方式的重要以及,在回切时候如果直接采用增量数据回传的方式,那么可能会发生数据冲突,造成业务无法正常工作的严重后果。造成数据冲突,主要原因是由于在业务切换之后,源库还存在着写行为。这些写行为通常都是意料之外的,例如:运维人员误登录源库,对源库进行了修改,或者业务切换的不彻底,还有一些业务在操作源库。从业务切换到回切这之间,监控线程一直持续的在解析操作日志,这样源库所有的写行为,都会捕捉到,在回切前,通过分析这些操作,避免发生数据冲突,造成业务无法使用。不同的数据库操作日志的定义并不相同,其记录的状态信息也不相同。Oracle数据库在运行过程中,会将数据库的操作都记录在重做日志中,对于每一个操作,都会分配唯一的序列号SCN, 序列号是递增的。对于Oracle来说,操作日志即重做日志,状态记录其实就是查询当前系统最新的SCN。SqlServer数据库在运行过程中,会将数据库的操作都记录在事务日志中,对于每一个操作,都会分配唯一的序列号LSN(Log Sequence Number),序列号是递增的。对于SqlServer来说,操作日志即事务日志,状态记录其实就是查询当前系统最新的LSN。Mysql数据库启用binlog之后,会将数据库的操作都记录在binlog里面,对于每一个操作,在binlog文件里面的偏移地址都是唯一的且是递增的。对于Mysql来说,操作日志即binlog,状态记录其实就是记录最新的binlog_file_name, 及binlog_file_pos。
从触发时间上来看,备端数据库是先接收到控制器发送的切换指令,此时备端数据库需要启动备端数据库中的监控线程对操作日志新增的数据进行解析,将解析后得到的事务进行合并和保存,同时记录当前的备端数据库的状态,即第二状态。对于Oracle数据库,在收到切换指令后,还需要额外执行开启数据库的归档日志的操作。这主要是为了在源和备在同步过程中,提高从库性能以及减少归档日志所占的空间,通常会将归档日志关闭。此时将归档日志开启,目的是后续监控日志写入时候,如果当前重做日志切换过快,而监控线程又没有来的及读取的时候,造成重做日志丢失。例如:当前重做日志的序列号是10,而监控线程正在读取10号文件头部,由于数据库写入频繁,发生了日志切换,那么此时在没有开启归档的情况下,可能就会造成10号内容的丢失,此时监控线程就无法继续工作了,而在开启归档后,10号就会单独保存到归档目录,此时,监控线程就可以去归档目录里面继续读取10号文件。可以理解的是,归档重做日志简称归档日志,指当条件满足时,Oracle将在线重做日志以文件形式保存到硬盘,即数据持久化。Oracle数据库在运行时,可以选择是否开启归档日志,在非归档日志的情况下,Oracle所有的操作日志都写在在线重做日志当中,当所有在线重做日志文件写满时,其中Oracle在线重做日志是分组的,默认是分为三组,那么就把前面的日志文件覆盖继续写入。而在开启归档日志模式情况下,当重做日志都写满时,继续要写入日志时,会把要覆盖的日志文件写入归档日志当中,然后再对重做日志进行覆盖。
进一步地,所述将更新后的数据变化量输出为所述备端数据库的增量数据,包括:
根据所述第二状态得到的数据变化量确定事务数据;
对所述事务数据合并,得到所述备端数据库的增量数据。
在具体实现中,根据备端数据库的第二状态下时,能根据第二状态的数据变化量得到事务数据,备端数据库在进行事务数据确定时,能够及能够对每一次的事务数据进行合并,将较多的事务数据合并为较少的事务数据,例如存在一组事务数据为创建新列表,那么可以将这一组数据合并为一个事务数据为一次创建n个新列表,大大降低数据冗余量,进而能够降低增量数据的数据大小,提高数据回切效率。
进一步地,所述对所述事务数据合并,得到所述备端数据库的增量数据,包括:
在所述备端数据库为存在归档行为的数据库时,在所述源端数据库同步数据至备端数据库的过程中,关闭备端数据库归档功能;
在所述源端数据库切到所述备端数据库之后,开启所述归档功能,所述备端数据库的监控线程读取操作日志,根据所述操作日志得到所述备端数据库的增量数据。
在具体实现中,在备端数据库发生归档行为时,若在源端数据库同步数据到备端数据库时,在这个时间内,关闭备端数据库的归档动能,并在源端数据库回切到备端数据库之后,再开启归档功能,同时读取备端数据库的监控线程得到的操作日志,并根据得到的操作日志得到备端数据库的增量。
监控文件的具体方法如下:如果数据库是Oracle,需要备端数据库代理程序对数据库在线重做日志文件进行实时监控,发现在线重做日志文件有写入时,采用一定的方法读取在线重做日志文件的写入,并将写入的数据进行存储。监控在线重做日志的方法包括且不限于统计当前在线重做日志的大小以及行数,发现日志大小变更时,读取对应日志文件的新增行。如果是sql serer 那么对应的就是事务日志,如果是MySQL那么就是binlog。他们的监控方法与Oracle一样。这里监控到文件的改变后,读取新增数据,将数据解析成事务,并进行合并。这样做的目的主要是为了减少数据回传的时间。数据的回传,一般是将操作日志解析成事务,然后将事务翻译成SQL语句,然后执行SQL语句,完成数据的回传。这里提前将二进制文件解析成事务并将事务做合并,这样减少了回传时候事务的解析,同时进行了事务的合并,事务合并,也是加速事务重放的一种手段。具体来说:操作日志中,有5个事务,每个事务,都是执行一次插入操作。在重放这5个事务时候,执行的操作为:开启事务、执行插入1、提交事务,开启事务、执行插入2、提交事务。这样的操作得进行5次,而做了合并之后,执行得操作为:开启事务,执行插入1、执行插入2、......、执行插入5,提交事务。前后对比发现,合并之后,只需要一次事务得开启与提交。这样大大减少了操作的次数,从而加速了同步数据的速度。
步骤S20:将所述备端数据库的增量数据回切到所述源端数据库。
在具体实现中,在将备端数据库的增量数据回切到源端数据库时,需要对源端数据库、备端数据库的数据进行检测,一方面需要检测备端数据库中的数据是否连续,另一方面需要检测源端数据库是否存在冲突操作,影响在增量数据回切到源端数据库时,业务系统在源端数据库中的业务数据。在将备端数据库中的增量数据时,可以通过3种方式进行回切,包括增量同步、全量同步以及部分全量的增量同步,具体方式的选择需要根据在进行回切时源端数据库与备端数据库中的数据准备阶段。
步骤S30:在所述增量数据回切完成时,将所述业务系统由备端数据库支撑切换到由所述源端数据库支撑。
可以理解的是,在增量数据回切完成时,源端数据库中存储的数据已经包含了业务系统正常运行时的用于支撑业务系统的数据,因此此时的源端数据库已经具备支撑业务系统正常运行的能力,因此,此时能够将业务系统由备端数据库支撑切换到由源端数据库支撑。
进一步地,所述在所述增量数据回切完成时,将所述业务系统由备端数据库支撑切换到由所述源端数据库支撑,包括:
获取所述业务系统的业务IP地址;
将所述备端数据库中的所述业务IP地址删除,并在所述源端数据库中配置所述业务IP地址,实现将所述业务系统由备端数据库支撑切换到由所述源端数据库支撑。
在具体实现中,业务系统都是通过业务IP地址访问数据库来提供服务的,在最数据库双活容灾的时候,如果将源端数据库的业务IP地址删除掉,在备端数据库上配置该业务IP地址,相当于将业务系统由源端数据库支撑切换为由备端数据库支撑,也就是说通过该业务IP地址所访问的数据库不再是源端数据库而是备端数据库。相同的,在进行业务回切时,如果将该业务IP地址从备端数据库删除掉,再配置到源端数据库时,数据库的业务就切回到源端数据库,此时就完成了业务回切。因此在将业务系统由备端数据库支撑切换到由所述源端数据库支撑时需要先获取到业务系统的业务IP地址,并将备端数据库中的业务IP地址删除,在源端数据库中配置该业务IP地址,实现将业务系统由备端数据库支撑切换到由所述源端数据库支撑。
本实施例通过在发送回切指令至备端数据库时,确定业务系统在所述备端数据库支撑下产生的增量数据,所述回切指令用于将所述备端数据库中备端数据回切到源端数据库支撑业务系统,所述业务系统在所述备端数据库支撑下产生的增量数据是业务系统从由源端数据库支撑,切换至由备端数据库支撑下产生的增量数据,将所述备端数据库的增量数据回切到所述源端数据库,在所述增量数据回切完成时,将业务系统由备端数据库支撑切换到由所述源端数据库支撑,实现业务系统由源端数据库切换到备端数据库后,使用增量或全量的方式将备端数据库中新增数据再次同步到源端数据库。
参考图4,图4为本发明一种数据库增量回切方法第二实施例的流程示意图。
基于上述第一实施例,本实施例数据库增量回切方法在所述步骤S20,包括:
步骤S201:获取所述备端数据库的增量数据中的日志序列号,对所述日志序列号的连续性判断,得到所述备端数据库的增量数据的连续性结果。
步骤S202:获取源端数据库的数据写入状态。
步骤S203:在所述源端数据库的数据写入状态为不冲突,所述备端数据库的增量数据的连续性结果为连续时,将所述备端数据库的增量数据回切到所述源端数据库。
在具体实现中,在进行数据库增量回切时,需要对源端数据库的新增数据分析,以及校验备端数据库中数据的完整性。在源端数据库修复完成后,能够向控制器发送源端数据库修复完成的信息,此时控制器在接收到源端数据库修复完成的信息后,能够向源端数据库与备端数据库发送回切指令,使备端数据库中的增量数据转移到源端数据库。在源端数据库接收到控制器发送的回切指令时,需要提取源端数据库监控线程保存的信息,根据这些信息判断是否会发生数据冲突,以确定是否可以进行增量回切,对源端数据库监控线程保存的信息进行分析的目的是为了确定哪些行为的存在会导致增量回切后数据冲突,若不进行分析,而仅仅根据在源端数据库接收到切换指令之后就发生了写行为依据,就认为增量回切后会发生数据冲突,这会增大回切数据的同步时间。在判断是否会存在数据冲突时,可以对在源端数据库接收到切换指令之前的写行为进行排除,这些行为包括数据库自身发生的写行为、不含唯一约束表的新增行行为以及黑名单里面的行为。将这些行为排除后,如 果还存在写行为,那么就无法进行增量回切,反之就可以进行增量数据回传。数据库系统自身发生的写行为并不是业务数据,而是数据库自身系统特有行为,不会影响业务数据,所以这里可以排除。不含唯一约束表的新增行行为,由于没有唯一约束,那么也不会发生数据冲突。黑名单的机制主要是根据实际使用场景,例如一些数据库管理员,会在数据库启动时候,记录一条日志,记录启动时间等信息,同样的这些操作也并不会造成数据冲突。这些根据实际场景的需要,黑名单机制使得适用范围更加的广泛。数据库自身的写行为,通常都具有特殊的命名空间。因此可以依此来区分用户业务对象与数据库自身对象。例如在Oracle下,系统自身的数据通常放置于SYS命名空间下,SqlServer 与 mysql 通常放置在master下。
在对备端数据库中的数据的连续性进行判断时,可以根据数据库中日志的唯一序列号进行判断。若数据不是连续的,可以认为数据损坏,不能够采用增量同步,在判断数据是否连续时,可以采用以下方法,对于Oracle数据库来说,每一个重做日志都有唯一的序列号,而序列号又是连续的,每个重做日志的头部都表明了此日志包含的SCN号范围。校验数据是否连续,就只需要判断序列号是否连续。而对于单个重做日志,日志的头部包含了第一块与最后一块的信息,在校验时只需要校验第一块与最后一块信息是否与头部一致。根据SCN号范围,就可以知道是否存在第三状态之前的数据。对于SqlServer而言,事务日志中由连续的VLF构成,VLF有唯一的序号,且这些序号是连续的。对于每一个VLF而言,也都有头尾信息,可以保证单个VLF数据有效性。对MySQL, 每个binglog文件也都含有唯一序号,且这个序号是也是连续。
在所述源端数据库的数据写入状态为不冲突,所述备端数据库的增量数据的连续性结果为连续时,将备端增量数据解析成事务,按照先后顺序,以一定的格式同步到源端数据库。之后将事务翻译成SQL语句并执行,完成增量数据的回传。
进一步地,所述将所述备端数据库的增量数据回切到所述源端数据库,还包括:
在所述源端数据库的数据写入状态为冲突,所述备端数据库的增量数据的连续性结果为不连续时,将所述备端数据库的全部数据回切至所述源端数据库;
或,将所述备端数据库的增量数据回切到所述源端数据库的数据量大于将所述备端数据库中的全部数据回切到所述源端数据库的数据量时,将所述备端数据库的全部数据回切至所述源端数据库;
在所述源端数据库的数据写入状态为冲突,所述备端数据库的增量数据的连续性结果为连续时,确定所述源端数据库中的冲突数据,根据所述冲突数据确定所述备端数据库中对应的备份数据,将所述备份数据替换所述冲突数据;
根据所述源端数据库中除所述冲突数据外源端数据确定所述备端数据库中对应的增量数据,将所述备端数据库中对应的增量数据回切至所述源端数据库。
在具体实现中,判断依据是源端数据库发生数据冲突且备端数据库存储的数据不连续,或者评估到增量同步的时间比全量更长。全量同步,需要将备端数据库所有数据全部同步到源端数据库,可以理解为整体的复制。判断增量的同步时间比全量更长,主要是依据增量的数据量与全量的数据量,来计算同步的时间。例如首次切换后备端数据库持续运行了2个月,这2个月产生了2000GB的增量数据,而备端数据库的总数据量只有500GB,对于数据同步,全量同步500GB数据要比同步2000GB更快。之所以会出现数据量的增量为2000GB,但是数据库数据量只有500GB的情况,是因为增量数据记录的是一系列针对数据库的操作,这些操作可能最后对数据库容量变化可能会很小。例如插入10行数据,更新这10行数据,最后删除这10行数据,从数据库的角度来看,最后数据库就不会有这10行数据,所以容量变化为0。而增量数据记录了这30次的操作以及相应的数据。判断依据是源端数据库发生了数据冲突且备端数据库存储的数据连续。之所以有这种一个模式,是因为全量的数据量太大,会大大增加回切的时间,因此,尽可能不做全量同步。例如源端数据库有1000GB的数据量,而发生数据冲突的表只有100GB数据,如果只全量这个表,那么就不会全量同步剩余的900GB数据。由于备端数据库存储的数据是连续的,其它表的增量数据就是完整的。全量同步冲突的表,增量同步剩余数据,也可以完成数据同步的目标。
本实施例通过对源端数据库中的写状态进行判断,确定是否存在有与业务数据存在冲突的写操作存在,对备端数据库中的数据连续性进行判断,确定备端数据库中数据的完整性,根据源端数据库中数据冲突以及备端数据库中完整性使用增量或者全量的方式将备端数据库中新增数据再次同步到源端数据库。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有数据库增量回切程序,所述数据库增量回切程序被处理器执行时实现如上文所述的数据库增量回切方法的步骤。
参照图5,图5为本发明数据库增量回切装置第一实施例的结构框图。
如图5所示,本发明实施例提出的数据库增量回切装置包括:
数据回切模块10,用于在发送回切指令至备端数据库时,确定业务系统在所述备端数据库支撑下产生的增量数据,所述回切指令用于将所述备端数据库中备端数据回切到源端数据库支撑业务系统,所述业务系统在所述备端数据库支撑下产生的增量数据是业务系统从由源端数据库支撑,切换至由备端数据库支撑下产生的增量数据;
数据回切模块10,还用于将所述备端数据库的增量数据回切到所述源端数据库;
业务回切模块20,用于在所述增量数据回切完成时,将所述业务系统由备端数据库支撑切换到由所述源端数据库支撑。
本实施例通过在发送回切指令至备端数据库时,确定业务系统在所述备端数据库支撑下产生的增量数据,所述回切指令用于将所述备端数据库中备端数据回切到源端数据库支撑业务系统,所述业务系统在所述备端数据库支撑下产生的增量数据是业务系统从由源端数据库支撑,切换至由备端数据库支撑下产生的增量数据,将所述备端数据库的增量数据回切到所述源端数据库,在所述增量数据回切完成时,将业务系统由备端数据库支撑切换到由所述源端数据库支撑,实现业务系统由源端数据库切换到备端数据库后,使用增量或全量的方式将备端数据库中新增数据再次同步到源端数据库。
在一实施例中,所述数据回切模块10,还用于获取所述备端数据库的增量数据中的日志序列号;对所述日志序列号的连续性判断,得到所述备端数据库的增量数据的连续性结果;获取源端数据库的数据写入状态;在所述源端数据库的数据写入状态为不冲突,所述备端数据库的增量数据的连续性结果为连续时,将所述备端数据库的增量数据回切到所述源端数据库。
在一实施例中,所述数据回切模块10,还用于在所述源端数据库的数据写入状态为冲突,所述备端数据库的增量数据的连续性结果为不连续时,将所述备端数据库的全部数据回切至所述源端数据库;或,将所述备端数据库的增量数据回切到所述源端数据库的数据量大于将所述备端数据库中的全部数据回切到所述源端数据库的数据量时,将所述备端数据库的全部数据回切至所述源端数据库;在所述源端数据库的数据写入状态为冲突,所述备端数据库的增量数据的连续性结果为连续时,确定所述源端数据库中的冲突数据,根据所述冲突数据确定所述备端数据库中对应的备份数据,将所述备份数据替换所述冲突数据;根据所述源端数据库中除所述冲突数据外源端数据确定所述备端数据库中对应的增量数据,将所述备端数据库中对应的增量数据回切至所述源端数据库。
在一实施例中,所述数据回切模块10,还用于获取所述备端数据库的监控线程的操作日志,并根据所述操作日志得到事务信息;对所述事务信息分析,得到所述备端数据库中各个表的增量数据;获取所述备端数据库回切时刻的各个表的全部数据;在所述表的增量数据回切到所述源端数据库的数据量大于所述表的全部数据回切到所述源端数据库的数据量时,将所述表的全部数据回切到所述源端数据库。
在一实施例中,所述数据回切模块10,还用于在发送切换指令至所述源端数据库时,获取所述源端数据库的第一状态,所述切换指令用于将业务系统从由源端数据库支撑切换为由备端数据库支撑;根据所述源端监控线程监测所述源端数据库的状态监测结果,并根据所述监测结果与所述第一状态得到所述源端数据库的写行为,根据所述写行为与预设写行为比较,得到中间写入状态;在发送回切指令至所述备端数据库时,根据当前的状态检测结果更新所述中间写入状态,并将更新后的中间写入状态输出为所述源端数据库的数据写入状态;获取在发送切换指令至所述备端数据库时,所述备端数据库的第二状态;根据所述备端监控线程监测所述备端数据库中的状态监测结果,并根据所述状态监测结果与所述第二状态得到数据变化量;在发送回切指令至所述备端数据库时,根据当前的状态监测结果更新所述数据变化量,并将更新后的数据变化量输出为所述备端数据库的增量数据。
在一实施例中,所述数据回切模块10,还用于根据所述第二状态得到的数据变化量确定事务数据;对所述事务数据合并,得到所述备端数据库的增量数据。
在一实施例中,所述业务回切模块20,还用于在所述备端数据库为存在归档行为的数据库时,在所述源端数据库同步数据至备端数据库的过程中,关闭备端数据库归档功能;在所述源端数据库切到所述备端数据库之后,开启所述归档功能,所述备端数据库的监控线程读取操作日志,根据所述操作日志得到所述备端数据库的增量数据。
应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
应该理解的是,虽然本申请实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述 实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通 过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的 技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体 现出来,该计算机软件产品存储在一个存储介质(如只读存储器(Read Only Memory,ROM)/RAM、磁碟、光 盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种数据库增量回切方法,其特征在于,所述数据库增量回切方法包括:
在发送回切指令至备端数据库时,确定业务系统在所述备端数据库支撑下产生的增量数据,所述回切指令用于将所述备端数据库中备端数据回切到源端数据库支撑业务系统,所述业务系统在所述备端数据库支撑下产生的增量数据是业务系统从由源端数据库支撑,切换至由备端数据库支撑下产生的增量数据;
将所述备端数据库的增量数据回切到所述源端数据库;
在所述增量数据回切完成时,将所述业务系统由备端数据库支撑切换到由所述源端数据库支撑;
其中,所述备端数据库包括备端监控线程,所述源端数据库包括源端监控线程,所述在发送回切指令至备端数据库时,确定业务系统在所述备端数据库支撑下产生的增量数据,包括:
在发送切换指令至所述源端数据库时,获取所述源端数据库的第一状态,所述切换指令用于将业务系统从由源端数据库支撑切换为由备端数据库支撑;
根据所述源端监控线程监测所述源端数据库的状态监测结果,并根据所述监测结果与所述第一状态得到所述源端数据库的写行为,根据所述写行为与预设写行为比较,得到中间写入状态;
在发送回切指令至所述备端数据库时,根据当前的状态检测结果更新所述中间写入状态,并将更新后的中间写入状态输出为所述源端数据库的数据写入状态;
获取在发送切换指令至所述备端数据库时,所述备端数据库的第二状态;
根据所述备端监控线程监测所述备端数据库中的状态监测结果,并根据所述状态监测结果与所述第二状态得到数据变化量;
在发送回切指令至所述备端数据库时,根据当前的状态监测结果更新所述数据变化量,并将更新后的数据变化量输出为所述备端数据库的增量数据。
2.如权利要求1所述的方法,其特征在于,所述将所述备端数据库的增量数据回切到所述源端数据库,包括:
获取所述备端数据库的增量数据的日志序号,对所述日志序号的连续性判断,得到所述备端数据库的增量数据的连续性结果;
获取源端数据库的数据写入状态;
在所述源端数据库的数据写入状态为不冲突,所述备端数据库的增量数据的连续性结果为连续时,将所述备端数据库的增量数据回切到所述源端数据库。
3.如权利要求2所述的方法,其特征在于,所述将所述备端数据库的增量数据回切到所述源端数据库,还包括:
在所述源端数据库的数据写入状态为冲突,所述备端数据库的增量数据的连续性结果为不连续时,将所述备端数据库的全部数据回切至所述源端数据库;
或,将所述备端数据库的增量数据回切到所述源端数据库的数据量大于将所述备端数据库中的全部数据回切到所述源端数据库的数据量时,将所述备端数据库的全部数据回切至所述源端数据库;
在所述源端数据库的数据写入状态为冲突,所述备端数据库的增量数据的连续性结果为连续时,确定所述源端数据库中的冲突数据,根据所述冲突数据确定所述备端数据库中对应的备份数据,将所述备份数据替换所述冲突数据;
根据所述源端数据库中除所述冲突数据外的源端数据确定所述备端数据库中对应的增量数据,将所述备端数据库中对应的增量数据回切至所述源端数据库。
4.如权利要求3所述的方法,其特征在于,所述将所述备端数据库的增量数据回切到所述源端数据库的数据量大于将所述备端数据库中的全部数据回切到所述源端数据库的数据量时,将所述备端数据库的全部数据回切至所述源端数据库,还包括:
获取所述备端数据库的监控线程的操作日志,并根据所述操作日志得到事务信息;
对所述事务信息分析,得到所述备端数据库中各个表的增量数据;
获取所述备端数据库回切时刻的各个表的全部数据;
在所述表的增量数据回切到所述源端数据库的数据量大于所述表的全部数据回切到所述源端数据库的数据量时,将所述表的全部数据回切到所述源端数据库。
5.如权利要求1所述的方法,其特征在于,所述将更新后的数据变化量输出为所述备端数据库的增量数据,包括:
根据所述第二状态得到的数据变化量确定事务数据;
对所述事务数据合并,得到所述备端数据库的增量数据。
6.如权利要求5所述的方法,其特征在于,所述对所述事务数据合并,得到所述备端数据库的增量数据,包括:
在所述备端数据库为存在归档行为的数据库时,在所述源端数据库同步数据至备端数据库的过程中,关闭备端数据库归档功能;
在所述源端数据库切到所述备端数据库之后,开启所述归档功能,所述备端数据库的监控线程读取操作日志,根据所述操作日志得到所述备端数据库的增量数据。
7.一种数据库增量回切装置,其特征在于,所述数据库增量回切装置包括:
数据回切模块,用于在发送回切指令至备端数据库时,确定业务系统在所述备端数据库支撑下产生的增量数据,所述回切指令用于将所述备端数据库中备端数据回切到源端数据库支撑业务系统,所述业务系统在所述备端数据库支撑下产生的增量数据是业务系统从由源端数据库支撑,切换至由备端数据库支撑下产生的增量数据;
数据回切模块,还用于将所述备端数据库的增量数据回切到所述源端数据库;
业务回切模块,用于在所述增量数据回切完成时,将所述业务系统由备端数据库支撑切换到由所述源端数据库支撑;
其中,所述备端数据库包括备端监控线程,所述源端数据库包括源端监控线程,所述在发送回切指令至备端数据库时,确定业务系统在所述备端数据库支撑下产生的增量数据,包括:
在发送切换指令至所述源端数据库时,获取所述源端数据库的第一状态,所述切换指令用于将业务系统从由源端数据库支撑切换为由备端数据库支撑;
根据所述源端监控线程监测所述源端数据库的状态监测结果,并根据所述监测结果与所述第一状态得到所述源端数据库的写行为,根据所述写行为与预设写行为比较,得到中间写入状态;
在发送回切指令至所述备端数据库时,根据当前的状态检测结果更新所述中间写入状态,并将更新后的中间写入状态输出为所述源端数据库的数据写入状态;
获取在发送切换指令至所述备端数据库时,所述备端数据库的第二状态;
根据所述备端监控线程监测所述备端数据库中的状态监测结果,并根据所述状态监测结果与所述第二状态得到数据变化量;
在发送回切指令至所述备端数据库时,根据当前的状态监测结果更新所述数据变化量,并将更新后的数据变化量输出为所述备端数据库的增量数据。
8.一种数据库增量回切设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据库增量回切程序,所述数据库增量回切程序配置为实现如权利要求1至6中任一项所述的数据库增量回切方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有数据库增量回切程序,所述数据库增量回切程序被处理器执行时实现如权利要求1至6任一项所述的数据库增量回切方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311641820.4A CN117349088B (zh) | 2023-12-04 | 2023-12-04 | 数据库增量回切方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311641820.4A CN117349088B (zh) | 2023-12-04 | 2023-12-04 | 数据库增量回切方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117349088A CN117349088A (zh) | 2024-01-05 |
CN117349088B true CN117349088B (zh) | 2024-04-02 |
Family
ID=89365277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311641820.4A Active CN117349088B (zh) | 2023-12-04 | 2023-12-04 | 数据库增量回切方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117349088B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559258A (zh) * | 2020-12-02 | 2021-03-26 | 北京字节跳动网络技术有限公司 | 一种容灾处理方法、装置、系统、设备及介质 |
CN113535768A (zh) * | 2020-04-15 | 2021-10-22 | 北京京东乾石科技有限公司 | 生产监控方法和装置 |
CN114238495A (zh) * | 2021-11-25 | 2022-03-25 | 中国建设银行股份有限公司 | 数据库主备集群切换方法、装置、计算机设备及存储介质 |
CN114676118A (zh) * | 2022-05-30 | 2022-06-28 | 深圳市科力锐科技有限公司 | 数据库切换方法、装置、设备及存储介质 |
CN115599665A (zh) * | 2022-09-28 | 2023-01-13 | 中国建设银行股份有限公司(Cn) | 灾备系统测试的方法、装置、电子设备和存储介质 |
CN116466894A (zh) * | 2023-04-27 | 2023-07-21 | 中国工商银行股份有限公司 | 数据迁移方法、装置、存储介质及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016111697A1 (en) * | 2015-01-09 | 2016-07-14 | Landmark Graphics Corporation | Apparatus and methods of data synchronization |
-
2023
- 2023-12-04 CN CN202311641820.4A patent/CN117349088B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535768A (zh) * | 2020-04-15 | 2021-10-22 | 北京京东乾石科技有限公司 | 生产监控方法和装置 |
CN112559258A (zh) * | 2020-12-02 | 2021-03-26 | 北京字节跳动网络技术有限公司 | 一种容灾处理方法、装置、系统、设备及介质 |
CN114238495A (zh) * | 2021-11-25 | 2022-03-25 | 中国建设银行股份有限公司 | 数据库主备集群切换方法、装置、计算机设备及存储介质 |
CN114676118A (zh) * | 2022-05-30 | 2022-06-28 | 深圳市科力锐科技有限公司 | 数据库切换方法、装置、设备及存储介质 |
CN115599665A (zh) * | 2022-09-28 | 2023-01-13 | 中国建设银行股份有限公司(Cn) | 灾备系统测试的方法、装置、电子设备和存储介质 |
CN116466894A (zh) * | 2023-04-27 | 2023-07-21 | 中国工商银行股份有限公司 | 数据迁移方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117349088A (zh) | 2024-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7107294B2 (en) | Method and apparatus for interrupting updates to a database to provide read-only access | |
US20060004840A1 (en) | Index adding program of relational database, index adding apparatus, and index adding method | |
EP2194467A1 (en) | Extend CRUD to support lifecycle management and business continuity | |
CN110209521B (zh) | 数据校验方法、装置、计算机可读存储介质和计算机设备 | |
US20070220481A1 (en) | Limited source code regeneration based on model modification | |
CN109189852A (zh) | 一种数据同步的方法及用于数据同步的装置 | |
CN110825546A (zh) | 一种面向高可用数据库集群的恢复方法、系统及设备终端 | |
CN104750755A (zh) | 一种数据库主备切换后的数据回补方法及系统 | |
CN113868028A (zh) | 一种在数据节点上回放日志的方法、数据节点及系统 | |
CN101196839A (zh) | 双快闪只读存储器的数据修复与同步方法 | |
CN106855858B (zh) | 数据库操作方法及装置 | |
JP2006178964A (ja) | 電子文書を検査し保存するための方法およびコンピュータ読取り可能記録媒体 | |
CN116541469B (zh) | 数据同步的实现方法、装置、设备及存储介质 | |
CN117349088B (zh) | 数据库增量回切方法、装置、设备及存储介质 | |
US20050262033A1 (en) | Data recording apparatus, data recording method, program for implementing the method, and program recording medium | |
CN111506583A (zh) | 更新方法、更新装置、服务器、计算机设备和存储介质 | |
CN114780489B (zh) | 一种实现分布式块存储底层gc的方法及装置 | |
CN113703673B (zh) | 一种单机数据存储方法及相关装置 | |
CN108459925A (zh) | 私有云设备及其数据库的修复方法、具有存储功能的装置 | |
CN110297673B (zh) | 内存数据优化加载的方法、存储介质 | |
CN113190531A (zh) | 一种数据库迁移方法、装置、设备和存储介质 | |
CN115145831B (zh) | 无侵入式测试数据恢复方法及系统 | |
CN112596948B (zh) | 一种数据库集群数据备份方法、装置、设备及存储介质 | |
KR102382189B1 (ko) | 다중화 액티브 데이터베이스의 리플리케이션 갭 감지 방법 및 장치 | |
JP2004199264A (ja) | データベース処理方法及びその実施装置並びにその処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |