CN103530290A - 数据库间的数据迁移方法和系统 - Google Patents
数据库间的数据迁移方法和系统 Download PDFInfo
- Publication number
- CN103530290A CN103530290A CN201210226102.6A CN201210226102A CN103530290A CN 103530290 A CN103530290 A CN 103530290A CN 201210226102 A CN201210226102 A CN 201210226102A CN 103530290 A CN103530290 A CN 103530290A
- Authority
- CN
- China
- Prior art keywords
- database
- renewal
- synchronized
- data
- source
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Abstract
一种数据库间的数据迁移方法,包括以下步骤:读锁源数据库的从数据库,记录从数据库最后一次执行的更新事件在源数据库中对应的更新位置;将从数据库中存储的数据导出至目标数据库;读锁源数据库,获取所述更新位置之后源数据库产生的更新,将所述更新同步到所述目标数据库。上述方法中,只有在将上述更新位置之后源数据库产生的所有更新同步到目标数据库期间,业务不能访问数据库,而源数据库的大部分数据已经由从数据库导出至目标数据库,该期间更新的数据量较小,因而该期间花费的时间也较少,因此上述方法能减少业务中断访问数据库的时间。此外,还提供一种数据库间的数据迁移系统。
Description
【技术领域】
本发明涉及数据库技术,特别地涉及一种数据库间的数据迁移方法和系统。
【背景技术】
数据库技术是信息系统的一项核心技术,目前常用的数据库类型有多种,例如,DB2、Oracle、SQL Server、mySQL等,各种类型的数据库的功能侧重点不同,都具体有自己的优势。例如,mySQL是一个小型关系型数据库管理系统。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,MySQL被广泛地应用在Internet上的中小型网站中。
为了保证数据的存储安全,主数据库一般都具有一个以上用于备份的从数据库。主从数据库的版本一般是相同的。以MySQL为例,MySQL支持单向、异步复制的主从备份。MySQL在进行主从备份时,一个服务器充当主服务器,一个或多个其它服务器充当从服务器。在主服务器上启用二进制日志,二进制日志用于跟踪所有对主数据库的更新(插入、删除、修改等等)。每个从服务器从主服务器接收记录在二进制日志中的更新。当一个从服务器连接主服务器时,从服务器通知主服务器自己在二进制日志中读取的最后一次更新的位置。从服务器接收该位置以后发生的任何更新,并在本机上执行相同的更新,然后封锁并等待主服务器通知新的更新。从服务器执行备份不会干扰主服务器,在备份过程中主服务器可以继续处理更新。
为了适应的新的需求,同种类型的数据库往往具有较多不同的版本。随着业务功能的变化,存储业务数据的数据库版本也需要变化,因此需要将业务访问的源数据库的数据迁移到目标数据库。
传统方法在不同版本的数据库间进行数据迁移之前,必须先读锁数据库,即禁止写数据库,只提供读数据库的服务。在此期间,业务必须中断对数据库的访问。当源数据库的数据全部迁移到目标数据库以后,将业务访问的数据库配置修改为目标数据库,业务才能恢复对数据库的访问。然而,由于业务的历史数据比较庞大,将源数据库的数据迁移至目标数据库往往需要几个小时甚至几天的时间。
因此,为了将业务的访问从源数据库切换到与源数据库不同版本的目标数据库,业务对数据库的访问需要中断较长的时间。
【发明内容】
基于此,有必要提供一种能减少业务中断访问数据库时间的数据库间的数据迁移方法。
一种数据库间的数据迁移方法,包括以下步骤:
读锁源数据库的从数据库,记录从数据库最后一次执行的更新事件在源数据库中对应的更新位置;
将从数据库中存储的数据导出至目标数据库;
读锁源数据库,获取所述更新位置之后源数据库产生的更新,将所述更新同步到所述目标数据库。
基于此,还有必要提供一种能减少业务中断访问数据库时间的数据库间的数据迁移系统。
一种数据库间的数据迁移系统,包括:
读写控制模块,用于读锁源数据库的从数据库;
位置记录模块,用于记录从数据库最后一次执行的更新事件在源数据库中对应的更新位置;
数据导出模块,用于将从数据库中存储的数据导出至目标数据库;
所述读写控制模块还用于读锁源数据库;
剩余更新同步模块,用于获取所述更新位置之后源数据库产生的更新,将所述更新同步到所述目标数据库。
上述数据库间的数据迁移方法和系统,在将源数据库的数据迁移至目标数据库时,读锁源数据库的从数据库,记录从数据库最后一次执行的更新事件在源数据库中对应的更新位置;将从数据库中存储的数据导出到目标数据库;读锁源数据库,获取上述更新位置之后源数据库产生的更新,将更新同步到目标数据库。上述方法和系统,在读锁源数据库之前,业务可以对源数据库进行访问,而在将所有更新同步到目标数据库之后,源数据库与目标数据库的数据是一致的,业务可切换到目标数据库访问数据,因而只有在将上述更新位置之后源数据库产生的所有更新同步到目标数据库期间,业务不能访问数据库,而源数据库的大部分数据已经由从数据库导出至目标数据库,该期间更新的数据量较小,因而该期间花费的时间也较少,因此上述方法和系统能减少业务中断访问数据库的时间。
【附图说明】
图1为一个实施例中的数据库间的数据迁移方法的流程示意图;
图2为一个实施例中步骤S60的流程示意图;
图3为一个实施例中的数据库间的数据迁移方法的原理示意图;
图4为一个实施例中的数据库间的数据迁移系统的结构示意图;
图5为一个实施例中数据导出模块的结构示意图。
【具体实施方式】
如图1所示,在一个实施例中,一种数据库间的数据迁移方法,包括以下步骤:
步骤S20,读锁源数据库的从数据库,记录从数据库最后一次执行的更新事件在源数据库中对应的更新位置。
具体的,从数据库为源数据库的备份数据库。在步骤S20之前,可每间隔预设时间,获取源数据库的更新中尚未同步到从数据库的更新,在从数据库中执行相同的更新。因而,源数据库的大部分数据同步到了从数据库中。
具体的,更新事件在源数据库中对应的更新位置为该更新事件在记录了源数据库的更新的日志文件中的位置。进一步,更新事件在日志文件中的位置指的是更新事件位于该日志文件中的偏移量。源数据库一般具有多个日志文件,更新事件所在的日志文件的文件名以及更新事件在该日志文件中的偏移量即可唯一确定更新事件在源数据库中对应的更新位置。因此,步骤S20可记录更新事件所在的日志文件的文件名以及更新事件在该日志文件中的偏移量。
具体的,读锁从数据库,即给从数据库加读锁,禁止对从数据库进行写操作,只提供读从数据库的服务。
步骤S40,将从数据库中存储的数据导出到目标数据库。
在一个实施例中,步骤S40的具体过程包括:将从数据库存储的数据导出转存储为备份文件,备份文件中包含重构从数据库存储的数据的命令语句;在目标数据库中执行所述命令语句。
具体的,对于支持SQL语言的数据库,可将从数据库存储的数据导出转存储为包含SQL命令语句的备份文件,进一步的,在目标数据库中执行备份文件中的SQL命令语句以重构从数据库存储的数据。
步骤S60,读锁源数据库,获取更新位置之后源数据库产生的更新,将获取的更新同步到目标数据库。
具体的,可给源数据库加读锁,禁止对源数据库进行写操作,只提供读源数据库的服务。
具体的,在一个实施例中,可获取从数据库最后一次执行的更新事件所在的源数据库的日志文件中该更新事件之后的所有更新,将获取的更新同步到目标数据库。进一步的,将从数据库最后一次执行的更新事件所在的日志文件之后产生的所有源数据库的日志文件全量导入目标数据库,即获取从数据库最后一次执行的更新事件所在的日志文件之后产生的所有源数据库的日志文件中的更新,在目标数据库中执行与获取的更新相同的更新操作。
在一个实施例中,在步骤S60之后,上述数据库间的数据迁移方法还包括步骤:可将业务访问从源数据库切换到目标数据库。
具体的,可修改业务访问的数据库的相关配置,将源数据库的相关信息对应修改为目标数据库的相关信息,并启动对目标数据库的访问。
上述数据库间的数据迁移方法,在读锁源数据库之前,业务可以对源数据库进行访问,而在将所有更新同步到目标数据库之后,源数据库与目标数据库的数据是一致的,业务可切换到目标数据库访问数据,因而只有在将上述更新位置之后源数据库产生的所有更新同步到目标数据库期间,业务不能访问数据库,而源数据库的大部分数据已经由从数据库导出至目标数据库,该期间更新的数据量较小,因而该期间花费的时间也较少,因此上述方法和系统能减少业务中断访问数据库的时间。
如图2所示,在一个实施例中,步骤S60的具体过程包括:
步骤S602,按照更新产生顺序获取上述更新位置之后源数据库发生的更新,将获取的更新同步到目标数据库,并监测剩余的未同步到目标数据库的源数据库的更新量是否小于阈值,重复执行以上步骤,直到剩余的未同步到目标数据库的源数据库的更新量小于阈值。
具体的,更新记录在日志文件中,因此,可通过监测日志文件的总大小来监测日志文件中记录的更新量的大小。具体的,在一个实施例中,可监测记录剩余的未同步到所述目标数据库的源数据库的更新的至少一个日志文件的总大小是否小于预设值。
具体的,在一个实施例中,当源数据库具有多个未同步到目标数据库的日志文件时,将最后一个日志文件以前的未同步到目标数据库中的日志文件导入目标数据库。当只有一个未同步到目标数据库的日志文件时,判断该日志文件的大小是否小于预设值,若否,则等待产生新的日志文件或执行产生新的日志文件的命令。产生新的日志文件后,重复执行上述步骤,直到只剩下一个未同步到目标数据库的日志文件且该日志文件的小于预设值。
步骤S604,若剩余的未同步到目标数据库的源数据库的更新量小于阈值,则读锁源数据库,获取剩余的未同步到所述目标数据库的源数据库的更新,将剩余的更新同步到目标数据库。
具体的,在一个实施例中,当只有一个未同步到目标数据库的日志文件且该日志文件的小于预设值时,则读锁源数据库。进一步的,将最后一个日志文件导入目标数据库。
本实施例中,不断地将源数据库中新产生且未同步到目标数据库中的更新同步到目标数据库,当剩余的未同步到目标数据库的源数据库的更新量小于阈值时,读锁源数据库,并将剩余的未同步的所有更新同步到目标数据库。由于本实施例在剩余更新量较小时再读锁源数据库,将少量的更新同步到目标数据库所花费的时间也较少,因此读锁源数据库的时间也较少,从而可进一步的缩小业务中断访问数据库的时间。
在一个实施例中,源数据库、从数据库和目标数据为MYSQL数据库。
在步骤S20之前,可启用用于跟踪所有对源数据库的更新(插入、删除、修改等等)的日志。
在一个实施例中,从数据库最后一次执行的更新事件在源数据库中对应的更新位置为该更新事件在源数据库的日志文件中的位置。步骤S20可记录更新事件所在的日志文件的文件名以及更新事件在该日志文件中的偏移量。
步骤S40的具体过程为:将从数据库存储的数据导出转存储为备份文件,备份文件中包含重构从数据库存储的数据的SQL命令;在目标数据库中执行SQL命令。
具体的,可通过mysqldump工具将从数据库存储的数据导出转存储为备份文件。mysqldump是MYSQL用于转存储数据库的实用程序,在此不再赘述。进一步的,可通过MYSQL客户端在目标数据库中执行SQL命令。
在一个实施例中,步骤S60的具体过程包括:读锁源数据库,获取源数据库的日志文件中上述更新位置之后的更新日志;将获取的更新日志中记录的更新转换为SQL命令;在目标数据库中执行转换而成的SQL命令。
具体的,可获取从数据库最后一次执行的更新事件所在的源数据库的日志文件,并获取该日志文件中该更新事件之后的所有更新日志;进一步的,获取该日志文件之后产生的日志文件中所记录的所有更新日志。
进一步的,可将获取的更新日志中记录的更新通过mysqlbinlog工具转换为SQL命令。mysqlbinlog工具为将MYSQL的日志文件转换为SQL命令的实用程序,在此不再赘述。进一步的,可通过MYSQL客户端在目标数据库中执行转换而成的SQL命令。
下面结合图3说明上述数据库间的数据迁移方法的原理。
(1)源数据库301的更新单向异步备份到从数据库302,日志文件303记录源数据库301的更新。
(2)读锁从数据库302,记录从数据库302最后一次执行的更新事件在日志文件303中的更新位置。
(3)将从数据库302中存储的数据导出转存储为备份文件304,备份文件304中包含重构从数据库302存储的数据的命令语句。
(4)在目标数据库305中执行备份文件304中包含的命令语句。
(5)读锁源数据库301。
(6)获取日志文件303中从数据库302最后一次执行的更新事件的更新位置之后的源数据库301产生的所有更新,将获取的更新同步到目标数据库305。
如图4所示,在一个实施例中,一种数据库间的数据迁移系统,包括读写控制模块10、位置记录模块20、数据导出模块30、剩余更新同步模块40,其中:
读写控制模块10用于读锁源数据库的从数据库。
具体的,从数据库为源数据库的备份数据库。在一个实施例中,上述数据库间的数据迁移系统还包括从数据库更新模块(图中未示出),用于每间隔预设时间,获取源数据库的更新中尚未同步到从数据库的更新,在从数据库中执行相同的更新。从数据库更新模块将源数据库的大部分数据同步到了从数据库中。
具体的,读写控制模块10给从数据库加读锁,禁止对从数据库进行写操作,只提供读从数据库的服务。
位置记录模块20用于记录从数据库最后一次执行的更新事件在源数据库中对应的更新位置。
具体的,更新事件在源数据库中对应的更新位置为该更新事件在记录了源数据库的更新的日志文件中的位置。进一步,更新事件在日志文件中的位置指的是更新事件位于该日志文件中的偏移量。源数据库一般具有多个日志文件,更新事件所在的日志文件的文件名以及更新事件在该日志文件中的偏移量即可唯一确定更新事件在源数据库中对应的更新位置。因此,位置记录模块20可记录更新事件所在的日志文件的文件名以及更新事件在该日志文件中的偏移量。
数据导出模块30用于将从数据库中存储的数据导出到目标数据库。
如图5所示,在一个实施例中,数据导出模块30包括备份模块320和命令执行模块340,其中:
备份模块320用于将从数据库存储的数据导出转存储为备份文件,备份文件中包含重构从数据库存储的数据的命令语句。
命令执行模块340用于在目标数据库中执行上述命令语句。
具体的,对于支持SQL语言的数据库,备份模块320可将从数据库存储的数据导出转存储为包含SQL命令语句的备份文件,进一步的,命令执行模块340可在目标数据库中执行备份文件中的SQL命令语句以重构从数据库存储的数据。
读写控制模块10还用于读锁源数据库。
具体的,读写控制模块10可给源数据库加读锁,禁止对源数据库进行写操作,只提供读源数据库的服务。
剩余更新同步模块40用于获取更新位置之后源数据库产生的更新,将获取的更新同步到目标数据库。
具体的,在一个实施例中,剩余更新同步模块40可获取从数据库最后一次执行的更新事件所在的源数据库的日志文件中该更新事件之后的所有更新,将获取的更新同步到目标数据库。进一步的,剩余更新同步模块40可将从数据库最后一次执行的更新事件所在的日志文件之后产生的所有源数据库的日志文件全量导入目标数据库,即获取从数据库最后一次执行的更新事件所在的日志文件之后产生的所有源数据库的日志文件中的更新,在目标数据库中执行与获取的更新相同的更新操作。
在一个实施例中,上述数据库间的数据迁移系统还包括访问切换模块(图中未示出),用于将业务访问从源数据库切换到目标数据库。
具体的,访问切换模块可修改业务访问的数据库的相关配置,将源数据库的相关信息对应修改为目标数据库的相关信息,并启动对目标数据库的访问。
上述数据库间的数据迁移系统,在读锁源数据库之前,业务可以对源数据库进行访问,而在将所有更新同步到目标数据库之后,源数据库与目标数据库的数据是一致的,业务可切换到目标数据库访问数据,因而只有在将上述更新位置之后源数据库产生的所有更新同步到目标数据库期间,业务不能访问数据库,而源数据库的大部分数据已经由从数据库导出至目标数据库,该期间更新的数据量较小,因而该期间花费的时间也较少,因此上述系统能减少业务中断访问数据库的时间。
在一个实施例中,剩余更新同步模块40包括更新模块和监测模块(图中未示出),其中:
更新模块用于在读写控制模块10读锁源数据库之前,按照更新产生顺序获取上述更新位置之后源数据库发生的更新,将获取的更新同步到目标数据库。
监测模块用于监测剩余的未同步到目标数据库的源数据库的更新量是否小于阈值。
本实施例中,读写控制模块10还用于若剩余的未同步到所述目标数据库的源数据库的更新量小于阈值,则读锁源数据库。
更新模块还用于在读写控制模块10读锁源数据库之后,获取剩余的未同步到所述目标数据库的源数据库的更新,将剩余的更新同步到所述目标数据库。
具体的,更新记录在日志文件中,因此,监测模块可通过监测日志文件的总大小来监测日志文件中记录的更新量的大小。具体的,在一个实施例中,监测模块可监测记录剩余的未同步到所述目标数据库的源数据库的更新的至少一个日志文件的总大小是否小于预设值。
具体的,在一个实施例中,当源数据库具有多个未同步到目标数据库的日志文件时,更新模块可将最后一个日志文件以前的未同步到目标数据库中的日志文件导入目标数据库。当只有一个未同步到目标数据库的日志文件时,更新模块可等待产生新的日志文件或执行产生新的日志文件的命令。产生新的日志文件后,更新模块可继续将最后一个日志文件以前的未同步到目标数据库中的日志文件导入目标数据库。
而监测模块可监测是否只剩下一个未同步到目标数据库的日志文件且该日志文件的小于预设值,若是,则通知读写模块10读写源数据库,并通知更新模块将最后一个日志文件导入目标数据库。
当只有一个未同步到目标数据库的日志文件且该日志文件的小于预设值时,读写控制模块10读锁源数据库,进一步的,更新模块将最后一个日志文件导入目标数据库。
本实施例中,不断地将源数据库中新产生且未同步到目标数据库中的更新同步到目标数据库,当剩余的未同步到目标数据库的源数据库的更新量小于阈值时,读锁源数据库,并将剩余的未同步的所有更新同步到目标数据库。由于本实施例在剩余更新量较小时再读锁源数据库,将少量的更新同步到目标数据库所花费的时间也较少,因此读锁源数据库的时间也较少,从而可进一步的缩小业务中断访问数据库的时间。
在一个实施例中,源数据库、从数据库和目标数据为MYSQL数据库。
在一个实施例中,上述系统还包括日志记录模块(图中未示出),用于启用用于跟踪所有对源数据库的更新(插入、删除、修改等等)的日志。
在一个实施例中,从数据库最后一次执行的更新事件在源数据库中对应的更新位置为该更新事件在源数据库的日志文件中的位置。位置记录模块20可记录更新事件所在的日志文件的文件名以及更新事件在该日志文件中的偏移量。
数据导出模块30用于将从数据库存储的数据导出转存储为备份文件,备份文件中包含重构从数据库存储的数据的SQL命令,进一步的,在目标数据库中执行SQL命令。
具体的,数据导出模块30可通过mysqldump工具将从数据库存储的数据导出转存储为备份文件。mysqldump是MYSQL用于转存储数据库的实用程序,在此不再赘述。
剩余更新同步模块40用于获取源数据库的日志文件中上述更新位置之后的更新日志;将获取的更新日志中记录的更新转换为SQL命令;并在目标数据库中执行转换而成的SQL命令。
具体的,剩余更新同步模块40可获取从数据库最后一次执行的更新事件所在的源数据库的日志文件,并获取该日志文件中该更新事件之后的所有更新日志;进一步的,可获取该日志文件之后产生的日志文件中所记录的所有更新日志。
进一步的,剩余更新同步模块40可将获取的更新日志中记录的更新通过mysqlbinlog工具转换为SQL命令。mysqlbinlog工具为将MYSQL的日志文件转换为SQL命令的实用程序,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序控制相关的硬件来完成的,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种数据库间的数据迁移方法,包括以下步骤:
读锁源数据库的从数据库,记录从数据库最后一次执行的更新事件在源数据库中对应的更新位置;
将从数据库中存储的数据导出至目标数据库;
读锁源数据库,获取所述更新位置之后源数据库产生的更新,将所述更新同步到所述目标数据库。
2.根据权利要求1所述的方法,其特征在于,所述将从数据库中存储的数据导出至目标数据库的步骤包括:
将从数据库存储的数据导出转存储为备份文件,所述备份文件中包含重构从数据库存储的数据的命令语句;
在所述目标数据库中执行所述命令语句。
3.根据权利要求1所述的方法,其特征在于,所述读锁源数据库,获取所述更新位置之后源数据库发生的更新,将所述更新同步到所述目标数据库的步骤包括:
按照更新产生顺序获取所述更新位置之后源数据库发生的更新,将获取的更新同步到所述目标数据库,并监测剩余的未同步到所述目标数据库的源数据库的更新量是否小于阈值;
若剩余的未同步到所述目标数据库的源数据库的更新量小于阈值,则读锁源数据库,获取剩余的未同步到所述目标数据库的源数据库的更新,将剩余的更新同步到所述目标数据库。
4.根据权利要求3所述的方法,其特征在于,所述监测剩余的未同步到所述目标数据库的源数据库的更新量是否小于阈值的步骤包括:
监测记录剩余的未同步到所述目标数据库的源数据库的更新的日志文件的大小是否小于预设值。
5.根据权利要求1所述的方法,其特征在于,在所述将所述更新同步到所述目标数据库的步骤之后,所述方法还包括:
将业务访问从所述源数据库切换到所述目标数据库。
6.根据权利要求1-5任一所述的方法,其特征在于,所述源数据库、从数 据库和目标数据为MYSQL数据库;
所述将从数据库中存储的数据导出到目标数据库的步骤包括:
将从数据库存储的数据导出转存储为备份文件,所述备份文件中包含重构从数据库存储的数据的SQL命令;
在所述目标数据库中执行所述SQL命令。
7.根据权利要求6所述的方法,其特征在于,所述更新位置为从数据库最后一次执行的更新事件在源数据库的日志文件中的位置;
所述获取所述更新位置之后源数据库产生的更新,将所述更新同步到所述目标数据库的步骤包括:
获取源数据库的日志文件中所述更新位置之后的更新日志;
将所述更新日志中记录的更新转换为SQL命令;
在所述目标数据库中执行转换而成的SQL命令。
8.一种数据库间的数据迁移系统,其特征在于,包括:
读写控制模块,用于读锁源数据库的从数据库;
位置记录模块,用于记录从数据库最后一次执行的更新事件在源数据库中对应的更新位置;
数据导出模块,用于将从数据库中存储的数据导出至目标数据库;
所述读写控制模块还用于读锁源数据库;
剩余更新同步模块,用于获取所述更新位置之后源数据库产生的所有更新,将所述更新同步到所述目标数据库。
9.根据权利要求8所述的系统,其特征在于,所述数据导出模块包括:
备份模块,用于将从数据库存储的数据导出转存储为备份文件,所述备份文件中包含重构从数据库存储的数据的命令语句;
命令执行模块,在所述目标数据库中执行所述命令语句。
10.根据权利要求8所述的系统,其特征在于,所述剩余更新同步模块包括:
更新模块,用于在读写控制模块读锁源数据库之前,按照更新产生顺序获 取所述更新位置之后源数据库发生的更新,将获取的更新同步到所述目标数据库;
监测模块,用于监测剩余的未同步到所述目标数据库的源数据库的更新量是否小于阈值;
所述读写控制模块用于若剩余的未同步到所述目标数据库的源数据库的更新量小于阈值,则读锁源数据库;
所述更新模块还用于在所述读写控制模块读锁源数据库之后,获取剩余的未同步到所述目标数据库的源数据库的更新,将剩余的更新同步到所述目标数据库。
11.根据权利要求10所述的系统,其特征在于,所述剩余更新同步模块还用于监测记录剩余的未同步到所述目标数据库的源数据库的更新的日志文件的大小是否小于预设值。
12.根据权利要求8所述的系统,其特征在于,所述系统还包括:
访问切换模块,用于在将所述更新同步到所述目标数据库之后,将业务访问从所述源数据库切换到所述目标数据库。
13.根据权利要求8-12任一所述的系统,其特征在于,所述源数据库、从数据库和目标数据为MYSQL数据库;
数据导出模块用于将从数据库存储的数据导出转存储为备份文件,所述备份文件中包含重构从数据库存储的数据的SQL命令,并在所述目标数据库中执行所述SQL命令。
14.根据权利要求13所述的系统,其特征在于,所述更新位置为从数据库最后一次执行的更新事件在源数据库的日志文件中的位置;
剩余更新同步模块用于获取源数据库的日志文件中所述更新位置之后的更新日志,将所述更新日志中记录的更新转换为SQL命令,并在所述目标数据库中执行转换而成的SQL命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210226102.6A CN103530290B (zh) | 2012-07-03 | 2012-07-03 | 数据库间的数据迁移方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210226102.6A CN103530290B (zh) | 2012-07-03 | 2012-07-03 | 数据库间的数据迁移方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103530290A true CN103530290A (zh) | 2014-01-22 |
CN103530290B CN103530290B (zh) | 2017-12-12 |
Family
ID=49932312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210226102.6A Active CN103530290B (zh) | 2012-07-03 | 2012-07-03 | 数据库间的数据迁移方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103530290B (zh) |
Cited By (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572976A (zh) * | 2014-12-30 | 2015-04-29 | 广州唯品会信息科技有限公司 | 网站数据更新方法和系统 |
CN104750774A (zh) * | 2014-12-15 | 2015-07-01 | 北京星网锐捷网络技术有限公司 | 数据库升级方法及装置 |
CN105183852A (zh) * | 2015-09-08 | 2015-12-23 | 网易(杭州)网络有限公司 | 一种数据库迁移方法和装置 |
CN105359147A (zh) * | 2013-07-09 | 2016-02-24 | 甲骨文国际公司 | 在线数据库迁移 |
CN105528368A (zh) * | 2014-09-30 | 2016-04-27 | 北京金山云网络技术有限公司 | 一种数据库迁移方法及装置 |
CN105718570A (zh) * | 2016-01-20 | 2016-06-29 | 北京京东尚科信息技术有限公司 | 用于数据库的数据迁移方法和装置 |
CN105824846A (zh) * | 2015-01-09 | 2016-08-03 | 阿里巴巴集团控股有限公司 | 数据迁移方法及装置 |
CN105868343A (zh) * | 2016-03-28 | 2016-08-17 | 上海携程商务有限公司 | 数据库迁移方法及系统 |
CN105912628A (zh) * | 2016-04-07 | 2016-08-31 | 北京奇虎科技有限公司 | 主从数据库的同步方法及装置 |
CN105955989A (zh) * | 2015-12-31 | 2016-09-21 | 无锡华云数据技术服务有限公司 | 一种云平台数据库主从服务器的建立方法 |
CN105956032A (zh) * | 2016-04-25 | 2016-09-21 | 百度在线网络技术(北京)有限公司 | 缓存数据同步方法、系统和装置 |
CN105989006A (zh) * | 2015-01-27 | 2016-10-05 | 中芯国际集成电路制造(上海)有限公司 | 数据迁移方法和装置 |
CN106354865A (zh) * | 2016-09-09 | 2017-01-25 | 北京奇虎科技有限公司 | 一种同步主从数据库的方法、装置和系统 |
CN106682164A (zh) * | 2016-12-26 | 2017-05-17 | 北京奇虎科技有限公司 | 一种扩充主从式数据库系统的方法和装置 |
CN106682021A (zh) * | 2015-11-09 | 2017-05-17 | 五八同城信息技术有限公司 | 数据库迁移方法及装置 |
CN106776121A (zh) * | 2016-11-23 | 2017-05-31 | 中国工商银行股份有限公司 | 一种数据灾备装置、系统及方法 |
CN106802895A (zh) * | 2015-11-26 | 2017-06-06 | 阿里巴巴集团控股有限公司 | 用于修复数据库备库数据的方法和设备 |
CN106970921A (zh) * | 2016-01-14 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 一种数据迁移方法及装置 |
WO2017128992A1 (zh) * | 2016-01-26 | 2017-08-03 | 阿里巴巴集团控股有限公司 | 物理机数据迁移至云端的方法、装置和系统 |
WO2017143957A1 (zh) * | 2016-02-26 | 2017-08-31 | 华为技术有限公司 | 一种数据重分布的方法及装置 |
CN107992512A (zh) * | 2017-10-20 | 2018-05-04 | 中国建设银行股份有限公司上海市分行 | 一种数据迁移的方法、系统及计算机可读存储介质 |
CN108153493A (zh) * | 2017-12-25 | 2018-06-12 | 中铁程科技有限责任公司 | 信息处理方法及系统、计算机可读存储介质 |
CN108446315A (zh) * | 2018-02-07 | 2018-08-24 | 中国平安人寿保险股份有限公司 | 大数据迁移方法、装置、设备及存储介质 |
CN108804463A (zh) * | 2017-05-03 | 2018-11-13 | 杭州海康威视数字技术股份有限公司 | 一种MySQL数据库的数据同步方法、装置及电子设备 |
US10248671B2 (en) | 2013-07-09 | 2019-04-02 | Oracle International Corporation | Dynamic migration script management |
CN110532241A (zh) * | 2019-07-18 | 2019-12-03 | 政采云有限公司 | 利用MySQL Binlog进行不停机数据迁移方法 |
US10540335B2 (en) | 2013-07-09 | 2020-01-21 | Oracle International Corporation | Solution to generate a scriptset for an automated database migration |
CN110781214A (zh) * | 2019-09-26 | 2020-02-11 | 金蝶软件(中国)有限公司 | 数据库读写方法、装置、计算机设备和存储介质 |
CN111177144A (zh) * | 2019-10-17 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 表同步方法、装置、设备、存储介质及系统 |
US10691654B2 (en) | 2013-07-09 | 2020-06-23 | Oracle International Corporation | Automated database migration architecture |
CN111404737A (zh) * | 2020-03-10 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 一种容灾处理方法以及相关装置 |
US10776244B2 (en) | 2013-07-09 | 2020-09-15 | Oracle International Corporation | Consolidation planning services for systems migration |
CN111767270A (zh) * | 2020-06-28 | 2020-10-13 | 平安普惠企业管理有限公司 | 数据迁移方法、装置、服务器及存储介质 |
US11036696B2 (en) | 2016-06-07 | 2021-06-15 | Oracle International Corporation | Resource allocation for database provisioning |
US11157664B2 (en) | 2013-07-09 | 2021-10-26 | Oracle International Corporation | Database modeling and analysis |
CN114020850A (zh) * | 2022-01-05 | 2022-02-08 | 深圳市明源云科技有限公司 | 数据库数据同步方法、装置、设备及可读存储介质 |
US11256671B2 (en) | 2019-09-13 | 2022-02-22 | Oracle International Corporation | Integrated transition control center |
CN114385737A (zh) * | 2022-03-24 | 2022-04-22 | 国能大渡河流域水电开发有限公司 | 基于变化数据捕捉的电力监控数据监控方法及平台 |
CN115037729A (zh) * | 2022-04-21 | 2022-09-09 | 中国建设银行股份有限公司 | 数据汇聚方法、装置、电子设备及计算机可读介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101562A (zh) * | 2007-07-10 | 2008-01-09 | 北京大学 | 一种虚拟机的外存在线迁移方法 |
US20090063504A1 (en) * | 2007-08-29 | 2009-03-05 | Richard Banister | Bi-directional replication between web services and relational databases |
CN101493797A (zh) * | 2009-03-12 | 2009-07-29 | 华为技术有限公司 | 数据动态迁移的方法和装置 |
CN101599978A (zh) * | 2009-07-17 | 2009-12-09 | 杭州华三通信技术有限公司 | 资源分配方法和设备 |
CN102291450A (zh) * | 2011-08-08 | 2011-12-21 | 浪潮电子信息产业股份有限公司 | 一种集群存储系统内部的数据在线分级存储方法 |
CN102542007A (zh) * | 2011-12-13 | 2012-07-04 | 中国电子科技集团公司第十五研究所 | 关系型数据库之间的同步方法及系统 |
-
2012
- 2012-07-03 CN CN201210226102.6A patent/CN103530290B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101562A (zh) * | 2007-07-10 | 2008-01-09 | 北京大学 | 一种虚拟机的外存在线迁移方法 |
US20090063504A1 (en) * | 2007-08-29 | 2009-03-05 | Richard Banister | Bi-directional replication between web services and relational databases |
CN101493797A (zh) * | 2009-03-12 | 2009-07-29 | 华为技术有限公司 | 数据动态迁移的方法和装置 |
CN101599978A (zh) * | 2009-07-17 | 2009-12-09 | 杭州华三通信技术有限公司 | 资源分配方法和设备 |
CN102291450A (zh) * | 2011-08-08 | 2011-12-21 | 浪潮电子信息产业股份有限公司 | 一种集群存储系统内部的数据在线分级存储方法 |
CN102542007A (zh) * | 2011-12-13 | 2012-07-04 | 中国电子科技集团公司第十五研究所 | 关系型数据库之间的同步方法及系统 |
Non-Patent Citations (1)
Title |
---|
ORCLAJAX等: "在线数据库迁移-Oracle专题深入讨论-ITPUB论坛-中国最专业的IT技术社区", 《HTTP://WWW.ITPUB.NET/FORUM.PHP?MOD=》 * |
Cited By (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10691654B2 (en) | 2013-07-09 | 2020-06-23 | Oracle International Corporation | Automated database migration architecture |
US11157664B2 (en) | 2013-07-09 | 2021-10-26 | Oracle International Corporation | Database modeling and analysis |
US10776244B2 (en) | 2013-07-09 | 2020-09-15 | Oracle International Corporation | Consolidation planning services for systems migration |
CN105359147A (zh) * | 2013-07-09 | 2016-02-24 | 甲骨文国际公司 | 在线数据库迁移 |
US10540335B2 (en) | 2013-07-09 | 2020-01-21 | Oracle International Corporation | Solution to generate a scriptset for an automated database migration |
US10248671B2 (en) | 2013-07-09 | 2019-04-02 | Oracle International Corporation | Dynamic migration script management |
CN105528368A (zh) * | 2014-09-30 | 2016-04-27 | 北京金山云网络技术有限公司 | 一种数据库迁移方法及装置 |
CN105528368B (zh) * | 2014-09-30 | 2019-03-12 | 北京金山云网络技术有限公司 | 一种数据库迁移方法及装置 |
CN104750774A (zh) * | 2014-12-15 | 2015-07-01 | 北京星网锐捷网络技术有限公司 | 数据库升级方法及装置 |
CN104572976A (zh) * | 2014-12-30 | 2015-04-29 | 广州唯品会信息科技有限公司 | 网站数据更新方法和系统 |
CN104572976B (zh) * | 2014-12-30 | 2018-03-27 | 广州品唯软件有限公司 | 网站数据更新方法和系统 |
CN105824846A (zh) * | 2015-01-09 | 2016-08-03 | 阿里巴巴集团控股有限公司 | 数据迁移方法及装置 |
CN105989006A (zh) * | 2015-01-27 | 2016-10-05 | 中芯国际集成电路制造(上海)有限公司 | 数据迁移方法和装置 |
CN105183852A (zh) * | 2015-09-08 | 2015-12-23 | 网易(杭州)网络有限公司 | 一种数据库迁移方法和装置 |
CN105183852B (zh) * | 2015-09-08 | 2018-05-22 | 网易(杭州)网络有限公司 | 一种数据库迁移方法和装置 |
CN106682021A (zh) * | 2015-11-09 | 2017-05-17 | 五八同城信息技术有限公司 | 数据库迁移方法及装置 |
CN106802895A (zh) * | 2015-11-26 | 2017-06-06 | 阿里巴巴集团控股有限公司 | 用于修复数据库备库数据的方法和设备 |
CN106802895B (zh) * | 2015-11-26 | 2020-06-02 | 阿里巴巴集团控股有限公司 | 用于修复数据库备库数据的方法和设备 |
CN105955989B (zh) * | 2015-12-31 | 2020-12-22 | 华云数据控股集团有限公司 | 一种云平台数据库主从服务器的建立方法 |
CN105955989A (zh) * | 2015-12-31 | 2016-09-21 | 无锡华云数据技术服务有限公司 | 一种云平台数据库主从服务器的建立方法 |
CN106970921A (zh) * | 2016-01-14 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 一种数据迁移方法及装置 |
CN105718570B (zh) * | 2016-01-20 | 2019-12-31 | 北京京东尚科信息技术有限公司 | 用于数据库的数据迁移方法和装置 |
CN105718570A (zh) * | 2016-01-20 | 2016-06-29 | 北京京东尚科信息技术有限公司 | 用于数据库的数据迁移方法和装置 |
WO2017128992A1 (zh) * | 2016-01-26 | 2017-08-03 | 阿里巴巴集团控股有限公司 | 物理机数据迁移至云端的方法、装置和系统 |
TWI724095B (zh) * | 2016-01-26 | 2021-04-11 | 香港商阿里巴巴集團服務有限公司 | 實體機資料遷移至雲端的方法、裝置和系統 |
WO2017143957A1 (zh) * | 2016-02-26 | 2017-08-31 | 华为技术有限公司 | 一种数据重分布的方法及装置 |
CN105868343B (zh) * | 2016-03-28 | 2019-05-21 | 上海携程商务有限公司 | 数据库迁移方法及系统 |
CN105868343A (zh) * | 2016-03-28 | 2016-08-17 | 上海携程商务有限公司 | 数据库迁移方法及系统 |
CN105912628A (zh) * | 2016-04-07 | 2016-08-31 | 北京奇虎科技有限公司 | 主从数据库的同步方法及装置 |
CN105912628B (zh) * | 2016-04-07 | 2019-05-28 | 北京奇虎科技有限公司 | 主从数据库的同步方法及装置 |
CN105956032B (zh) * | 2016-04-25 | 2019-09-20 | 百度在线网络技术(北京)有限公司 | 缓存数据同步方法、系统和装置 |
CN105956032A (zh) * | 2016-04-25 | 2016-09-21 | 百度在线网络技术(北京)有限公司 | 缓存数据同步方法、系统和装置 |
US11036696B2 (en) | 2016-06-07 | 2021-06-15 | Oracle International Corporation | Resource allocation for database provisioning |
CN106354865A (zh) * | 2016-09-09 | 2017-01-25 | 北京奇虎科技有限公司 | 一种同步主从数据库的方法、装置和系统 |
CN106354865B (zh) * | 2016-09-09 | 2020-05-15 | 北京奇虎科技有限公司 | 一种同步主从数据库的方法、装置和系统 |
CN106776121B (zh) * | 2016-11-23 | 2020-08-18 | 中国工商银行股份有限公司 | 一种数据灾备装置、系统及方法 |
CN106776121A (zh) * | 2016-11-23 | 2017-05-31 | 中国工商银行股份有限公司 | 一种数据灾备装置、系统及方法 |
CN106682164A (zh) * | 2016-12-26 | 2017-05-17 | 北京奇虎科技有限公司 | 一种扩充主从式数据库系统的方法和装置 |
CN108804463A (zh) * | 2017-05-03 | 2018-11-13 | 杭州海康威视数字技术股份有限公司 | 一种MySQL数据库的数据同步方法、装置及电子设备 |
CN107992512A (zh) * | 2017-10-20 | 2018-05-04 | 中国建设银行股份有限公司上海市分行 | 一种数据迁移的方法、系统及计算机可读存储介质 |
CN108153493A (zh) * | 2017-12-25 | 2018-06-12 | 中铁程科技有限责任公司 | 信息处理方法及系统、计算机可读存储介质 |
CN108446315A (zh) * | 2018-02-07 | 2018-08-24 | 中国平安人寿保险股份有限公司 | 大数据迁移方法、装置、设备及存储介质 |
CN110532241A (zh) * | 2019-07-18 | 2019-12-03 | 政采云有限公司 | 利用MySQL Binlog进行不停机数据迁移方法 |
US11256671B2 (en) | 2019-09-13 | 2022-02-22 | Oracle International Corporation | Integrated transition control center |
US11822526B2 (en) | 2019-09-13 | 2023-11-21 | Oracle International Corporation | Integrated transition control center |
CN110781214A (zh) * | 2019-09-26 | 2020-02-11 | 金蝶软件(中国)有限公司 | 数据库读写方法、装置、计算机设备和存储介质 |
CN111177144A (zh) * | 2019-10-17 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 表同步方法、装置、设备、存储介质及系统 |
CN111177144B (zh) * | 2019-10-17 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 表同步方法、装置、设备、存储介质及系统 |
CN111404737A (zh) * | 2020-03-10 | 2020-07-10 | 腾讯科技(深圳)有限公司 | 一种容灾处理方法以及相关装置 |
CN111767270A (zh) * | 2020-06-28 | 2020-10-13 | 平安普惠企业管理有限公司 | 数据迁移方法、装置、服务器及存储介质 |
CN114020850A (zh) * | 2022-01-05 | 2022-02-08 | 深圳市明源云科技有限公司 | 数据库数据同步方法、装置、设备及可读存储介质 |
CN114385737A (zh) * | 2022-03-24 | 2022-04-22 | 国能大渡河流域水电开发有限公司 | 基于变化数据捕捉的电力监控数据监控方法及平台 |
CN115037729A (zh) * | 2022-04-21 | 2022-09-09 | 中国建设银行股份有限公司 | 数据汇聚方法、装置、电子设备及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103530290B (zh) | 2017-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103530290A (zh) | 数据库间的数据迁移方法和系统 | |
CN104850598B (zh) | 一种实时数据库备份恢复方法 | |
US10255235B2 (en) | Database storage system based on jukebox and method using the system | |
CN101809558B (zh) | 远程异步数据复制系统和方法 | |
US9600500B1 (en) | Single phase transaction commits for distributed database transactions | |
CN101582920B (zh) | 一种分布式文件系统中校验和同步数据块的方法及装置 | |
US9996557B2 (en) | Database storage system based on optical disk and method using the system | |
CN106570163B (zh) | 一种面向不可靠环境的审计日志读写管理方法以及系统 | |
US11093387B1 (en) | Garbage collection based on transmission object models | |
CN102339321A (zh) | 具有版本控制的网络文件系统及方法 | |
CN102917072A (zh) | 用于数据服务器集群之间进行数据迁移的设备、系统及方法 | |
CN102982085A (zh) | 数据迁移系统和方法 | |
CN105144142A (zh) | 使用对象多个维度的信息存储对象 | |
CN102541691B (zh) | 面向内存数据库oltp应用的日志检查点恢复方法 | |
US20150142735A1 (en) | Memory searching system and method, real-time searching system and method, and computer storage medium | |
US10976942B2 (en) | Versioning a configuration of data storage equipment | |
CN103761165A (zh) | 日志备份方法及装置 | |
CN104239438A (zh) | 基于分离存储的文件信息存储方法和文件信息读写方法 | |
KR102119258B1 (ko) | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 | |
KR20200056357A (ko) | 데이터베이스 관리 시스템에서의 변경 데이터 캡쳐 구현 기법 | |
US11221983B1 (en) | Multi-level indexing of backup files | |
CN105787058A (zh) | 一种用户标签系统及基于用户标签系统的数据推送系统 | |
CN103544217A (zh) | 数据封存系统 | |
CN104142943A (zh) | 一种数据库扩容方法和一种数据库 | |
CN115658391A (zh) | 基于QianBase MPP数据库的WAL机制的备份恢复方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |