CN105373621A - 一种快速的跨数据库***的数据增量迁移方法 - Google Patents
一种快速的跨数据库***的数据增量迁移方法 Download PDFInfo
- Publication number
- CN105373621A CN105373621A CN201510886833.7A CN201510886833A CN105373621A CN 105373621 A CN105373621 A CN 105373621A CN 201510886833 A CN201510886833 A CN 201510886833A CN 105373621 A CN105373621 A CN 105373621A
- Authority
- CN
- China
- Prior art keywords
- data
- database system
- target
- source
- database
- 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
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
本发明公开了一种快速的跨数据库***的数据增量迁移方法,获取源数据库***中的源数据表并将源数据表中的数据分批量读取到内存,获取目标数据库***的目标数据表并根据目标数据表的字段信息,构造增量***的sql语句,并在目标数据库***中执行该语句,直至数据迁移完毕,所述源数据库***和目标数据库***选自Oracle、MySQL、SQLite或SQL?Server四种数据库***。通过本发明的方法能够实现跨数据库的、大数据的快速增量迁移。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种快速的跨数据库***的数据增量迁移方法。
背景技术
数据库是按照数据结构来组织、储存和管理数据的仓库,随着信息技术和市场的发展,数据管理不再仅仅是储存和管理数据,而是转变成用户所需要的各种数据管理的方式。随着时代的发展,企业的数据量正在以前所未有的速度增长,对数据的依赖强度越来越高,正是由于数据对企业愈发重要,数据库管理技术也不断发展,出现了不同的数据库管理***和操作***平台,但是企业由于在成本考虑、老旧设备更新升级、对长时间超负荷的设备进行维护操作或机房变更等,数据库工程师经常需要在两个不同的数据库之间或在两种不同的操作***平台之间进行数据迁移。即将数据从一台机器迁移到另一台机器,或者将数据从一个数据库迁移到另一数据库,并且这些数据在转移后能正常运行。
在现有技术中,不同数据库之间的数据迁移方法主要是:利用NavicatPermium的“数据传输”功能,实现两个不同数据库***之间的数据迁移,但是,上述迁移方式的迁移过程花费时间较长,经常超出预期的情况。
发明内容
有鉴于此,本发明的目的在于克服现有技术的不足,提供一种快速且安全的跨数据库***的数据增量迁移方法。
为了解决上述技术问题,本发明采用如下方案实现:
一种快速的跨数据库***的数据增量迁移方法,获取源数据库***中的源数据表并将源数据表中的数据分批量读取到内存,获取目标数据库***的目标数据表并根据目标数据表的字段信息,构造增量***的sql语句,并在目标数据库***中执行该语句,直至数据迁移完毕,所述源数据库***和目标数据库***选自Oracle、MySQL、SQLite或SQLServer四种数据库***。
在获取源数据表和目标数据表前,先连接至对应的源数据库***和目标数据库***。
根据源数据库***类型和目标数据库***类型,构造出对应的常规数据库连接字符串,通过连接字符串连接至源数据库***和目标数据库***。
连接至源数据库***后,搜索能够访问的源数据表,并根据用户选择的源数据表的表名,获取源数据表中的所有数据,并将其按大小分批量读取到内存中。
连接至目标数据库***后,搜索能够访问的目标数据表,并根据选择的目标数据表,获取该目标数据表的所有字段信息,构造增量***sql语句,具体为:基于用户选择的需要进行同步的目标数据表,根据其表名获取目标数据表中的所有字段,同时根据选择的源数据表和目标数据表的字段映射关系,动态生成迁移数据的sql语句,并将这些sql语句封装在一个事务中,将sql语句封装在一个事务中可以在迁移过程中出现迁移失败的话,便能执行回滚操作。
若目标数据库***中不存在目标数据表,则根据源数据库***中的源数据表信息,在目标数据库***中建立一个与源数据库***中源数据表结构、字段和字段类型相兼容的目标数据表。
与现有技术相比,本发明具有如下有益效果:
1、本发明的方法对数据迁移可以实现跨数据库、跨版本、零停机的迁移,通过使用数据对比工具保证了迁移过程中数据的完整性,有效地提高了数据迁移所花费的时间;
2、相比目前的一般迁移方法,实现了跨数据库在数秒内完成十万级别的数据迁移,避免大数据迁移过程中迁移数据时间过长问题;实现跨数据库***、跨版本的大数据迁移,避免了跨数据库***迁移过程中数据转换问题;该方法同样适用于小数据量数据库的在线迁移。
附图说明
图1为实施例1流程图。
具体实施方式
为了让本领域的技术人员更好地理解本发明的技术方案,下面对本发明作进一步阐述。
实施例1
如图1所示,一种快速的跨数据库***的数据增量迁移方法,包括如下步骤
S1:根据各个数据库官方网站提供的开发库,利用C#语言开发出程序***来对数据库***进行访问和获取数据。根据用户选择的源数据库***类型,构造出对应的常规数据库连接字符串,并且连接至该源数据库***,连接后,搜索能够访问的源数据表,并显示出来;
S2:基于用户选择的源数据表,根据源数据表名,获取源数据表中的所有数据,并将其按大小分批量读取到内存中,并以DataGridView的形式呈现出来,以供用户检查;
S3:根据用户选择的目标数据库***类型,构造出对应的常规数据库连接字符串,并且连接至该目标数据库***,连接后,搜索能够访问的目标数据表,并显示出来;
S4:基于用户选择的目标数据表,根据目标数据表名,获取该目标数据表中的所有字段,并生成目的字段名-下拉选择列表控件,根据用户选择的源数据表和目标数据表的字段映射关系,动态生成迁移数据的增量***sql语句,并在目标数据库***中执行,从而完成数据迁移工作。
Claims (6)
1.一种快速的跨数据库***的数据增量迁移方法,其特征在于,获取源数据库***中的源数据表并将源数据表中的数据分批量读取到内存,获取目标数据库***的目标数据表并根据目标数据表的字段信息,构造增量***的sql语句,并在目标数据库***中执行该语句,直至数据迁移完毕,所述源数据库***和目标数据库***选自Oracle、MySQL、SQLite或SQLServer四种数据库***。
2.根据权利要求1所述的快速的跨数据库***的数据增量迁移方法,其特征在于,根据目标数据库***的目标数据表字段信息,构造增量***的sql语句具体为:基于用户选择的需要进行同步的目标数据表,通过其表名获取目标数据表中的所有字段,同时根据选择的源数据表和目标数据表的字段映射关系,动态生成迁移数据的sql语句。
3.根据权利要求1所述的快速的跨数据库***的数据增量迁移方法,其特征在于,若目标数据库***中不存在目标数据表,则根据源数据库***中的源数据表信息,在目标数据库***中建立一个与源数据库***中源数据表结构、字段和字段类型相兼容的目标数据表。
4.根据权利要求1所述的快速的跨数据库***的数据增量迁移方法,其特征在于,所述sql语句封装在一个事务中。
5.根据权利要求1所述的快速的跨数据库***的数据增量迁移方法,其特征在于,在获取源数据表和目标数据表前,先连接至对应的源数据库***和目标数据库***。
6.根据权利要求5所述的快速的跨数据库***的数据增量迁移方法,其特征在于,根据源数据库***类型和目标数据库***类型,构造出对应的常规数据库连接字符串,通过连接字符串连接至源数据库***和目标数据库***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510886833.7A CN105373621A (zh) | 2015-12-07 | 2015-12-07 | 一种快速的跨数据库***的数据增量迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510886833.7A CN105373621A (zh) | 2015-12-07 | 2015-12-07 | 一种快速的跨数据库***的数据增量迁移方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105373621A true CN105373621A (zh) | 2016-03-02 |
Family
ID=55375819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510886833.7A Pending CN105373621A (zh) | 2015-12-07 | 2015-12-07 | 一种快速的跨数据库***的数据增量迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105373621A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108446315A (zh) * | 2018-02-07 | 2018-08-24 | 中国平安人寿保险股份有限公司 | 大数据迁移方法、装置、设备及存储介质 |
CN111581179A (zh) * | 2019-02-19 | 2020-08-25 | 上海云桓信息科技有限公司 | 一种Oracle到MySQL的数据迁移方法及工具 |
CN112395267A (zh) * | 2020-10-23 | 2021-02-23 | 四川新网银行股份有限公司 | 一种不停服务用户数据迁移切换方法 |
CN112527815A (zh) * | 2020-12-02 | 2021-03-19 | 平安医疗健康管理股份有限公司 | 数据库的脚本迁移方法、装置、计算机设备和存储介质 |
CN113360482A (zh) * | 2021-08-10 | 2021-09-07 | 深圳市中科鼎创科技股份有限公司 | 基于sql数据库的在线迁移方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090287726A1 (en) * | 2006-04-07 | 2009-11-19 | Mag Productions Holding B.V. | Method and system for synchronization of databases |
CN101706803A (zh) * | 2009-11-27 | 2010-05-12 | 天津工业大学 | 一种织造车间生产数据的迁移方法 |
CN102346775A (zh) * | 2011-09-26 | 2012-02-08 | 苏州博远容天信息科技有限公司 | 一种基于日志的异构多源数据库同步方法 |
CN103067483A (zh) * | 2012-12-25 | 2013-04-24 | 广东邮电职业技术学院 | 基于数据包的远程数据增量同步方法和装置 |
CN103823797A (zh) * | 2012-11-16 | 2014-05-28 | 镇江诺尼基智能技术有限公司 | 基于ftp协议的行业数据库数据实时同步*** |
-
2015
- 2015-12-07 CN CN201510886833.7A patent/CN105373621A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090287726A1 (en) * | 2006-04-07 | 2009-11-19 | Mag Productions Holding B.V. | Method and system for synchronization of databases |
CN101706803A (zh) * | 2009-11-27 | 2010-05-12 | 天津工业大学 | 一种织造车间生产数据的迁移方法 |
CN102346775A (zh) * | 2011-09-26 | 2012-02-08 | 苏州博远容天信息科技有限公司 | 一种基于日志的异构多源数据库同步方法 |
CN103823797A (zh) * | 2012-11-16 | 2014-05-28 | 镇江诺尼基智能技术有限公司 | 基于ftp协议的行业数据库数据实时同步*** |
CN103067483A (zh) * | 2012-12-25 | 2013-04-24 | 广东邮电职业技术学院 | 基于数据包的远程数据增量同步方法和装置 |
Non-Patent Citations (1)
Title |
---|
赵金玲: ""分布式异构数据库同步更新的研究与应用"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108446315A (zh) * | 2018-02-07 | 2018-08-24 | 中国平安人寿保险股份有限公司 | 大数据迁移方法、装置、设备及存储介质 |
CN111581179A (zh) * | 2019-02-19 | 2020-08-25 | 上海云桓信息科技有限公司 | 一种Oracle到MySQL的数据迁移方法及工具 |
CN112395267A (zh) * | 2020-10-23 | 2021-02-23 | 四川新网银行股份有限公司 | 一种不停服务用户数据迁移切换方法 |
CN112395267B (zh) * | 2020-10-23 | 2023-06-13 | 四川新网银行股份有限公司 | 一种不停服务用户数据迁移切换方法 |
CN112527815A (zh) * | 2020-12-02 | 2021-03-19 | 平安医疗健康管理股份有限公司 | 数据库的脚本迁移方法、装置、计算机设备和存储介质 |
CN113360482A (zh) * | 2021-08-10 | 2021-09-07 | 深圳市中科鼎创科技股份有限公司 | 基于sql数据库的在线迁移方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Holzschuher et al. | Performance of graph query languages: comparison of cypher, gremlin and native access in neo4j | |
CN105373621A (zh) | 一种快速的跨数据库***的数据增量迁移方法 | |
Huang et al. | Research on architecture and query performance based on distributed graph database Neo4j | |
Gupta et al. | Mesa: Geo-replicated, near real-time, scalable data warehousing | |
CN104899295B (zh) | 一种异构数据源数据关联分析方法 | |
US20120310934A1 (en) | Historic View on Column Tables Using a History Table | |
WO2016167999A1 (en) | Geo-scale analytics with bandwidth and regulatory constraints | |
Holzschuher et al. | Querying a graph database–language selection and performance considerations | |
CN103699638A (zh) | 一种基于配置参数实现跨数据库类型同步数据的方法 | |
CN104123374A (zh) | 分布式数据库中聚合查询的方法及装置 | |
CN102841889A (zh) | 一种基于orm架构的高效数据库访问的实现方法及装置 | |
CN104102710A (zh) | 一种海量数据查询方法 | |
CN103617176A (zh) | 一种实现多源异构数据资源自动同步的方法 | |
CN105488043A (zh) | 基于Key-Value数据块的数据查询方法及*** | |
CN103631596A (zh) | 业务对象数据录入及更新规则的配置装置和配置方法 | |
CN106294776A (zh) | 一种数据处理方法及装置 | |
CN105404634A (zh) | 基于Key-Value数据块的数据管理方法及*** | |
US20100235344A1 (en) | Mechanism for utilizing partitioning pruning techniques for xml indexes | |
CN104239377A (zh) | 跨平台的数据检索方法及装置 | |
CN102231168A (zh) | 一种从简历库中快速检索简历的方法 | |
CN104933173A (zh) | 一种用于异构多数据源的数据处理方法、装置和服务器 | |
CN103838824A (zh) | 一种用于空间信息分析的云计算中间件技术 | |
CN103268343A (zh) | 将关系数据库和缓存透明结合的***和方法 | |
Yassien et al. | RDBMS, NoSQL, Hadoop: a performance-based empirical analysis | |
CN106802928B (zh) | 电网历史数据管理方法及其*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160302 |
|
RJ01 | Rejection of invention patent application after publication |