CN110874354A - 数据库迁移方法及装置、电子设备、存储介质 - Google Patents
数据库迁移方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN110874354A CN110874354A CN201911012959.6A CN201911012959A CN110874354A CN 110874354 A CN110874354 A CN 110874354A CN 201911012959 A CN201911012959 A CN 201911012959A CN 110874354 A CN110874354 A CN 110874354A
- Authority
- CN
- China
- Prior art keywords
- database
- request
- data
- write
- destination
- 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
Images
Classifications
-
- 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书一个或多个实施例提供一种数据库迁移方法及装置、电子设备、存储介质;该方法应用于业务***,可以包括:识别接收到的业务请求的类型,所述业务请求在原数据库的数据被迁移至目的数据库的过程中接收;当所述业务请求为写入请求时,将所述写入请求路由至所述目的数据库,以在所述目的数据库中写入所述写入请求指示的数据;当所述业务请求为读取请求时,确定对应于所述读取请求的目标数据库,并将所述读取请求路由至所述目标数据库,以使所述目标数据库返回所述读取请求指示的数据;所述目标数据库为所述原数据库或者所述目的数据库。
Description
技术领域
本说明书一个或多个实施例涉及数据库技术领域,尤其涉及一种数据库迁移方法及装置、电子设备、存储介质。
背景技术
在相关技术中,由于数据库服务器的性能、存储空间、使用年限等问题,经常需要进行数据库迁移。然而,在进行数据库迁移的过程中,容易对线上业务造成影响,甚至无法向外提供正常的服务。例如,在将原数据库中的数据迁移至新数据库时,需要对原数据库进行停机维护,导致在停机维护的时间段内无法向外提供读取数据、写入数据等服务。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种数据库迁移方法及装置、电子设备、存储介质。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种数据库迁移方法,应用于业务***,所述方法包括:
识别接收到的业务请求的类型,所述业务请求在原数据库的数据被迁移至目的数据库的过程中接收;
当所述业务请求为写入请求时,将所述写入请求路由至所述目的数据库,以在所述目的数据库中写入所述写入请求指示的数据;
当所述业务请求为读取请求时,确定对应于所述读取请求的目标数据库,并将所述读取请求路由至所述目标数据库,以使所述目标数据库返回所述读取请求指示的数据;所述目标数据库为所述原数据库或者所述目的数据库。
可选的,所述业务***针对写入所述原数据库或所述目的数据库的数据,生成有用于表示该数据所属数据库的数据库标识;所述确定对应于所述读取请求的目标数据库,包括:
读取所述读取请求中记录的数据库标识;
根据读取出的数据库标识确定对应于所述读取请求的目标数据库。
可选的,还包括:
在所述原数据库的数据开始被迁移至所述目的数据库之前,当接收到任一读取请求时,将该任一读取请求路由至所述原数据库,以使所述原数据库返回该任一读取请求指示的数据;
以及,当接收到任一写入请求时,将该任一写入请求路由至所述原数据库,以在所述原数据库中写入该任一写入请求指示的数据。
可选的,还包括:
在所述原数据库的数据被全部迁移至所述目的数据库之后,当接收到任一读取请求时,将该任一读取请求路由至所述目的数据库,以使所述目的数据库返回该任一读取请求指示的数据;
以及,当接收到任一写入请求时,将该任一写入请求路由至所述目的数据库,以在所述目的数据库中写入该任一写入请求指示的数据。
可选的,在所述原数据库的数据被全部迁移至所述目的数据库后,所述原数据库中的数据被删除。
根据本说明书一个或多个实施例的第二方面,提出了一种数据库迁移装置,应用于业务***,所述装置包括:
识别单元,识别接收到的业务请求的类型,所述业务请求在原数据库的数据被迁移至目的数据库的过程中接收;
第一路由单元,当所述业务请求为写入请求时,将所述写入请求路由至所述目的数据库,以在所述目的数据库中写入所述写入请求指示的数据;
第二路由单元,当所述业务请求为读取请求时,确定对应于所述读取请求的目标数据库,并将所述读取请求路由至所述目标数据库,以使所述目标数据库返回所述读取请求指示的数据;所述目标数据库为所述原数据库或者所述目的数据库。
可选的,所述业务***针对写入所述原数据库或所述目的数据库的数据,生成有用于表示该数据所属数据库的数据库标识;所述第二路由单元具体用于:
读取所述读取请求中记录的数据库标识;
根据读取出的数据库标识确定对应于所述读取请求的目标数据库。
可选的,还包括:
第三路由单元,在所述原数据库的数据开始被迁移至所述目的数据库之前,当接收到任一读取请求时,将该任一读取请求路由至所述原数据库,以使所述原数据库返回该任一读取请求指示的数据;
以及,当接收到任一写入请求时,将该任一写入请求路由至所述原数据库,以在所述原数据库中写入该任一写入请求指示的数据。
可选的,还包括:
第四路由单元,在所述原数据库的数据被全部迁移至所述目的数据库之后,当接收到任一读取请求时,将该任一读取请求路由至所述目的数据库,以使所述目的数据库返回该任一读取请求指示的数据;
以及,当接收到任一写入请求时,将该任一写入请求路由至所述目的数据库,以在所述目的数据库中写入该任一写入请求指示的数据。
可选的,在所述原数据库的数据被全部迁移至所述目的数据库后,所述原数据库中的数据被删除。
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述任一实施例中所述的数据库迁移方法。
根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述实施例中任一所述数据库迁移方法的步骤。
本申请在将原数据库的数据迁移至目的数据库的过程中,一方面,通过将请求写入的数据导入目的数据库中,使得业务***可正常向外提供写入数据的服务;另一方面,原数据库和目的数据库均正常向外提供读取数据的服务,那么在接收到读取请求时,通过确定出所请求读取数据存储于原数据库还是目的数据库,从而进一步向确定出的数据库请求读取数据即可。可见,本申请可在进行数据库迁移的过程中正常提供读取数据和写入数据的服务,而无需对数据库进行停机维护处理,从而可避免因进行数据库迁移而对线上业务造成影响,有助于提升用户体验。
附图说明
图1是一示例性实施例提供的一种数据库迁移方法的流程图。
图2是一示例性实施例提供的一种业务***的模块示意图。
图3是一示例性实施例提供的一种业务***中数据库状态变迁的流程图。
图4是一示例性实施例提供的业务***在新实例期或迁移期处理业务请求的流程图。
图5是一示例性实施例提供的业务***在新老数据兼容期处理读取请求的流程图。
图6是一示例性实施例提供的一种设备的结构示意图。
图7是一示例性实施例提供的一种数据库迁移装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
请参见图1,图1是一示例性实施例提供的一种数据库迁移方法的流程图。如图1所示,该方法应用于业务***,可以包括以下步骤:
步骤102,识别接收到的业务请求的类型,所述业务请求在原数据库的数据被迁移至目的数据库的过程中接收。
在一实施例中,将原数据库的数据迁移至目的数据库的目的为:通过目的数据库来替换原数据库向外提供读取数据和写入数据的服务。因此,需要将原数据库的数据拷贝至目的数据库。
其中,业务请求的类型包括写入请求和读物请求;写入请求用于向数据库中写入数据,而读取请求用于读取数据库中存储的数据。
步骤104,当所述业务请求为写入请求时,将所述写入请求路由至所述目的数据库,以在所述目的数据库中写入所述写入请求指示的数据。
在一实施例中,在将原数据库的数据迁移至目的数据库的过程中,当接收到来自于上游***的写入请求时,由于迁移的目的在于通过目的数据库来替换原数据库,而写入请求所请求写入的数据相对于原数据库存储的数据为新数据。因此,可将该写入请求路由至目的数据库,以在目的数据库中写入该写入请求指示的数据。
在一实施例中,在将原数据库的数据迁移至目的数据库的过程中,原数据库仍可向外(比如向上游***)提供读取数据的服务。同时,在迁移过程中请求写入的数据存储于目的数据库中。因此,当在迁移过程中接收到来自于上游***的读取请求时,可先判断出对应于该读取请求的目标数据库,即该读取请求所需读取的数据为在迁移过程中新写入目的数据库的数据,还是在迁移之前便已经存储于原数据库的数据;在判断出目标数据库之后,便可进一步将该读取请求路由至目标数据库,以使目标数据库返回该读取请求指示的数据。
在一实施例中,业务***可针对写入原数据库的数据(在迁移数据之前),生成对应于原数据库的数据库标识;类似的,针对写入目的数据库的数据(在迁移的过程中),同样可生成对应于目的数据库的数据库标识。基于上述生成数据库标识的机制,数据库标识可用于在接收到读取请求时,判断所需读取的数据存储于原数据库还是目的数据库。例如,在成功写入数据并生成相应的数据库标识后,可将生成的数据库标识返回至该数据的写入请求方或者向上游***的各个节点广播该数据库标识与该数据的对应关系。那么,后续当该写入请求方或者其他任意节点存在读取该数据的实际需求时,可向业务***发送包含该数据库标识的读取请求以获取该数据。
因此,在将原数据库的数据迁移至目的数据库的过程中,当业务***接收到的业务请求为读取请求时,可先读取该读取请求中记录的数据库标识,再根据读取出的数据库标识确定对应于该读取请求的目标数据库。
步骤106,当所述业务请求为读取请求时,确定对应于所述读取请求的目标数据库,并将所述读取请求路由至所述目标数据库,以使所述目标数据库返回所述读取请求指示的数据;所述目标数据库为所述原数据库或者所述目的数据库。
在一实施例中,在开始将原数据库的数据迁移至目的数据库之前,仍由原数据库来响应接收到的读取请求和写入请求。因此,当接收到任一读取请求时,将该任一读取请求路由至原数据库,以使原数据库返回该任一读取请求指示的数据;以及,当接收到任一写入请求时,将该任一写入请求路由至原数据库,以在原数据库中写入该任一写入请求指示的数据。
在一实施例中,由于迁移过程中新写入的数据存储于目的数据库,而原数据库中存储的全部数据经过迁移后也全部导入了目的数据库中,因此在迁移完成后目的数据库中的数据可以认为是全量数据。
那么,在迁移完成后由目的数据库来响应接收到的读取请求和写入请求。也即,在将原数据库的数据全部迁移至目的数据库之后,当接收到任一读取请求时,将该任一读取请求路由至目的数据库,以使目的数据库返回该任一读取请求指示的数据;以及,当接收到任一写入请求时,将该任一写入请求路由至目的数据库,以在目的数据库中写入该任一写入请求指示的数据。
在一实施例中,在将原数据库的数据全部迁移至目的数据库后,由目的数据库来响应接收到的读取请求和写入请求。因此,可释放原数据库的资源,从而减少对存储空间的占用,提高存储空间的利用率。
在一种情况下,业务***可向原数据库下发释放资源的指令,以使原数据库在接收到该指令后,删除本地存储的数据。在另一种情况下,可在原数据库中配置删除本地数据的触发条件,该触发条件为原数据库的数据被全部迁移至目的数据库中。那么,当原数据库判断出当前满足该触发条件时,自动执行删除本地存储数据的操作。
本申请在将原数据库的数据迁移至目的数据库的过程中,一方面,通过将请求写入的数据导入目的数据库中,使得业务***可正常向外提供写入数据的服务;另一方面,原数据库和目的数据库均正常向外提供读取数据的服务,那么在接收到读取请求时,通过确定出所请求读取数据存储于原数据库还是目的数据库,从而进一步向确定出的数据库请求读取数据即可。可见,本申请可在进行数据库迁移的过程中正常提供读取数据和写入数据的服务,而无需对数据库进行停机维护处理,从而可避免因进行数据库迁移而对线上业务造成影响,有助于提升用户体验。
为了便于理解,下面以流水库(用来存储交易等单号信息的数据库)为例,结合附图对本说明书的数据库迁移方案进行详细说明。
请参见图2,图2是一示例性实施例提供的一种业务***的模块示意图。如图2所示,业务***可以包括流量入口模块、流量类型识别模块、数据库读分流模块、数据库写分流模块、旧数据库实例、新数据库实例。
流量入口模块:用于业务***接收上游***请求的入口引流模块,例如,用于接收上游***下发的读取请求或者写入请求;换言之,业务***的流量均来自于流量入口模块。
流量类型识别模块:用于识别接收到的业务请求的类型;针对读取请求和写入请求存在不同的处理方式,因此需要动态识别业务请求的类型。
数据库读分流模块:对于读取请求,根据数据标识来识别出对应于该读取请求的数据所属的数据库,从而将该读取请求路由至识别出的数据库中。
数据库写分流模块:对于写入请求,根据动态开关识别当前的数据库状态,从而针对写入的数据生成相应的数据标识。其中,动态开关用于控制数据库的迁移过程。
旧数据库实例:需要被替换的数据库,即原数据库。
新数据库实例:用于替换原数据库的目的数据库。
请参见图3,图3是一示例性实施例提供的一种业务***中数据库状态变迁的流程图。如图3所示,业务***中的旧数据库实例和新数据库实例包含以下数据库状态:
稳定期:业务***在稳定期已配置新数据库实例,但仍由旧数据库实例来响应接收到的读取请求和写入请求。
新实例期:业务***接收到的写入请求由新数据库实例来响应,即将写入请求路由至新数据库实例;而对于读取请求,则根据单号来识别出请求读取的数据存储于旧数据库实例还是新数据库实例,并将读取请求路由至识别出的数据库实例中。
迁移期:由业务***的管理人员通过动态开关触发迁移操作,将旧数据库实例中存储的数据迁移至新数据库实例中。对于业务***接收到的写入请求,由新数据库实例来响应;而对于读取请求,则根据单号来识别出请求读取的数据存储于旧数据库实例还是新数据库实例,并将读取请求路由至识别出的数据库实例中来响应。
新老数据兼容期:旧数据库实例中存储的全部数据已被迁移至新数据库实例中,由业务***的管理人员通过动态开关打开兼容状态。由于迁移过程中新写入的数据存储于新数据库实例中,旧数据库实例中存储的数据在新实例期间已经不会动态增加,且旧数据库实例中存储的全部数据经过迁移后也全部导入了新数据库实例中,因此在迁移完成后新数据库实例中的数据可以认为是全量数据。在进入该兼容状态后,接收到的读取请求和写入请求均由新数据库实例来响应。此时,可释放旧数据库实例的资源,从而减少对存储空间的占用,提高存储空间的利用率,并且对正常响应业务请求无影响。
请参见图4,图4是一示例性实施例提供的业务***在新实例期或迁移期处理业务请求的流程图。如图4所示,该处理过程可以包括以下步骤:
步骤402,接收业务请求。
步骤404,识别业务请求的类型。
步骤406,当接收到的业务请求为写入请求时,解析当前动态开关的开关状态。
步骤408,生成单号。
在本实施例中,针对待写入的数据,通过生成单号(作为数据标识)来标记该数据存储于旧数据库实例还是新数据库实例。
举例而言,当接收到的业务请求为写入请求时,此时待写入的数据的单号为外部单号a,业务***先根据动态开关的开关状态来查询当前的数据库状态,在查询得到当前处于新实例期或者迁移期后,再针对待写入的数据重新组装一个***单号。例如,以单号的倒数第三位和倒数第四位作为分库位,来表示所属数据库,“00”表示旧数据库实例,“01”表示新数据库实例。那么,针对在稳定期接收到的写入请求中包含的待写入数据,可组装***单号“2019052700001”;针对在其他状态(比如新实例期、新老数据兼容期等)下接收到的写入请求中包含的待写入数据,可组装***单号“2019052701001”。在组装***单号后,可将组装的***单号返回至写入请求的发送方或者向上游***的各个节点广播该***单号与该待写入数据的对应关系。那么,后续当该发送方或者其他任意节点存在读取该数据的实际需求时,可向业务***发送包含该***单号的读取请求以获取该数据。
步骤410,将写入请求路由至新数据库实例。
在本实施例中,当处于新实例期或者迁移期时,由新数据库实例来响应写入请求。因此,将写入请求路由至新数据库实例。
步骤412,当接收到的业务请求为读取请求时,根据读取请求中包含的单号识别待读取数据所属的数据库。
步骤414,将读取请求路由至目标数据库。
承接于上述举例,当接收到的业务请求为读取请求时,待读取数据的单号为业务***的***单号。那么,业务***可对该单号的倒数第三位和倒数第四位进行截取,以判断待读取数据存储于哪个数据库(即目标数据库)。比如,单号为2019052701001,截取得到分库位“01”,则判断待读取数据存储于新数据库实例,进而将读取请求路由至新数据库实例进行响应;又如,单号为2019052700001,截取得到分库位“00”,则判断待读取数据存储于旧数据库实例,进而将读取请求路由至旧数据库实例进行响应。
步骤416,返回结果。
承接于步骤410,向写入请求的发送方返回写入结果、单号等信息;承接于步骤414,向读取请求的发送方返回读取结果。
请参见图5,图5是一示例性实施例提供的业务***在新老数据兼容期处理读取请求的流程图。如图5所示,该处理过程可以包括以下步骤:
步骤502,接收读取请求。
步骤504,解析读取请求中包含的单号。
步骤506,若解析得到的分库位为“00”,则转入步骤508;否则,转入步骤510。
步骤508,强制路由至新数据库实例。
步骤510,路由至新数据库实例。
在本实施例中,当解析得到的分库位为“00”时,说明待读取数据为在开始迁移之前已写入于旧数据库实例的数据,那么在迁移完成后,改为由新数据库实例来响应读取请求,进而即便分库位与旧数据库实例相对应,也将该读取请求强制路由至新数据库实例(包含全量数据,即迁移之前旧数据库实例的全部数据,以及迁移开始后新写入的数据)。
当解析得到的分库位并非“00”时(即分库位为“01”),说明待读取数据为在开始迁移之后写入于新数据库实例的数据,那么将该读取请求路由至新数据库实例即可。
本申请在将原数据库的数据迁移至目的数据库的过程中,一方面,通过将请求写入的数据导入目的数据库中,使得业务***可正常向外提供写入数据的服务;另一方面,原数据库和目的数据库均正常向外提供读取数据的服务,那么在接收到读取请求时,通过确定出所请求读取数据存储于原数据库还是目的数据库,从而进一步向确定出的数据库请求读取数据即可。可见,本申请可在进行数据库迁移的过程中正常提供读取数据和写入数据的服务,而无需对数据库进行停机维护处理,从而可避免因进行数据库迁移而对线上业务造成影响,有助于提升用户体验。
图6是一示例性实施例提供的一种设备的结构示意图。请参考图6,在硬件层面,该设备包括处理器602、内部总线604、网络接口606、内存608以及非易失性存储器610,当然还可能包括其他业务所需要的硬件。处理器602从非易失性存储器610中读取对应的计算机程序到内存608中然后运行,在逻辑层面上形成数据库迁移装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图7,在软件实施方式中,该数据库迁移装置应用于业务***,可以包括:
识别单元71,识别接收到的业务请求的类型,所述业务请求在原数据库的数据被迁移至目的数据库的过程中接收;
第一路由单元72,当所述业务请求为写入请求时,将所述写入请求路由至所述目的数据库,以在所述目的数据库中写入所述写入请求指示的数据;
第二路由单元73,当所述业务请求为读取请求时,确定对应于所述读取请求的目标数据库,并将所述读取请求路由至所述目标数据库,以使所述目标数据库返回所述读取请求指示的数据;所述目标数据库为所述原数据库或者所述目的数据库。
可选的,所述业务***针对写入所述原数据库或所述目的数据库的数据,生成有用于表示该数据所属数据库的数据库标识;所述第二路由单元73具体用于:
读取所述读取请求中记录的数据库标识;
根据读取出的数据库标识确定对应于所述读取请求的目标数据库。
可选的,还包括:
第三路由单元74,在所述原数据库的数据开始被迁移至所述目的数据库之前,当接收到任一读取请求时,将该任一读取请求路由至所述原数据库,以使所述原数据库返回该任一读取请求指示的数据;
以及,当接收到任一写入请求时,将该任一写入请求路由至所述原数据库,以在所述原数据库中写入该任一写入请求指示的数据。
可选的,还包括:
第四路由单元75,在所述原数据库的数据被全部迁移至所述目的数据库之后,当接收到任一读取请求时,将该任一读取请求路由至所述目的数据库,以使所述目的数据库返回该任一读取请求指示的数据;
以及,当接收到任一写入请求时,将该任一写入请求路由至所述目的数据库,以在所述目的数据库中写入该任一写入请求指示的数据。
可选的,在所述原数据库的数据被全部迁移至所述目的数据库后,所述原数据库中的数据被删除。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (12)
1.一种数据库迁移方法,应用于业务***,所述方法包括:
识别接收到的业务请求的类型,所述业务请求在原数据库的数据被迁移至目的数据库的过程中接收;
当所述业务请求为写入请求时,将所述写入请求路由至所述目的数据库,以在所述目的数据库中写入所述写入请求指示的数据;
当所述业务请求为读取请求时,确定对应于所述读取请求的目标数据库,并将所述读取请求路由至所述目标数据库,以使所述目标数据库返回所述读取请求指示的数据;所述目标数据库为所述原数据库或者所述目的数据库。
2.根据权利要求1所述的方法,所述业务***针对写入所述原数据库或所述目的数据库的数据,生成有用于表示该数据所属数据库的数据库标识;所述确定对应于所述读取请求的目标数据库,包括:
读取所述读取请求中记录的数据库标识;
根据读取出的数据库标识确定对应于所述读取请求的目标数据库。
3.根据权利要求1所述的方法,还包括:
在所述原数据库的数据开始被迁移至所述目的数据库之前,当接收到任一读取请求时,将该任一读取请求路由至所述原数据库,以使所述原数据库返回该任一读取请求指示的数据;
以及,当接收到任一写入请求时,将该任一写入请求路由至所述原数据库,以在所述原数据库中写入该任一写入请求指示的数据。
4.根据权利要求1所述的方法,还包括:
在所述原数据库的数据被全部迁移至所述目的数据库之后,当接收到任一读取请求时,将该任一读取请求路由至所述目的数据库,以使所述目的数据库返回该任一读取请求指示的数据;
以及,当接收到任一写入请求时,将该任一写入请求路由至所述目的数据库,以在所述目的数据库中写入该任一写入请求指示的数据。
5.根据权利要求1所述的方法,在所述原数据库的数据被全部迁移至所述目的数据库后,所述原数据库中的数据被删除。
6.一种数据库迁移装置,应用于业务***,所述装置包括:
识别单元,识别接收到的业务请求的类型,所述业务请求在原数据库的数据被迁移至目的数据库的过程中接收;
第一路由单元,当所述业务请求为写入请求时,将所述写入请求路由至所述目的数据库,以在所述目的数据库中写入所述写入请求指示的数据;
第二路由单元,当所述业务请求为读取请求时,确定对应于所述读取请求的目标数据库,并将所述读取请求路由至所述目标数据库,以使所述目标数据库返回所述读取请求指示的数据;所述目标数据库为所述原数据库或者所述目的数据库。
7.根据权利要求6所述的装置,所述业务***针对写入所述原数据库或所述目的数据库的数据,生成有用于表示该数据所属数据库的数据库标识;所述第二路由单元具体用于:
读取所述读取请求中记录的数据库标识;
根据读取出的数据库标识确定对应于所述读取请求的目标数据库。
8.根据权利要求6所述的装置,还包括:
第三路由单元,在所述原数据库的数据开始被迁移至所述目的数据库之前,当接收到任一读取请求时,将该任一读取请求路由至所述原数据库,以使所述原数据库返回该任一读取请求指示的数据;
以及,当接收到任一写入请求时,将该任一写入请求路由至所述原数据库,以在所述原数据库中写入该任一写入请求指示的数据。
9.根据权利要求6所述的装置,还包括:
第四路由单元,在所述原数据库的数据被全部迁移至所述目的数据库之后,当接收到任一读取请求时,将该任一读取请求路由至所述目的数据库,以使所述目的数据库返回该任一读取请求指示的数据;
以及,当接收到任一写入请求时,将该任一写入请求路由至所述目的数据库,以在所述目的数据库中写入该任一写入请求指示的数据。
10.根据权利要求6所述的装置,在所述原数据库的数据被全部迁移至所述目的数据库后,所述原数据库中的数据被删除。
11.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-5中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911012959.6A CN110874354A (zh) | 2019-10-23 | 2019-10-23 | 数据库迁移方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911012959.6A CN110874354A (zh) | 2019-10-23 | 2019-10-23 | 数据库迁移方法及装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110874354A true CN110874354A (zh) | 2020-03-10 |
Family
ID=69717853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911012959.6A Pending CN110874354A (zh) | 2019-10-23 | 2019-10-23 | 数据库迁移方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110874354A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2610765A1 (en) * | 2011-12-30 | 2013-07-03 | BMC Software, Inc. | Systems and methods for migrating database data |
WO2014106431A1 (en) * | 2013-01-05 | 2014-07-10 | Tencent Technology (Shenzhen) Company Limited | Method and system for data migration |
CN104866234A (zh) * | 2014-02-21 | 2015-08-26 | 腾讯科技(北京)有限公司 | 数据迁移方法、装置及*** |
CN104881443A (zh) * | 2015-05-14 | 2015-09-02 | 新浪网技术(中国)有限公司 | 一种在数据库间迁移数据的方法和*** |
CN106682021A (zh) * | 2015-11-09 | 2017-05-17 | 五八同城信息技术有限公司 | 数据库迁移方法及装置 |
WO2018121120A1 (zh) * | 2016-12-26 | 2018-07-05 | 腾讯科技(深圳)有限公司 | 数据的迁移方法及*** |
CN110196844A (zh) * | 2018-04-16 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种数据迁移方法、***及存储介质 |
-
2019
- 2019-10-23 CN CN201911012959.6A patent/CN110874354A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2610765A1 (en) * | 2011-12-30 | 2013-07-03 | BMC Software, Inc. | Systems and methods for migrating database data |
WO2014106431A1 (en) * | 2013-01-05 | 2014-07-10 | Tencent Technology (Shenzhen) Company Limited | Method and system for data migration |
CN104866234A (zh) * | 2014-02-21 | 2015-08-26 | 腾讯科技(北京)有限公司 | 数据迁移方法、装置及*** |
CN104881443A (zh) * | 2015-05-14 | 2015-09-02 | 新浪网技术(中国)有限公司 | 一种在数据库间迁移数据的方法和*** |
CN106682021A (zh) * | 2015-11-09 | 2017-05-17 | 五八同城信息技术有限公司 | 数据库迁移方法及装置 |
WO2018121120A1 (zh) * | 2016-12-26 | 2018-07-05 | 腾讯科技(深圳)有限公司 | 数据的迁移方法及*** |
CN110196844A (zh) * | 2018-04-16 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种数据迁移方法、***及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200344322A1 (en) | Resource scheduling method, apparatus, device and system | |
US11586673B2 (en) | Data writing and reading method and apparatus, and cloud storage system | |
US10439937B2 (en) | Service addressing in distributed environment | |
CN110020542B (zh) | 数据读写方法及装置、电子设备 | |
US20170153909A1 (en) | Methods and Devices for Acquiring Data Using Virtual Machine and Host Machine | |
CN109951494B (zh) | 仿真数据处理方法、装置、仿真设备及存储介质 | |
CN114265670B (zh) | 一种内存块整理方法、介质及计算设备 | |
CN111897493B (zh) | 存储空间管理方法、装置及电子设备、存储介质 | |
CN113204407A (zh) | 一种内存超配管理方法及装置 | |
CN110764930B (zh) | 基于消息模式的请求或应答处理方法及装置 | |
CN108399175B (zh) | 一种数据存储、查询方法及其装置 | |
CN115756955A (zh) | 一种数据备份、数据恢复的方法、装置及计算机设备 | |
CN106571935B (zh) | 一种资源调度的方法与设备 | |
CN112597151A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN117435569A (zh) | 缓存***动态扩容方法、装置、设备、介质和程序产品 | |
CN107169752B (zh) | 一种资源转移方法及装置 | |
CN111913807A (zh) | 一种基于多个存储区域的事件处理方法、***及装置 | |
CN112596669A (zh) | 一种基于分布式存储的数据处理方法及装置 | |
CN115174158B (zh) | 基于多云管理平台的云产品配置检查方法 | |
KR101810180B1 (ko) | 사용자 장치 기반의 빅데이터 분산 처리 방법 및 장치 | |
CN112948501B (zh) | 数据解析方法、装置及*** | |
CN110874354A (zh) | 数据库迁移方法及装置、电子设备、存储介质 | |
CN111399753B (zh) | 写入图片的方法和装置 | |
CN111143327B (zh) | 一种数据处理方法及装置 | |
CN111435320B (zh) | 一种数据处理方法及其装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200310 |