CN116010378A - 数据迁移方法、装置和计算机可读存储介质 - Google Patents
数据迁移方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN116010378A CN116010378A CN202310031735.XA CN202310031735A CN116010378A CN 116010378 A CN116010378 A CN 116010378A CN 202310031735 A CN202310031735 A CN 202310031735A CN 116010378 A CN116010378 A CN 116010378A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- target data
- migration
- main
- 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.)
- Pending
Links
- 238000013508 migration Methods 0.000 title claims abstract description 222
- 230000005012 migration Effects 0.000 title claims abstract description 222
- 238000000034 method Methods 0.000 title claims abstract description 94
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 37
- 238000012545 processing Methods 0.000 description 26
- 238000012986 modification Methods 0.000 description 13
- 230000004048 modification Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000003071 parasitic effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供的一种数据迁移方法、装置和计算机可读存储介质,包括:启动备份数据库向主数据库的数据迁移;接收业务请求,所述业务请求是当前运行的应用用于请求第一目标数据的请求;基于所述业务请求从备份数据库将所述第一目标数据迁移至主数据库,以使得主数据库向所述应用提供所述第一目标数据。本方案中,在备份数据库向主数据库进行数据迁移的过程中,若有应用请求第一目标数据,则基于业务请求从备份数据库中将第一目标数据迁移到主数据库后,主数据库向该请求的应用提供该第一目标数据,在保证应用的数据使用的前提下,将第一目标数据从备份数据库迁移到主数据库中,实现了备份数据库到主数据库的不停机的数据迁移。
Description
技术领域
本申请涉及数据处理领域,更具体的说,是涉及一种数据迁移方法、装置和计算机可读存储介质。
背景技术
数据高可用是系统高可用的关键因素。
当前,数据高可用一般依赖于数据库系统的数据同步机制,设置主库和备库。从主库切换到备库,以及从备库回切到主库,主库与备库为同构数据库时,可依赖数据库厂商提供的方案完成主库与备库的相互切换。
现有的oracle数据库是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现数据库快速切换与灾难性恢复。而且,现有技术中实现的数据同步只是在软件上对数据库进行设置,并不需要额外购买任何组件。用户能够在对主数据库影响很小的情况下,实现主备数据库的同步。在进行主备数据库切换时,可以保证数据高可用,主备机之间的数据差异只限于在线日志部分,因此被不少企业用作数据容灾解决方案。
如图1所示的是应用数据库结构示意图,当主备数据库是异构数据库时,两种异构数据库在正常业务情况下,应用服务器如需数据时使用主数据库,对于主数据库任何对数据库的修改操作,通过主数据库提供的数据库级主备数据单向同步机制,将修改操作同步到备份数据库中。当主数据库到备份数据库切换时,可以保证数据高可用,主备机之间的数据差异只限于在线日志部分。但从备份数据库切换到主数据库时,由于主数据库与备份数据库无成熟技术方案进行数据双向同步。
现有技术中,备份数据库数据到主数据库数据采用静态迁移。需要进行停机业务中断后,删除主数据库数据,通过静态数据迁移工具进行静态数据迁移。但是,采用该迁移方式,需要应用停机,而且停机时间依赖于数据库数据量。对于7*24小时系统的业务连续性无法保证,造成业务中断,存在局限性。
发明内容
有鉴于此,本申请提供了一种数据迁移方法,解决现有技术中从备份数据库向主数据进行迁移数据时,需要停机导致业务中断的问题。
为实现上述目的,本申请提供如下技术方案:
一种数据迁移方法,应用于电子设备,所述方法包括:
启动备份数据库向主数据库的数据迁移;
接收业务请求,所述业务请求是当前运行的应用用于请求第一目标数据的请求;
基于所述业务请求从备份数据库将所述第一目标数据迁移至主数据库,以使得主数据库向所述应用提供所述第一目标数据。
一种数据迁移装置,应用于一电子设备,包括:
启动模块,用于启动备份数据库向主数据库的数据迁移;
接收模块,用于接收业务请求,所述业务请求是当前运行的应用用于请求第一目标数据的请求;
第一迁移模块,用于基于所述业务请求从备份数据库将所述第一目标数据迁移至主数据库,以使得主数据库向所述应用提供所述第一目标数据。
一种计算机可读存储介质,所述可读介质用于存储若干指令,在计算机运行时所述指令用以执行如上述的方法。
经由上述的技术方案可知,与现有技术相比,本申请提供了一种数据迁移方法,包括:启动备份数据库向主数据库的数据迁移;接收业务请求,所述业务请求是当前运行的应用用于请求第一目标数据的请求;基于所述业务请求从备份数据库将所述第一目标数据迁移至主数据库,以使得主数据库向所述应用提供所述第一目标数据。本方案中,在备份数据库向主数据库进行数据迁移的过程中,若有应用请求第一目标数据,则基于业务请求从备份数据库中将第一目标数据迁移到主数据库后,主数据库向该请求的应用提供该第一目标数据,在保证应用的数据使用的前提下,将第一目标数据从备份数据库迁移到主数据库中,实现了备份数据库到主数据库的不停机的数据迁移。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是应用数据库结构示意图;
图2为本申请提供的一种数据迁移方法实施例1的流程图;
图3为本申请提供的一种数据迁移方法实施例2的流程图;
图4为本申请提供的一种数据迁移方法实施例3的流程图;
图5为本申请提供的一种数据迁移方法实施例4的流程图;
图6为本申请提供的一种数据迁移方法实施例5的流程图;
图7为本申请提供的一种数据迁移方法实施例6的流程图;
图8为本申请提供的一种数据迁移装置实施例的一结构示意图;
图9为本申请提供的一种数据迁移装置实施例的另一结构示意图;
图10为本申请提供的一种数据迁移装置应用的电子设备在一使用场景的结构示意图;
图11为本申请提供的一种数据迁移装置应用的电子设备在一使用场景的结构中接口模块的流程图;
图12为本申请提供的一种数据迁移装置应用的电子设备在一使用场景的结构中出票业务子模块执行的流程图;
图13为本申请提供的一种数据迁移装置应用的电子设备在一使用场景的结构中退票业务子模块执行的流程图;
图14为本申请提供的一种数据迁移装置应用的电子设备在一使用场景的结构中换开业务子模块执行的流程图;
图15为本申请提供的一种数据迁移装置应用的电子设备在一使用场景的结构中第二迁移模块执行的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
需要说明的是,本申请中的实施例,主要是对于备份数据库向主数据库进行数据迁移的过程进行解释说明。主数据库向备份数据库的数据迁移过程,可以参考现有技术中的迁移方式,本申请中不对于该过程进行详细解释。
如图2所示的,为本申请提供的一种数据迁移方法实施例1的流程图,该方法应用于一电子设备,该电子设备用于对于主备数据库的数据进行控制,该控制如写入数据、迁移数据等,该方法包括以下步骤:
步骤S201:启动备份数据库向主数据库的数据迁移;
其中,基于配置的迁移参数,启动备份数据库向主数据库的数据迁移。
其中,该配置的迁移参数用于确定备份数据库向主数据库进行数据迁移的时间/时机。
例如,迁移的时机是备份数据库的数据存储量达到总存储空间的预设比例。
例如,迁移的时间达到约定的迁移周期。
具体实施中,可以根据实际情况配置迁移参数,在备份数据库和主数据库的运行达到该迁移参数规定的情况,自动启动备份数据库向主数据库的数据迁移。
步骤S202:接收业务请求,所述业务请求是当前运行的应用用于请求第一目标数据的请求;
其中,在备份数据库向主数据库进行数据迁移的过程中,当前运行的应用还可以对于数据库进行数据请求。
其中,该应用进行数据请求时生成业务请求,该业务请求的是第一目标数据。
需要说明的是,该第一目标数据也可以称为活跃数据,该活跃数据是在数据迁移过程中,被应用使用到的数据,应用可以通过业务请求的方式请求该活跃数据。
步骤S203:基于所述业务请求从备份数据库将所述第一目标数据迁移至主数据库,以使得主数据库向所述应用提供所述第一目标数据。
其中,在备份数据库向主数据库迁移数据过程中,在接收到业务请求后,若备份数据库中有该业务请求对应的第一目标数据,将该第一目标数据迁移到主数据库中。
具体实施中,将该第一目标数据转换为数据业务回复,保证在数据迁移过程中,应用继续使用数据,实现了不停机的数据迁移。
其中,迁移的具体过程后续实施例中会做详细说明,本实施例中不做详述。
需要说明的是,主数据库作为为应用直接提供数据的数据库,因此,在进行数据迁移过程中,将第一目标数据从备份数据库迁移到主数据库中,并由该主数据库为应用提供第一目标数据,在保证应用的数据使用的前提下,将第一目标数据从备份数据库迁移到主数据库中,实现了不停机的数据迁移。
综上,本实施例提供的一种数据迁移方法,包括:启动备份数据库向主数据库的数据迁移;接收业务请求,所述业务请求是当前运行的应用用于请求第一目标数据的请求;基于所述业务请求从备份数据库将所述第一目标数据迁移至主数据库,以使得主数据库向所述应用提供所述第一目标数据。本方案中,在备份数据库向主数据库进行数据迁移的过程中,若有应用请求第一目标数据,则基于业务请求从备份数据库中将第一目标数据迁移到主数据库后,主数据库向该请求的应用提供该第一目标数据,在保证应用的数据使用的前提下,将第一目标数据从备份数据库迁移到主数据库中,实现了备份数据库到主数据库的不停机的数据迁移。
如图3所示的,为本申请提供的一种数据迁移方法实施例2的流程图,该方法包括以下步骤:
步骤S301:启动备份数据库向主数据库的数据迁移;
步骤S302:接收业务请求,所述业务请求是当前运行的应用用于请求第一目标数据的请求;
步骤S303:基于所述业务请求从备份数据库将所述第一目标数据迁移至主数据库,以使得主数据库向所述应用提供所述第一目标数据;
其中,步骤S301-303与实施例1中的步骤S201-203一致,本实施例中不做赘述。
步骤S304:在备份数据库中查询待迁移的第二目标数据;
其中,所述第二目标数据与第一目标数据不同。
其中,除了当前运行的应用请求的第一目标数据,该备份数据库中还存储有第二目标数据,该第二目标数据未被当前运行的应用请求的数据。
其中,启动备份数据库向主数据库的数据迁移过程时,生成一数据列表,该数据列表中包含有待迁移的数据。
具体的,在该数据列表中查询待迁移的第二目标数据。
其中,该第二目标数据也可以称为非活跃数据,该非活跃数据是在数据迁移过程中,未被应用交易使用到的数据。
具体的,可以基于生成的日期从近到远在备份数据库中查询出所有需要迁移的第二目标数据。
其中,在将备份数据库向主数据库迁移数据过程中,可以设定一迁移数据的时间,如1天、30天、100天等,或者具体的时刻如2021年5月1日至今,将该起始日期后生成的数据作为需要迁移的数据。
当然,迁移数据的时间/时刻取值可以根据实际情况而定,本申请中不做限制。
需要说明的是,启动第一目标数据迁移之后即可开始启动第二目标数据的迁移,并不需要一定是将第一目标数据迁移完成后才开始启动。
具体实施中,可以根据实际情况设定启动第二目标数据的迁移的时机是迁移完成第一目标数据后,还是启动第一目标数据迁移之后。
步骤S305:基于所述第二目标数据的生成时间,将所述第二目标数据依次迁移到主数据库。
其中,按照该第二目标数据的生成时间,从近到远依次将该第二目标数据一条一条插入到主数据库中。
其中,主数据库中的数据是按照时间存储,在确定一条第二目标数据的生成时间后,将其插入到主数据库中相应时间对应的存储位置。
需要说明的是,该步骤S304-305是用于对于备份数据库中的非活跃数据进行迁移,步骤S302-303是对于备份数据库中的活跃数据进行迁移,两种数据的迁移时间并不限制于本实施例中的先后顺序,具体实施中可以基于实际情况,在无活跃数据时,进行迁移非活跃数据,有活跃数据时迁移活跃数据,或者任何时刻可以进行非活跃数据迁移,在有活跃数据时,进行活跃数据迁移。
具体实施中,主数据库和备份数据库的数据库表中具有一迁移标识的字段,采用不同的数值表示已迁移和未迁移。
具体的,基于处于迁移时间内且迁移标识是未迁移的数据作为第二目标数据。
相应的,在将第二目标数据迁移到主数据库后,将该主数据库中第二目标数据在数据库表中对应的迁移标识修改为已迁移。
作为一个示例,迁移标识的字段采用0表示未迁移,1表示已迁移。
综上,本实施例提供的一种数据迁移方法中,还包括:在备份数据库中查询待迁移的第二目标数据,所述第二目标数据与第一目标数据不同;基于所述第二目标数据的生成时间,将所述第二目标数据依次迁移到主数据库。本方案中,还将备份数据库中待迁移的第二目标数据进行查询后,基于该第二目标数据的生成时间,将其依次迁移到主数据库中,既能够对于活跃数据进行迁移,也能够对于非活跃数据进行迁移,在保证应用的数据使用的前提下,将活跃数据和非活跃数据从备份数据库迁移到主数据库中,保证全量数据可以逐步从备份数据库迁移至主数据库,保证最终实现整体数据库迁移,保证整体数据的高可用。
如图4所示的,为本申请提供的一种数据迁移方法实施例3的流程图,该方法包括以下步骤:
步骤S401:启动备份数据库向主数据库的数据迁移;
步骤S402:接收业务请求,所述业务请求是当前运行的应用用于请求第一目标数据的请求;
其中,步骤S401-402与实施例1中的步骤S201-202一致,本实施例中不做赘述。
步骤S403:分析所述业务请求得到数据主键,所述数据主键与所述第一目标数据对应;
其中,数据主键作为数据库表中能够标识特定的行或者列的参数,基于数据主键能够查找数据库表中是否存在相应的数据。
具体的,在业务请求中携带有请求的第一目标数据的数据主键,分析该业务请求得到数据主键。
其中,基于该数据主键能够确定其对应的第一目标数据。
步骤S404:基于所述数据主键从备份数据库将所述第一目标数据迁移至主数据库,以使得主数据库向所述应用提供所述第一目标数据。
其中,在备份数据库中查找到该数据主键对应的第一目标数据后,将该第一目标数据迁移到主数据库。
具体的,步骤S404具体过程如下:
步骤S4041:在主数据库中查询是否存在所述数据主键对应的第一目标数据;
其中,主数据库是作为提供数据的优先选择的数据库,因此,在得到数据主键后,先在主数据库中进行查询,查询主数据库中是否存在于该数据主键对应的第一目标数据。
其中,若主数据库中存在该第一目标数据,则由主数据库提供该第一目标数据,在主数据库中操作该第一目标数据,将该第一目标数据转换为业务数据进行回复。
步骤S4042:若主数据库中不存在所述第一目标数据,从备份数据库将所述第一目标数据迁移至主数据库。
其中,若主数据库中不存在该第一目标数据,备份数据库中存在该第一目标数据,从备份数据库中将第一目标数据迁移至主数据库中,以使得该主数据库提供该第一目标数据,实现在主数据库中操作该第一目标数据,将该第一目标数据转换为业务数据进行回复
其中,该业务请求可以是修改数据或者是查询数据等。
作为一个示例,该业务请求是修改第一目标数据时,先确定主数据库中是否存在该第一目标数据,如果不存在,将该活跃数据从备份数据迁移到主数据库后,对于该主数据库中的第一目标数据进行修改。
综上,本实施例提供的一种数据迁移方法中,包括:分析所述业务请求得到数据主键,所述数据主键与所述第一目标数据对应;基于所述数据主键从备份数据库将所述第一目标数据迁移至主数据库。本方案中,基于业务请求得到数据主键,以使得基于该数据主键从备份数据库中确定对应的第一目标数据,并将其迁移至主数据库,以使得主数据库向应用提供该第一目标数据,实现了在数据迁移过程中维持应用运行不停机的目的。
如图5所示的,为本申请提供的一种数据迁移方法实施例4的流程图,该方法包括以下步骤:
步骤S501:清空所述主数据库;
需要说明的是,本申请中,备份数据库向主数据库进行数据迁移,是为了后续进行主备切换,而在主备切换后,当前的主数据库不进行任何交易,其数据不可信,因此,需要在启动备份数据库向主数据库的数据迁移之前,先清空主数据库。
具体的,可以通过删除全部数据的方式进行清空。
当然,也可以采用其他方式清空,本申请不对于清空的方式进行限制。
需要说明的是,后续步骤504中,将备份数据库中的第一目标数据迁移至主数据库的过程中,在迁移过程中,可能有部分数据已经迁移到主数据库中,可以先基于业务请求在主数据库进行确认是否存在该第一目标数据。
步骤S502:启动备份数据库向主数据库的数据迁移;
步骤S503:接收业务请求,所述业务请求是当前运行的应用用于请求第一目标数据的请求;
步骤S504:基于所述业务请求从备份数据库将所述第一目标数据迁移至主数据库,以使得主数据库向所述应用提供所述第一目标数据;
步骤S505:在备份数据库中查询待迁移的第二目标数据;
步骤S506:基于所述第二目标数据的生成时间,将所述第二目标数据依次迁移到主数据库。
其中,步骤S502-506与实施例2中的步骤S201-305一致,本实施例中不做赘述。
综上,本实施例提供的一种数据迁移方法中,启动备份数据库向主数据库的数据迁移之前还包括:清空所述主数据库。本方案中,在启动备份数据库向主数据库进行数据迁移之前,先清空主数据库,以保证后续迁移到主数据库中的数据不受到主数据库中原存储内容的影响。
如图6所示的,为本申请提供的一种数据迁移方法实施例5的流程图,该方法包括以下步骤:
步骤S601:清空所述主数据库;
步骤S602:启动备份数据库向主数据库的数据迁移;
其中,步骤S601-602与实施例4中的步骤S501-502一致,本实施例中不做赘述。
步骤S603:若当前电子设备的运行状态是处于第一状态,将备份数据库的数据迁移标识字段设置为未迁移,将主数据库的数据迁移标识字段设置为已迁移;
其中,电子设备处于第一状态时,备份数据库处于常规模式、主数据库处于迁移模式。
步骤S604:若当前电子设备的运行状态是第二状态,将主数据库的数据迁移标识字段设置为未迁移;
其中,电子设备处于第二状态时,备份数据库和主数据库均处于常规模式。
其中,电子设备具有两种状态,在第一状态下备份数据库处于常规模式、主数据库处于迁移模式;在第二状态下,备份数据库和主份数据库均处于常规模式。
其中,在第一状态下,备份数据库处于常规模式时,将所述备份数据库中的数据提供给应用,主数据库处于迁移模式时备份数据库向主数据库进行第二目标数据的迁移;在第二状态下主数据库处于常规模式时,将所述主数据库中的数据提供给应用。
其中,两个状态间的切换可以基于配置的迁移参数进行切换。
其中,若当前电子设备是第一状态,采用备份数据库中的数据提供给应用,相应的,控制将备份数据库中的数据迁移标识字段设置为未迁移,表征该备份数据库中的数据可靠,则从备份数据库中获得第一目标数据;而且,若主数据库处于迁移模式,还将备份数据库中的第二目标数据向主数据库迁移;
其中,若当前电子设备是第二状态,采用主数据库中的数据提供给应用,相应的,控制将主数据库中的数据迁移标识字段设置为未迁移,表征该主数据库中的数据可靠,则直接从主数据库获得第一目标数据。
其中,若当前电子设备的运行状态是第一状态,此时,备份数据库的数据可靠,控制备份数据库向主数据库进行数据迁移,控制将主数据库中的数据迁移标识字段设置为已迁移,表征已将备份数据库中的某些数据迁移到该主数据库中。
需要说明的是,若后续步骤S605中接收到的业务请求是查询第一目标数据时,若当前电子设备的运行状态是第一状态,基于该主数据库的标识为已迁移,可以直接访问该第一目标数据的原始存储位置即备份数据库,若当前电子设备的运行状态是第二状态,基于该主数据库的标识为未迁移,该主数据库的数据可信,则可以访问主数据库。然后,将查询得到的第一目标数据进行转化,转化为数据业务提供给应用。
步骤S605:接收业务请求,所述业务请求是当前运行的应用用于请求第一目标数据的请求;
步骤S606:基于所述业务请求从备份数据库将所述第一目标数据迁移至主数据库,以使得主数据库向所述应用提供所述第一目标数据;
步骤S607:在备份数据库中查询待迁移的第二目标数据;
步骤S608:基于所述第二目标数据的生成时间,将所述第二目标数据依次迁移到主数据库。
其中,步骤S604-608与实施例4中的步骤S502-506一致,本实施例中不做赘述。
综上,本实施例提供的一种数据迁移方法中,还包括:若备份数据库处于常规模式、主数据库处于迁移模式,确定当前电子设备的运行状态是处于第一状态,将备份数据库的数据迁移标识字段设置为未迁移,将主数据库的数据迁移标识字段设置为已迁移;若备份数据库和主份数据库均处于常规模式,确定当前电子设备的运行状态是第二状态,将主数据库的数据迁移标识字段设置为未迁移;其中,在第一状态下,备份数据库处于常规模式时,将所述备份数据库中的数据提供给应用,主数据库处于迁移模式时备份数据库向主数据库进行第二目标数据的迁移;在第二状态下,主数据库处于常规模式时,将所述主数据库中的数据提供给应用。本实施例中,基于电子设备当前的运行状态不同,设置数据库的数据迁移标识字段为不同的内容,以便后续查询目标数据时,可以基于主数据库和备份数据库的数据迁移标识字段来确定主数据库的数据是否可用,提高为业务提供第一目标数据的速度。
如图7所示的,为本申请提供的一种数据迁移方法实施例6的流程图,该方法包括以下步骤:
步骤S701:清空所述主数据库;
步骤S702:启动备份数据库向主数据库的数据迁移;
步骤S703:若当前电子设备的运行状态是处于第一状态,将备份数据库的数据迁移标识字段设置为未迁移,将主数据库的数据迁移标识字段设置为已迁移;
步骤S704:若当前电子设备的运行状态是第二状态,将主数据库的数据迁移标识字段设置为未迁移;
步骤S705:接收业务请求,所述业务请求是当前运行的应用用于请求第一目标数据的请求;
步骤S706:基于所述业务请求从备份数据库将所述第一目标数据迁移至主数据库,以使得主数据库向所述应用提供所述第一目标数据;
步骤S707:在备份数据库中查询待迁移的第二目标数据;
步骤S708:基于所述第二目标数据的生成时间,将所述第二目标数据依次迁移到主数据库;
其中,步骤S701-708与实施例5中的步骤S601-608一致,本实施例中不做赘述。
步骤S709:将主数据库的数据迁移标识字段为已迁移。
其中,在将第一目标数据和/或第二目标数据迁移到主数据库后,将主数据库中的数据迁移标识字段设置为已迁移。
需要说明的是,若该业务请求是创建数据时,可以对于主数据库进行数据创建。具体的,从业务请求中获取到创建数据后,转换能够存储到主数据库中的数据格式。其中,将创建数据写入主数据库中,写入的模块结构提供的接口为偏向数据库访问的insert XX表(该insertXX表表示目标访问的数据库表)的方法,因此,本实施例中是将创建数据转换为该接口对应的数据格式。
并且,根据电子设备的当前运行状态进行数据迁移标识字段的设置,具体的,常规模式,构造数据迁移标识字段为未迁移;迁移模式,构造数据迁移标识字段为已迁移。
综上,本实施例提供的一种数据迁移方法中,还包括:将主数据库的数据迁移标识字段设置为已迁移。本方案中,在将备份数据库中的数据迁移到主数据库后,还将该主数据库中数据迁移标识字段设置为已迁移,以为后续使用该主数据库中数据和后续的迁移提供依据。
虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
与上述本申请提供的一种数据迁移方法实施例相对应的,本申请还提供了应用该数据迁移方法的装置实施例。
如图8所示的为本申请提供的一种数据迁移装置实施例的一结构示意图,该装置包括以下结构:启动模块801、接收模块802和第一迁移模块803;
其中,该启动模块801,用于启动备份数据库向主数据库的数据迁移;
其中,该接收模块802,用于接收业务请求,所述业务请求是当前运行的应用用于请求第一目标数据的请求;
其中,该第一迁移模块803,用于基于所述业务请求从备份数据库将所述第一目标数据迁移至主数据库,以使得主数据库向所述应用提供所述第一目标数据。
可选的,第一迁移模块包括:
分析单元,用于分析所述业务请求得到数据主键,所述数据主键与所述第一目标数据对应;
迁移单元,用于基于所述数据主键从备份数据库将所述第一目标数据迁移至主数据库。
可选的,迁移单元,具体用于:
在主数据库中查询是否存在所述数据主键对应的第一目标数据;
若主数据库中不存在所述第一目标数据,从备份数据库将所述第一目标数据迁移至主数据库。
如图9所示的为本申请提供的一种数据迁移装置实施例的另一结构示意图,该装置包括以下结构:启动模块901、接收模块902、第一迁移模块903和第二迁移模块904;
其中,该启动模块901、接收模块902、第一迁移模块903的结构功能与前述内容一致,此处不做赘述。
其中,该第二迁移模块904,用于在备份数据库中查询待迁移的第二目标数据,所述第二目标数据与第一目标数据不同;基于所述第二目标数据的生成时间,将所述第二目标数据依次迁移到主数据库。
可选的,还包括:
清空模块,用于清空所述主数据库。
可选的,还包括:
标识模块,用于若当前电子设备的运行状态是处于第一状态,将备份数据库的数据迁移标识字段设置为未迁移,将主数据库的数据迁移标识字段设置为已迁移,其中,所述电子设备处于第一状态时,备份数据库处于常规模式、主数据库处于迁移模式;若当前电子设备的运行状态是第二状态,将主数据库的数据迁移标识字段设置为未迁移,其中,电子设备处于第二状态时,备份数据库和主数据库均处于常规模式;其中在第一状态下,备份数据库处于常规模式时,将所述备份数据库中的数据提供给应用,主数据库处于迁移模式时备份数据库向主数据库进行第二目标数据的迁移;在第二状态下主数据库处于常规模式时,将所述主数据库中的数据提供给应用。
可选的,所述标识模块在基于所述数据主键从备份数据库将所述第一目标数据迁移至主数据库之后,还用于:
将主数据库的数据迁移标识字段设置为已迁移。
综上,本实施例提供的一种数据迁移装置,在备份数据库向主数据库进行数据迁移的过程中,若有应用请求第一目标数据,则基于业务请求从备份数据库中将第一目标数据迁移到主数据库后,主数据库向该请求的应用提供该第一目标数据,在保证应用的数据使用的前提下,将第一目标数据从备份数据库迁移到主数据库中,实现了备份数据库到主数据库的不停机的数据迁移。
如图10所示的为本申请提供的一种数据迁移装置应用的电子设备在一使用场景的结构示意图,该使用场景具体是EMD(Electronic miscellaneous document,电子杂费单管理系统)的场景,在本场景中,包括:接口模块1001、业务处理模块1002、数据迁移装置1003、数据库访问模块1004、主数据库1005和备份数据库1006;
其中,数据迁移装置执行本申请中提供的一种数据迁移方法。
其中,电子杂费单管理软件的标准业务有出票、退票、废票、换开、系统取消、退票取消等场景,接口模块1001通过业务请求不同,识别相关业务场景,转化为业务处理模块1002可识别的业务请求后,交给业务处理模块进行后续处理。
如图11所示的为接口模块执行的流程图。其中,接口模块在接收到业务场景中的业务请求后,校验请求报文格式、字段内容是否正确,如果不正确的话,提示错误信息,结束流程,如果正确的话,分流给相关分支业务处理模块进行处理,并反馈业务处理模块是否成功的结果,并在业务处理模块处理成功时返回成提示信息,结束流程,如果处理不成功提示错误信息,结束流程。
其中,业务处理模块包含出票业务子模块,退票业务子模块,换开业务子模块。出票业务子模块主要负责与出票相关业务的处理,退票业务资模块主要负责与退票相关业务的处理,如退票、废票、系统取消、退票取消等,换开业务子模块主要负责与换开相关业务的处理。
如图12所示的为出票业务子模块执行的流程图。其中,接收到业务请求后,校验旅客信息、票面信息及价格信息等是否存在,如果不存在,提示错误信息,结束流程,如果存在,请求数据库存储销售、运输数据,数据迁移装置对于数据库中数据进行处理,若数据迁移装置处理失败,提示错误信息,结束流程,若数据迁移装置处理成功出票成功,返回提示信息,结束流程。
其中,数据迁移装置对于数据库中数据进行处理的过程参考前述方法说明书中的解释即可。
如图13所示的为退票业务子模块执行的流程图。其中,接收到业务请求后,若提取销售记录失败,提示错误信息,结束流程,如果提取销售记录成功,判断业务处理相关信息校验是否成功,如果失败,提示错误信息,结束流程,如果成功请求数据库存储退票销售数据,数据迁移装置(中的第一迁移模块)基于该请求处理数据库中数据,若处理失败,提示错误信息,结束流程,若处理成功,请求数据库修改销售的运输数据,若修改失败,提示错误信息,结束流程,若修改成功,退票成功返回提示信息,结束流程。
其中,数据迁移装置(中的第一迁移模块)对于请求数据库存储退票销售数据以及请求数据库修改销售的运输数据进行处理的过程参考前述方法说明书中的解释即可。
如图14所示的为换开业务子模块执行的流程图。其中,接收到业务请求后,若查询全票面未成功,提示错误信息,结束流程;若查询全票面成功,业务处理相关信息校验,若校验不成功,提示错误信息,结束流程,若校验成功,请求数据库存储换开新票的销售、运输数据,数据迁移装置(中的第一迁移模块)基于该请求处理数据库中数据,若处理失败,提示错误信息,结束流程,若处理成功,请求修改数据库旧票的运输数据,数据迁移装置(中的第一迁移模块)基于该请求处理数据库中数据,若处理失败,提示错误信息,结束流程,若处理成功,换开成功,返回提示信息,结束流程。
相应的,本场景中,数据迁移装置中的第一迁移模块包括多个子模块,如:活跃数据迁移子模块、数据主数据库存在性检查子模块、数据创建子模块、数据查询子模块、数据修改子模块。
其中,活跃数据迁移子模块主要用于将活跃数据(第一目标数据)从备份数据库复制到主数据库,并在复制后修改主数据库的数据迁移标识字段为已迁移,后续通过主数据库提供的主备数据到备份数据库的单向同步机制,迁移标识会从主数据库同步给备份数据库。
具体的,第一迁移模块接收到请求得到其中的数据主键,活跃数据迁移子模块获取数据主键后,通过数据查询模块从备份数据库中获取所述主键对应数据,通过数据创建子模块将所述主键备份数据库数据在主数据库中进行数据创建,通过数据修改模块将所述主键主数据库数据迁移标识更新为已迁移。
其中,数据主数据库存在性检查子模块用于迁移运行模式,具体的,该数据主数据库存在性检查子模块主要用于基于电子杂费单号检查所述活跃数据在主数据库中是否存在,并且获取主键后,通过数据库访问模块,查询主数据库的数据是否存在,以及所述活跃数据迁移标识是否为已迁移。
其中,数据创建子模块,用于向主数据库中创建数据的数据处理,通过数据库访问模块对主数据库进行数据创建。数据创建模块从数据业务请求中获取到创建数据后,转化为数据访问模块可接收的数据格式,根据运行模式进行迁移标识的设置:在常规模式,构造迁移标识为未迁移;在迁移模式,构造迁移标识为已迁移。
其中,数据查询子模块用于对数据库进行查询的数据处理。具体的,在迁移模式下,通过数据库访问模块获取备份数据库中所述活跃数据,在常规模式下,通过数据库访问模块获取主数据库中所述活跃数据。具体的,数据查询子模块从数据业务请求中获取查询条件后,调用数据库访问模块,在运行模式为迁移运行模式的设置下,数据库访问模块连接备份数据库,在运行模式为常规运行模式的设置下,数据库访问模块连接主数据库,数据查询子模块将数据库访问模块回复的所述活跃数据进行转化,转化为数据业务回复。
其中,数据修改子模块,用于对主数据库进行数据修改的数据处理。具体的,数据修改子模块从数据业务请求中获取修改数据后,在迁移模式下基于电子杂费单号通过活跃数据主数据库存在性检查子模块检查主数据库是否有所述活跃数据,主数据库没有对应数据的情况下,通过活跃数据迁移子模块将所属活跃数据从备份数据库迁移至主数据库;在常规模式下不需要进行主数据库存在性检查和活跃数据迁移。数据修改子模块通过数据库访问模块修改主数据库中数据。
其中,数据迁移装置(中的第一迁移模块)各子模块处理的过程还可以参考前述方法说明书中的解释。
如图15所示的为第二迁移模块执行的流程图。其中,预先在主数据库和备份数据库的数据库表中添加迁移标识字段,如1代表已迁移,0代表未迁移。具体过程如下:
步骤S1501:执行非活跃迁移,将当前日期作为请求日期向列表查询发出查询请求;
步骤S1502:列表查询,根据请求日期查询所有迁移标识为0的交易号以及下一个要迁移的日期;
步骤S1503:确定上一步骤中的查询结果,判断交易号的数量是否为0;
其中,若交易号数量为0,跳到步骤S1508,若交易号不为0,执行步骤S1504。
步骤S1504:判断交易号是否在主数据中存在;
其中,若存在,跳到步骤S1507,若不存在,执行步骤S1505。
步骤S1505:调用数据查询,查询请求交易号的EMD票面数据;
其中,该EMD票面数据即为此处的非活跃数据。
步骤S1506:将查询结果插入到主数据库中,并将迁移标识更新为1;
步骤S1507:判断是否为最后一个交易号;
如果不是,返回重复步骤4-6,如果是,执行步骤8;
步骤S1508:判断下一个迁移日期是否为空。
其中,若下一个要迁移的日期不为空,将其作为请求日期返回重复步骤S1502-S1508,如果下一个要迁移的日期为0,结束流程。
相应的,数据库访问模块分别与第一迁移模块和第二迁移模块、主数据库和备份数据库相连,用于在第一迁移模块/第二迁移模块与主数据库/备份数据库之间进行信息/数据进行传输。
其中,数据库访问模块用于检查数据库是否连接,连接数据库,校验数据库操作合法性、进行绑定变量、执行数据库操作以及提交数据库操作。
具体的,检查数据库是否连接,包括:检查数据库连接标志位是否为已连接;使用数据库的接口执行心跳SQL(Structured Query Language,结构化查询语言),检查数据库实际是否已连接。
具体的,连接数据库,包括:使用数据库的接口,创建数据库连接Statement(执行数据库操作的一个接口);设置数据库连接标志位为已连接。
具体的,校验数据库操作合法性,包括:使用数据库接口校验SQL是否合法;校验绑定变量命名是否合法,绑定变量的命名必须和数据库字段一致。
具体的,进行绑定变量,包括:根据绑定变量名进行变量绑定,绑定变量类型为数据库同名字段类型。
具体的,执行数据库操作,包括:调用数据库接口执行数据库操作。
具体的,提交数据库操作,包括:调用数据库接口提交数据库操作。
需要说明的是,描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
与上述本申请提供的一种数据迁移方法实施例相对应的,本申请还提供了应用该数据迁移方法的计算机可读存储介质实施例。
该计算机可读存储介质中存储有若干指令,在计算机运行时所述指令用以执行如上述方法实施例中任一项所述的方法。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种数据迁移方法,其特征在于,应用于一电子设备,所述方法包括:
启动备份数据库向主数据库的数据迁移;
接收业务请求,所述业务请求是当前运行的应用用于请求第一目标数据的请求;
基于所述业务请求从备份数据库将所述第一目标数据迁移至主数据库,以使得主数据库向所述应用提供所述第一目标数据。
2.根据权利要求1所述的方法,其特征在于,所述基于所述业务请求从备份数据库将所述第一目标数据迁移至主数据库之后,还包括:
在备份数据库中查询待迁移的第二目标数据,所述第二目标数据与第一目标数据不同;
基于所述第二目标数据的生成时间,将所述第二目标数据依次迁移到主数据库。
3.根据权利要求1所述的方法,其特征在于,基于所述业务请求从备份数据库将所述第一目标数据迁移至主数据库,包括:
分析所述业务请求得到数据主键,所述数据主键与所述第一目标数据对应;
基于所述数据主键从备份数据库将所述第一目标数据迁移至主数据库。
4.根据权利要求3所述的方法,其特征在于,基于所述数据主键从备份数据库将所述第一目标数据迁移至主数据库,包括:
在主数据库中查询是否存在所述数据主键对应的第一目标数据;
若主数据库中不存在所述第一目标数据,从备份数据库将所述第一目标数据迁移至主数据库。
5.根据权利要求1所述的方法,其特征在于,所述启动备份数据库向主数据库的数据迁移之前,还包括:
清空所述主数据库。
6.根据权利要求5所述的方法,其特征在于,清空所述主数据库之后,还包括:
若当前电子设备的运行状态是处于第一状态,将备份数据库的数据迁移标识字段设置为未迁移,将主数据库的数据迁移标识字段设置为已迁移,其中,所述电子设备处于第一状态时,备份数据库处于常规模式、主数据库处于迁移模式;
若当前电子设备的运行状态是第二状态,将主数据库的数据迁移标识字段设置为未迁移,其中,电子设备处于第二状态时,备份数据库和主数据库均处于常规模式;
其中,备份数据库处于常规模式时,将所述备份数据库中的数据提供给应用,主数据库处于迁移模式时备份数据库向主数据库进行第二目标数据的迁移;主数据库处于常规模式时,将所述主数据库中的数据提供给应用。
7.根据权利要求6所述的方法,其特征在于,基于所述数据主键从备份数据库将所述第一目标数据迁移至主数据库之后,还包括:
将主数据库的数据迁移标识字段设置为已迁移。
8.一种数据迁移装置,其特征在于,应用于一电子设备,包括:
启动模块,用于启动备份数据库向主数据库的数据迁移;
接收模块,用于接收业务请求,所述业务请求是当前运行的应用用于请求第一目标数据的请求;
第一迁移模块,用于基于所述业务请求从备份数据库将所述第一目标数据迁移至主数据库,以使得主数据库向所述应用提供所述第一目标数据。
9.根据权利要求8所述的装置,其特征在于,还包括
第二迁移模块,用于在备份数据库中查询待迁移的第二目标数据,所述第二目标数据与第一目标数据不同;基于所述第二目标数据的生成时间,将所述第二目标数据依次迁移到主数据库。
10.一种计算机可读存储介质,其特征在于,所述可读介质用于存储若干指令,在计算机运行时所述指令用以执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310031735.XA CN116010378A (zh) | 2023-01-10 | 2023-01-10 | 数据迁移方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310031735.XA CN116010378A (zh) | 2023-01-10 | 2023-01-10 | 数据迁移方法、装置和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116010378A true CN116010378A (zh) | 2023-04-25 |
Family
ID=86033480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310031735.XA Pending CN116010378A (zh) | 2023-01-10 | 2023-01-10 | 数据迁移方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116010378A (zh) |
-
2023
- 2023-01-10 CN CN202310031735.XA patent/CN116010378A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6826604B2 (en) | Input/output device information management system for multi-computer system | |
KR101863398B1 (ko) | 다중-서버 예약 시스템 상의 동기화 메커니즘 시스템 및 방법 | |
CN111930489B (zh) | 一种任务调度方法、装置、设备及存储介质 | |
US20050125461A1 (en) | Version control of metadata | |
US8862937B2 (en) | Method and system for migrating data from multiple sources | |
US8868857B2 (en) | Managing remote data replication | |
CN106155775B (zh) | 消息处理方法、设备及系统 | |
CN110941630A (zh) | 一种数据库运维方法、装置及系统 | |
CN104657158A (zh) | 一种业务系统中业务处理的方法和装置 | |
CN110555317B (zh) | 一种应用文件更改处理方法、装置及系统 | |
CN110471906A (zh) | 数据库切换方法、装置及设备 | |
US11151157B2 (en) | Database management method | |
RU2711348C1 (ru) | Способ и система для обработки запросов в распределенной базе данных | |
CN112765126B (zh) | 数据库事务的管理方法、装置、计算机设备和存储介质 | |
CN110874713B (zh) | 业务状态管理方法与装置 | |
CN111522881B (zh) | 业务数据处理方法、装置、服务器及存储介质 | |
CN113377763B (zh) | 数据库表格切换方法、装置、电子设备及计算机存储介质 | |
EP4080827A1 (en) | Cloud system migration method and device, and hybrid cloud system | |
CN116010378A (zh) | 数据迁移方法、装置和计算机可读存储介质 | |
CN110543465A (zh) | 目录操作方法、装置、计算机设备和存储介质 | |
CN110990405B (zh) | 一种数据装载方法、装置、服务器及存储介质 | |
CN112487081A (zh) | 数据同步方法、装置、存储介质及设备 | |
CN116739397B (zh) | 一种新能源指标的动态管理方法 | |
CN113672277B (zh) | 代码同步方法、系统、计算机设备和存储介质 | |
KR102303895B1 (ko) | 이중화 성능이 개선된 데이터베이스 이중화시스템 |
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 |