CN113254421A - 基于数据库双写的跨库账户迁移方法 - Google Patents
基于数据库双写的跨库账户迁移方法 Download PDFInfo
- Publication number
- CN113254421A CN113254421A CN202110600743.2A CN202110600743A CN113254421A CN 113254421 A CN113254421 A CN 113254421A CN 202110600743 A CN202110600743 A CN 202110600743A CN 113254421 A CN113254421 A CN 113254421A
- Authority
- CN
- China
- Prior art keywords
- database
- migration
- data
- old
- time
- 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.)
- Granted
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
-
- 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
-
- 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
Abstract
本发明涉及大数据技术领域,具体为一种基于数据库双写的跨库账户迁移方法,包括:旧数据库为主数据库,首次迁移,获取旧数据库中现有数据迁移至新数据库,从第二次迁移开始,获取上一次迁移所用时间内旧数据库中的操作数据迁移至新数据库,若一次迁移所用时间小于旧数据库两次操作数据的时间间隔,则停止迁移,并将新数据库作为主数据库。本方案能在不停机不中断业务的情况下,保持数据一致性,完成跨库数据迁移。
Description
技术领域
本发明涉及大数据技术领域,具体为一种基于数据库双写的跨库账户迁移方法。
背景技术
在信息化建设过程中,信息安全问题日益严重,为了保证信息安全,以及消除“IOE” 对数据库的垄断,以降低成本,现在有众多企业参加“去IOE”运动,企业将原本Oracle 中数据迁移到新的Mysql中。
在迁移过程中,有些企业要求必须要保证新数据库中账户数据和旧数据库中账户数据一 致,但是如果在不停机的迁移过程中,若存在业务,则会涉及到旧数据库在迁移过程中有新 数据的写入,从而影响新数据库中账户数据和旧数据库中账户数据需要保持一致的要求。因 此传统的迁移方案,在涉及跨越不同的数据库进行迁移的时候,均采用停机的方式进行账户 数据迁移。但是很多企业的数据库迁移,涉及到上亿数据量,如果停机进行迁移,停机时间 会很长,从而导致长时间的业务中断,降低了用户的使用体验,造成损失。
发明内容
本发明意在提供一种在不停机不中断业务的情况下,也能保持数据一致性的基于数据库 双写的跨库账户迁移方法,以解决现有跨越不同类型数据库进行迁移存在的需要停机,中断 业务,才能保持数据一致性的问题。
本发明提供如下基础方案:基于数据库双写的跨库账户迁移方法,包括如下内容:
旧数据库为主数据库,首次迁移,获取旧数据库中现有数据迁移至新数据库,从第二次 迁移开始,获取上一次迁移所用时间内旧数据库中的操作数据迁移至新数据库,若一次迁移 所用时间小于旧数据库两次操作数据的时间间隔,则停止迁移,并将新数据库作为主数据库。
说明:主数据库为系统进行业务时调用的数据库。
基础方案的有益效果:首次迁移,获取旧数据库中现有数据迁移至新数据库,从第二次 迁移开始,获取上一次迁移所用时间内旧数据库中的操作数据迁移至新数据库,若一次迁移 所用时间小于旧数据库两次操作数据的时间间隔,则停止迁移,此时在被迁移的旧数据库中 已经提取不到任何需要迁移的数据,而在迁移过程中,被迁移的旧数据库和数据迁入的新数 据库所组成的系统的双写一直在进行,当迁移完成时,新数据库和旧数据库中的数据已经一 致。整个数据迁移的过程,不需要停机,也不需要中断业务,即使在迁移过程中,旧数据库 作为主数据库时,有数据的操作,也会随着迁移过程的进行,逐渐被迁移到新数据库中,直 至旧数据库中无数据可迁移,因此在跨越不同类型数据库进行迁移时,也保证了数据的一致 性。
相对于传统的迁移方案需要停机,中断业务,需要考虑在业务最少的时候停机,以使损 失最小化,由于本方案不需要停机,中断业务,因此本方案可以在任意时间操作,不造成任 何损失,也不会降低用户的使用体验。
进一步,所述操作为新增和更新。
有益效果:操作为新增和更新,将上一次迁移时间段内旧数据库中新增和更新的数据作 为本次迁移的数据,以此逐步实现整个旧数据库中数据的迁移,并且不遗漏任何数据。
进一步,所述获取上一次迁移所用时间内旧数据库中的操作数据,包括:获取数据库时 间中每次迁移的开始时间点和结束时间点,并获取旧数据库中该次迁移的开始时间点和结束 时间点之间操作数据为下一次迁移的迁移数据。
有益效果:获取数据库时间中每次迁移的开始时间点和结束时间点,并获取旧数据库中 该次迁移的开始时间点和结束时间点之间操作的数据为下一次迁移的迁移数据,以数据库时 间中的时间点为边界,保证获取迁移数据的完整性。
进一步,所述获取数据库时间中每次迁移的开始时间点和结束时间点,并获取旧数据库 中该次迁移的开始时间点和结束时间点之间操作数据为下一次迁移的迁移数据,均采用SQL, 且若新数据库和旧数据库为同一系统的数据库,但该系统不支持双写,则对所述系统进行改 造,使其支持双写,即向新数据库和旧数据库同时执行SQL。
有益效果:采用SQL可直接获取数据库时间中该次迁移的开始时间点和结束时间点和该 次迁移的开始时间点和结束时间点之间操作的数据作为下一次迁移的迁移数数据,便于下次 迁移使用。
进一步,若旧数据库为Oracle,新数据库为Mysql,则迁移到Mysql的数据采用覆盖(replace into)。
有益效果:Mysql的数据采用replace into的方式,如果存在相同的记录,则先删除掉, 再插入新记录,以保证以迁移数据为主,不出现脏数据。
进一步,所述若一次迁移所用时间小于旧数据库两次操作数据的时间间隔,则停止迁移, 具体包括以下内容:
首次迁移所用时间为:
其中,R为首次迁移数据量,即首次迁移前旧数据库中现有数据量;Vq为数据迁入的新 数据库中数据写入速度,单位为每秒写入数据库的数据的条数(records/s);
从第二次迁移开始,后续的每次迁移所用时间为:
其中,n为迁移的次数;Vi为被迁移的旧数据库中数据写入速度,且Vq>Vi;Tn-1Vi为第 n次迁移的迁移数据量;
若
则停止迁移。
有益效果:由于Vq是大于Vi的,因此Tn肯定是收敛的,理论上只需要Tn小于被迁移的旧 数据库两次操作数据的时间间隔,即迁移就停止。旧数据库中数据写入速度为Vi条 每秒,两条数据写入之间的时间间隔为如果某次迁移所用时间小于那么后一条新数 据还没有写入到旧数据库中时,迁移就已经完成了,由于新数据库和旧数据库进行双写,该 后一条新数据会同时写入到新、旧数据库中,从而新、旧数据库中数据一致,不再继续进行 迁移。既能完成数据迁移,又能保证新数据库和旧数据库之间数据的一致性。
进一步,采用滚动升级将数据迁入的新数据库作为主数据库。
有益效果:采用滚动升级将数据迁入的新数据库作为主数据库,能使用户无感知,平滑 进行过渡。
附图说明
图1为本发明基于数据库双写的跨库账户迁移方法实施例的示意图;
图2为本发明基于数据库双写的跨库账户迁移方法实施例的时间轴示意图。
具体实施方式
下面通过具体实施方式进一步详细说明:
实施例基本如附图1所示:基于数据库双写的跨库账户迁移方法,用于不同数据库之间 进行数据迁移,被迁移数据的数据库为旧数据库,将数据迁入的数据库为新数据库。
新数据库和旧数据库为同一系统的数据库,且该系统支持双写,即新数据库和旧数据库 能同时写入数据,向新数据库和旧数据库同时执行SQL,本实施例中系统为账户系统,由于 账户数据中包含余额数据,在不停机的情况下余额数据可能在不断变化,因此在不停机更新 的情况下必须要保证新库中账户余额数据和老库一致,并且对账户系统进行改造,使其支持 双写,采用滚动发布升级支持双写的账户系统,以保证业务不中断,能使用户无感知,平滑 进行过渡。
旧数据库为主数据库,主数据库为账户系统进行业务时调用的数据库首次迁移,获取旧 数据库中现有数据迁移至新数据库,从第二次迁移开始,获取上一次迁移所用时间内旧数据 库中的操作数据迁移至新数据库,操作为新增和更新,若一次迁移所用时间小于旧数据库两 次操作数据的时间间隔,则停止迁移,具体为:
如图2所示,首次迁移所用时间为:
其中,R为首次迁移数据量,即首次迁移前旧数据库中现有数据量;Vq为数据迁入的新 数据库中数据写入速度,单位为每秒写入数据库的数据的条数(records/s);
图2中,t0,t1为数据库时间,执行SQL获取数据库时间中该次迁移的开始时间点t0和 结束时间点t1,即可获得T0,账户系统在T0时间内操作数据条数为T1Vi,是第二次旧数据库 中操作的数据量,其中Vi为被迁移的旧数据库中数据写入速度,且Vq>Vi;因此通过SQL将t0到t1这段时间操作的数据查询出来作为第二次迁移的迁移数据,后续每次迁移均如此获取 迁移数据。本账户系统中旧数据库为Oracle,新数据库为Mysql,迁移到Mysql的数据采用 replace into,以保证以迁移数据为主,不出现脏数据。
在T1时间内,因为第二次旧数据库中操作的数据量为T1Vi,则第二次迁移所用时间为:
在T2时间内,因为第三次旧数据库中操作的数据量为T2Vi,则第三次迁移所用时间为:
依次类推,第n次旧数据库中操作的数据量为Tn-1Vi,第n次迁移所用时间:
综上所述,从第二次迁移开始,后续的每次迁移所用时间为:
其中,n为迁移的次数,且n>2;由于Vq是大于Vi的,因此Tn肯定是收敛的,理论上只需要Tn小于被迁移的旧数据库两次写入数据的时间间隔,迁移就可停止,即:
若
则停止迁移。旧数据库中数据写入速度为Vi条每秒,那么两条数据写入之间的时间间隔 为如果某次迁移所用时间小于那么后一条新数据还没有写入到旧数据库中时,迁移 就已经完成了,由于新数据库和旧数据库进行双写,那么该后一条新数据会同时写入到新、 旧数据库中,从而新、旧数据库中数据一致,在旧数据库中已经取不到需要迁移的数据,不 再继续进行迁移。
在迁移过程中,账务系统双写一直在进行,当数据迁移完成时,新数据库和旧数据库中 的数据已经保证两表数据一致。此时采用滚动升级将数据迁入的新数据库作为主数据库。
整个数据迁移的过程,不需要停机,也不需要中断业务,即使在迁移过程中,旧数据库 作为主数据库时,有数据的操作,也会随着迁移过程的进行,逐渐被迁移到新数据库中,直 至旧数据库中无数据可迁移,因此在跨越不同类型数据库进行迁移时,也保证了数据的一致 性。相对于传统的迁移方案需要停机,中断业务,需要考虑在业务最少的时候停机,以使损 失最小化,由于本方案不需要停机,中断业务,因此本方案可以在任意时间操作,不造成任 何损失,也不会降低用户的使用体验。但是实际操作最优选择在账户系统业务低峰期,间隔 时间较长,收敛速度越快,完成迁移所用时间更短。
以上所述的仅是本发明的实施例,方案中公知的具体结构及特性等常识在此未作过多描 述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术 知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力, 所属领域普通技术人员可以在本申请给出的启示下,结合自身能力完善并实施本方案,一些 典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本申请的障碍。应当指 出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改 进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。 本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以 用于解释权利要求的内容。
Claims (7)
1.基于数据库双写的跨库账户迁移方法,其特征在于:包括如下内容:
旧数据库为主数据库,首次迁移,获取旧数据库中现有数据迁移至新数据库,从第二次迁移开始,获取上一次迁移所用时间内旧数据库中的操作数据迁移至新数据库,若一次迁移所用时间小于旧数据库两次操作数据的时间间隔,则停止迁移,并将新数据库作为主数据库。
2.根据权利要求1所述的基于数据库双写的跨库账户迁移方法,其特征在于:操作为新增和更新。
3.根据权利要求1所述的基于数据库双写的跨库账户迁移方法,其特征在于:所述获取上一次迁移所用时间内旧数据库中的操作数据,包括:获取数据库时间中每次迁移的开始时间点和结束时间点,并获取旧数据库中该次迁移的开始时间点和结束时间点之间操作数据为下一次迁移的迁移数据。
4.根据权利要求3所述的基于数据库双写的跨库账户迁移方法,其特征在于:所述获取数据库时间中每次迁移的开始时间点和结束时间点,并获取旧数据库中该次迁移的开始时间点和结束时间点之间操作数据为下一次迁移的迁移数据,均采用SQL,且若新数据库和旧数据库为同一系统的数据库,但系统不支持双写,则对系统进行改造,使其支持双写,即向新数据库和旧数据库同时执行SQL。
5.根据权利要求1所述的基于数据库双写的跨库账户迁移方法,其特征在于:若旧数据库为Oracle,新数据库为Mysql,则迁移到Mysql的数据采用replace into。
7.根据权利要求1所述的基于数据库双写的跨库账户迁移方法,其特征在于:采用滚动升级将数据迁入的新数据库作为主数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110600743.2A CN113254421B (zh) | 2021-05-31 | 2021-05-31 | 基于数据库双写的跨库账户迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110600743.2A CN113254421B (zh) | 2021-05-31 | 2021-05-31 | 基于数据库双写的跨库账户迁移方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254421A true CN113254421A (zh) | 2021-08-13 |
CN113254421B CN113254421B (zh) | 2023-07-14 |
Family
ID=77185462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110600743.2A Active CN113254421B (zh) | 2021-05-31 | 2021-05-31 | 基于数据库双写的跨库账户迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254421B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014219868A (ja) * | 2013-05-09 | 2014-11-20 | 西日本電信電話株式会社 | データベースの移行方法 |
CN105718570A (zh) * | 2016-01-20 | 2016-06-29 | 北京京东尚科信息技术有限公司 | 用于数据库的数据迁移方法和装置 |
CN107291527A (zh) * | 2017-05-23 | 2017-10-24 | 华为技术有限公司 | 预拷贝迁移停止预判方法及装置 |
CN109634635A (zh) * | 2018-12-13 | 2019-04-16 | 中国银行股份有限公司 | 一种数据迁移方法及装置 |
CN110334082A (zh) * | 2019-07-11 | 2019-10-15 | 珠海格力电器股份有限公司 | 一种数据库的无损迁移方法及装置 |
CN110532241A (zh) * | 2019-07-18 | 2019-12-03 | 政采云有限公司 | 利用MySQL Binlog进行不停机数据迁移方法 |
CN111104396A (zh) * | 2019-12-31 | 2020-05-05 | 紫光云(南京)数字技术有限公司 | 一种跨数据库的数据迁移方法、数据访问方法 |
CN111221800A (zh) * | 2019-12-19 | 2020-06-02 | 中国平安人寿保险股份有限公司 | 数据库迁移方法、装置、电子设备及存储介质 |
CN111522870A (zh) * | 2020-04-09 | 2020-08-11 | 咪咕文化科技有限公司 | 数据库访问方法、中间件和可读存储介质 |
CN111881116A (zh) * | 2020-08-05 | 2020-11-03 | 中国工商银行股份有限公司 | 数据迁移方法、数据迁移系统、计算机系统和存储介质 |
CN112131208A (zh) * | 2020-10-09 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 全量数据迁移方法、装置、设备及计算机可读存储介质 |
CN112256675A (zh) * | 2020-11-05 | 2021-01-22 | 深圳壹账通智能科技有限公司 | 数据迁移方法、装置、终端设备及存储介质 |
US20210034271A1 (en) * | 2019-07-30 | 2021-02-04 | International Business Machines Corporation | Data migration in a multi-tiered storage system |
-
2021
- 2021-05-31 CN CN202110600743.2A patent/CN113254421B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014219868A (ja) * | 2013-05-09 | 2014-11-20 | 西日本電信電話株式会社 | データベースの移行方法 |
CN105718570A (zh) * | 2016-01-20 | 2016-06-29 | 北京京东尚科信息技术有限公司 | 用于数据库的数据迁移方法和装置 |
CN107291527A (zh) * | 2017-05-23 | 2017-10-24 | 华为技术有限公司 | 预拷贝迁移停止预判方法及装置 |
CN109634635A (zh) * | 2018-12-13 | 2019-04-16 | 中国银行股份有限公司 | 一种数据迁移方法及装置 |
CN110334082A (zh) * | 2019-07-11 | 2019-10-15 | 珠海格力电器股份有限公司 | 一种数据库的无损迁移方法及装置 |
CN110532241A (zh) * | 2019-07-18 | 2019-12-03 | 政采云有限公司 | 利用MySQL Binlog进行不停机数据迁移方法 |
US20210034271A1 (en) * | 2019-07-30 | 2021-02-04 | International Business Machines Corporation | Data migration in a multi-tiered storage system |
CN111221800A (zh) * | 2019-12-19 | 2020-06-02 | 中国平安人寿保险股份有限公司 | 数据库迁移方法、装置、电子设备及存储介质 |
CN111104396A (zh) * | 2019-12-31 | 2020-05-05 | 紫光云(南京)数字技术有限公司 | 一种跨数据库的数据迁移方法、数据访问方法 |
CN111522870A (zh) * | 2020-04-09 | 2020-08-11 | 咪咕文化科技有限公司 | 数据库访问方法、中间件和可读存储介质 |
CN111881116A (zh) * | 2020-08-05 | 2020-11-03 | 中国工商银行股份有限公司 | 数据迁移方法、数据迁移系统、计算机系统和存储介质 |
CN112131208A (zh) * | 2020-10-09 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 全量数据迁移方法、装置、设备及计算机可读存储介质 |
CN112256675A (zh) * | 2020-11-05 | 2021-01-22 | 深圳壹账通智能科技有限公司 | 数据迁移方法、装置、终端设备及存储介质 |
Non-Patent Citations (8)
Title |
---|
冯海燕等: "不完全停机下的系统数据迁移方案与实现", 《广东科技》 * |
冯海燕等: "不完全停机下的系统数据迁移方案与实现", 《广东科技》, no. 18, 25 September 2009 (2009-09-25), pages 93 - 94 * |
卢志澎: "大型结构化数据库实时增量备份工具平台研发", 中国优秀硕士学位论文全文数据库信息科技辑, no. 05, pages 138 - 736 * |
张宏伟 等: "基于内存关联分析的预拷贝迁移优化策略", 计算机工程, vol. 46, no. 03, pages 222 - 228 * |
徐梓荐 等: "分布式异构数据库数据同步工具", 软件学报, vol. 30, no. 03, pages 684 - 699 * |
李治民;: "备份系统有效备份速度研究与分析", 计算机工程与设计, no. 17, pages 3773 - 3777 * |
范金锋;叶敏;: "一种支持异构数据库的同步与交换方法", 电力信息化, no. 09, pages 23 - 28 * |
青欣;胥光辉;戢瑶;郭霄;: "云数据库应用研究", 计算机技术与发展, no. 05, pages 43 - 47 * |
Also Published As
Publication number | Publication date |
---|---|
CN113254421B (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7329518B2 (ja) | 追加専用記憶デバイスを使用するデータベース管理のためのシステム及び方法 | |
US9953051B2 (en) | Multi-version concurrency control method in database and database system | |
US8209498B2 (en) | Method and system for transferring duplicate files in hierarchical storage management system | |
CN106462592B (zh) | 优化对索引的多版本支持的系统和方法 | |
US9058351B2 (en) | Apparatus and method for read optimized bulk data storage | |
US7587429B2 (en) | Method for checkpointing a main-memory database | |
CN103412803B (zh) | 数据恢复的方法及装置 | |
US10089320B2 (en) | Method and apparatus for maintaining data consistency in an in-place-update file system with data deduplication | |
US9916211B2 (en) | Relational database recovery | |
US10275481B2 (en) | Updating of in-memory synopsis metadata for inserts in database table | |
EP3575968A1 (en) | Method and device for synchronizing active transaction lists | |
JP7395227B2 (ja) | データバックアップ方法、装置、サーバ及びコンピュータプログラム | |
US20190384743A1 (en) | Method, device and computer readable storage medium for deleting snapshot data | |
CN110489092B (zh) | 一种数据库读写分离架构下读取数据延迟问题的解决方法 | |
US11176004B2 (en) | Test continuous log replay | |
CN103150267B (zh) | 一种多控制器间的缓存同步方法 | |
US8682872B2 (en) | Index page split avoidance with mass insert processing | |
CN104899117A (zh) | 面向非易失性内存的内存数据库并行日志方法 | |
US20140258671A1 (en) | Heuristic Journal Reservations | |
CN115185955A (zh) | 一种数据湖数据处理方法和系统 | |
CN113254421A (zh) | 基于数据库双写的跨库账户迁移方法 | |
WO2011098118A1 (en) | Data storage method | |
TWI475409B (zh) | Data synchronization method and device | |
US20240104078A1 (en) | Blockchain-based high-speed data processing device and method thereof | |
US11232090B2 (en) | Compressed row state information |
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 |