CN103544303B - 一种数据同步方法、系统和设备 - Google Patents
一种数据同步方法、系统和设备 Download PDFInfo
- Publication number
- CN103544303B CN103544303B CN201310533523.8A CN201310533523A CN103544303B CN 103544303 B CN103544303 B CN 103544303B CN 201310533523 A CN201310533523 A CN 201310533523A CN 103544303 B CN103544303 B CN 103544303B
- Authority
- CN
- China
- Prior art keywords
- file
- data
- receiving device
- type
- renewal
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000005540 biological transmission Effects 0.000 claims abstract description 95
- 230000002159 abnormal effect Effects 0.000 claims abstract description 32
- 230000008859 change Effects 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 13
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims 1
- 238000010408 sweeping Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据同步方法、系统和设备,涉及通信领域,用于避免数据同步过程中的数据不一致的问题。本发明实施例中,发送设备在监听到数据更新操作时,在对该数据更新操作所涉及的各数据库表进行成功更新后生成包含对各数据库表的更新操作信息的设定类型的文件,并将生成的文件发送给接收设备,接收设备在接收到该设定类型的文件后,根据该文件中的更新操作信息对各数据库表执行更新操作,若出现数据更新异常情况则进行数据回滚即撤销对所有数据库表的更新操作。采用本发明,可以避免数据同步过程中的数据不一致的问题。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种数据同步方法、系统和设备。
背景技术
处于不同网络间的系统数据在逻辑上互相有联系时,需要在不同网络间进行数据同步,数据同步一般采用数据库表数据同步的方法。当数据库表数据同步发生在处于相同网段的数据库之间时,数据库之间可以进行通信,这时就可以利用数据库自身所带的同步机制进行数据库数据同步。通常情况下也是这样实现的。而当两个数据库处于不同网段时,利用数据库自身的同步机制进行数据同步就很难实现了。
通常情况下,处于不同网段的数据库之间的数据同步可以采用以下方法:一端数据库服务器利用自身机制定时将更新的数据导出并形成结构化查询语言(StructuredQuery Language,SQL)文件,然后通过一定的方式将SQL文件传输到另一端数据库服务器上,另一端数据库服务器通过一定机制执行SQL文件,从而将更新的数据同步到本端数据库中。
上述定时生成SQL文件、通过SQL文件实现数据同步的办法局限性比较大,主要体现在以下两点:
第一,一端数据库服务器在定时将更新的数据导出并形成SQL文件时,是针对一段时间内发生了数据更新的各个数据库表,分别生成一个SQL文件,然后将生成的各SQL文件发送给另一端数据库服务器;另一端数据库服务器在接收到各SQL文件后,分别解析执行每个SQL文件,若该过程中发生了SQL文件的解析执行错误,就会出现解析执行错误的SQL文件对应的数据库表与其他解析执行成功的SQL文件对应的数据库表中的关联数据不一致;比如,用户A通过一端数据库服务器修改了登录信息,数据库表1~数据库表3中的用户A的登录信息相应进行了更新,一端数据库服务器针对数据库表1生成SQL文件1、针对数据库表2生成SQL文件2、针对数据库表3生成SQL文件3,然后将生成的SQL文件1~SQL文件3发送给另一端数据库服务器;另一端数据库服务器在接收到SQL文件1~SQL文件3后,分别解析执行SQL文件1~SQL文件3,若该过程中SQL文件1的解析执行错误,就会造成另一端数据库中数据库表1中用户A的登录信息与数据库表2和数据库表3中用户A的登录信息不一致。
第二,SQL文件在两个数据库服务器之间的传输需要依靠其它的硬件和/或软件来实现,对第三方硬件和/或软件的依赖性较大。
发明内容
本发明实施例提供一种数据同步方法、系统和设备,用于避免数据同步过程中的数据不一致的问题。
一种数据同步方法,该方法包括:
发送设备在监听到数据更新操作时,在对所述数据更新操作所涉及的各数据库表进行成功更新后生成包含对各数据库表的更新操作信息的设定类型的文件,将生成的文件发送给接收设备;
接收设备接收到所述文件后,根据该文件中的更新操作信息对各数据库表执行更新操作,其中若出现数据更新异常情况则撤销对所有数据库表的更新操作。
一种数据同步系统,该系统包括:
发送设备,用于在监听到数据更新操作时,在对所述数据更新操作所涉及的各数据库表进行成功更新后生成包含对各数据库表的更新操作信息的设定类型的文件,将所述文件发送给接收设备;
接收设备,用于在接收到所述文件后,根据该文件中的更新操作信息对各数据库表执行更新操作,其中若出现数据更新异常情况则撤销对所有数据库表的更新操作。
一种发送设备,该设备包括:
处理单元,用于在监听到数据更新操作时,在对所述数据更新操作所涉及的各数据库表进行成功更新后生成包含对各数据库表的更新操作信息的设定类型的文件;
发送单元,用于将所述文件发送给接收设备。
一种接收设备,该接收设备包括:
接收单元,用于接收发送设备发送的设定类型的文件,该文件中包含发送设备在监听到数据更新操作时在对所述数据更新操作所涉及的各数据库表进行成功更新后的各数据库表的更新操作信息;
更新单元,用于根据该文件中的更新操作信息对各数据库表执行更新操作,其中若出现数据更新异常情况则撤销对所有数据库表的更新操作。
本发明实施例提供的方案中,发送设备在监听到数据更新操作时,在对该数据更新操作所涉及的各数据库表进行成功更新后生成包含对各数据库表的更新操作信息的设定类型的文件,并将生成的文件发送给接收设备,接收设备在接收到该设定类型的文件后,根据该文件中的更新操作信息对各数据库表执行更新操作,若出现数据更新异常情况则进行数据回滚即撤销对所有数据库表的更新操作。可见,本方案中,发送设备采用事务控制的方法,在每次监听到数据更新操作时将本次数据更新操作所涉及的各数据库表的更新操作信息放置在一个文件中发送给接收设备,接收设备就可以根据该文件中的更新操作信息对各数据库表执行更新操作,若出现数据更新异常情况则进行数据回滚即撤销对所有数据库表的更新操作,从而避免了现有技术中发送设备针对一段时间内数据发生更新的各数据库表分别生成一个SQL文件并发送给接收设备,接收设备分别解析执行各SQL文件,在发生SQL文件的解析执行错误时所导致的解析执行错误的SQL文件对应的数据库表与其他解析执行成功的SQL文件对应的数据库表中的关联数据不一致的情况。
附图说明
图1A为本发明实施例提供的发送设备与接收设备之间数据同步方法流程示意图;
图1B为本发明实施例中发送设备与接收设备的具体交互流程示意图;
图2A为本发明实施例提供的发送设备侧的数据同步方法流程示意图;
图2B为本发明实施例中发送设备的业务模块的执行流程示意图;
图2C为本发明实施例中发送设备的同步模块的执行流程示意图;
图3A为本发明实施例提供的接收设备侧的数据同步方法流程示意图;
图3B为本发明实施例中接收设备的同步模块的执行流程示意图;
图4为本发明实施例提供的系统结构示意图;
图5为本发明实施例提供的发送设备结构示意图;
图6为本发明实施例提供的接收设备结构示意图。
具体实施方式
为了避免数据同步过程中的数据不一致的问题,本发明实施例提供一种数据同步方法。本方法中,发送设备在每次监听到数据更新操作时,都生成包含对本次数据更新操作所涉及的各数据库表的更新操作信息的文件,并将生成的文件发送给接收设备,接收设备在接收到该文件后,根据该文件中的更新操作信息对各数据库表执行更新操作,若出现数据更新异常情况则进行数据回滚即撤销对所有数据库表的更新操作。
参见图1A,本发明实施例提供的发送设备和接收设备之间的数据同步方法,包括以下步骤:
步骤10:发送设备在监听到数据更新操作时,在对该数据更新操作所涉及的各数据库表进行成功更新后生成包含对各数据库表的更新操作信息的设定类型的文件,将生成的文件发送给接收设备;
这里,数据更新操作可以是插入数据、删除数据、修改数据等操作。文件中的更新操作信息可以包括操作类型标识,例如插入、删除、更新等,在操作类型标识为插入时还需要包括插入的数据信息以及插入数据的位置信息,在操作类型标识为删除时还需要包括删除的数据信息以及删除数据库的位置信息,在操作类型标识为更新时还需要包括更新后的数据信息、更新数据的位置信息等。
步骤11:接收设备接收到来自发送设备的文件后,根据该文件中的更新操作信息对各数据库表执行更新操作,其中若出现数据更新异常情况则撤销对所有数据库表的更新操作。
较佳的,步骤10中,在该数据更新操作所涉及的各数据库表进行更新的过程中,若至少一个数据库表的更新出现异常情况,则撤销对所有数据库表的更新操作,不生成该数据更新操作的设定类型的文件,从而避免发送端的多个数据库表的关联数据不一致以及数据同步后接收端的多个数据库表的关联数据不一致的问题。
较佳的,步骤10中,在生成包含对各数据库表的更新操作信息的设定类型的文件之后、且将该文件发送给接收设备之前,将生成的文件添加到源文件目录下;
相应的,发送设备将生成的文件发送给接收设备的具体实现可以为:发送设备定时扫描源文件目录下的文件;在当前扫描到的文件属于设定类型时,将当前扫描到的文件发送给接收设备,并更改当前扫描到的文件的类型;在当前扫描到的文件不属于设定类型时,确定当前扫描到的文件的最后发送时间与当前时间的时间间隔是否大于设定值,在确定为是时,将当前扫描到的文件的类型更改为设定类型后发送给接收设备,并再次更改当前扫描到的文件的类型;
相应的,在接收设备接收到来自发送设备的文件之后,接收设备将接收到的文件添加到目标文件目录下;定时扫描目标文件目录下的文件,在扫描到属于设定类型的文件时,向发送设备发送对应当前扫描到的文件的应答信息;发送设备在接收到该应答信息后,在源文件目录下删除该文件。
上述方案中,可以通过对文件重命名来更改文件的类型。比如,可以将文件重命名为:原文件名+当前时间信息(比如当前时间绝对秒数),这样,可以根据文件名称确定文件的最后发送时间。在确定文件的最后发送时间与当前时间的时间间隔是否大于设定值时,该设定值表示了多长时间对文件进行一次重发。
上述方案中,发送设备在每次向接收设备发送设定类型的文件后,都要将更改该文件的类型,若在一定时间内接收到了该文件对应的应答信息,则在源文件目录下删除该文件,若在一定时间内未收到该文件对应的应答信息,则该文件被重复发送,从而避免了文件的漏发。
较佳的,步骤11中,接收端根据该文件中的更新操作信息对各数据库表执行更新操作,其中若出现数据更新异常情况则撤销对所有数据库表的更新操作,具体实现可以如下:
接收设备在扫描到属于设定类型的文件时,解析该文件,根据得到的更新操作信息确定数据操作类型,根据该数据操作类型生成SQL语句,连接本地数据库执行该SQL语句以实现对各数据库表的更新操作;若更新操作成功,则将该文件删除;若出现数据更新异常情况则撤销对所有数据库表的更新操作,并更改该文件的类型;
接收设备在扫描到不属于设定类型的文件时,确定该文件的最后解析时间与当前时间的时间间隔是否大于设定值,在确定为是时,将该文件的类型更改为设定类型。
上述方案中,可以通过对文件重命名来更改文件的类型。比如,可以将文件重命名为:原文件名+当前时间信息(比如当前时间绝对秒数),这样,可以根据文件名称确定文件的最后解析时间。在确定文件的最后解析时间与当前时间的时间间隔是否大于设定值时,该设定值表示了多长时间对文件进行一次重解析。
上述方案中,接收设备在每次出现数据更新异常情况时撤销对所有数据库表的更新操作,并更改文件的类型,并在一定时间后进行重解析和数据更新操作,从而保证了数据同步的可靠性。
进一步的,在发送设备监听到数据更新操作之前,发送设备在启动时生成包含各数据库表中初始化数据的设定类型的初始化文件,将该初始化文件发送给接收设备;接收设备将该初始化文件中的初始化数据保存在本地数据库的数据库表中。
具体的,本方法中的设定类型的文件可以为可扩展标记语言(Extensible MarkupLanguage,XML)文件。当然,这里并不局限于该类型的文件,还可以是PROPERTY类型文件,任何能够携带更新操作信息的文件均在本发明的保护范围内。
具体的,本方法中发送设备可以通过与接收设备预先建立的文件传输协议(FileTransfer Protocol,FTP)连接,将文件发送给接收设备。当然,这里并不局限于FTP连接,还可以是SOCKET连接等,任何不依赖第三方软件和硬件的文件传输方式均在本发明的保护范围内。
参见图1B,以设定类型的文件为XML文件、通过FTP连接传输文件为例,对发送设备与接收设备的具体交互流程进行说明:
在发送端:
步骤200:启动业务系统;
步骤201:判断是否监听到数据更新操作,若是,则到步骤202,否则,不执行任何操作;
步骤202:在对到本次数据更新操作所涉及的各数据库表进行成功更新后生成XML文件,该XML文件中包含各数据库表的更新操作信息;将生成的XML文件添加到源文件目录下;
在步骤202后存在步骤203开始的和步骤210开始的两个分支流程,其中步骤203开始的分支流程如下:
步骤203:不断扫描源文件目录下的文件;
步骤204:判断当前扫描到的文件是否为XML文件,若是,则到步骤211,否则,到步骤205;
步骤205:根据当前扫描到的文件的名称得到该文件的最后发送时间;
步骤206:判断最后发送时间是否超过最大时间间隔,即判断最后发送时间与当前时间的时间间隔是否大于设定值,若是,则到步骤207,否则,返回步骤203;
步骤207:将当前扫描到的文件进行重命名以使该文件更改为XML类型,到步骤211;
步骤208:将XML文件通过与接收端预先建立的FTP连接发送到接收端;
步骤209:将该XML文件进行重命名以使该文件的类型不为XML类型,并且重命名后的文件名称中包含当前的时间信息。
步骤202后步骤210开始的分支流程如下:
步骤210:监听来自接收端的应答信息;
步骤211:判断是否接收到应答信息,若是,则到步骤210,否则返回步骤208;
步骤212:根据应答信息在源文件目录下删除对应的XML文件。
在接收端:
步骤300:接收来自发送端的XML文件;
步骤301:不断扫描目标文件目录;
步骤302:判断当前扫描到的文件是否为XML文件,若是,则到步骤307,否则,到步骤303;
步骤303:根据当前扫描到的文件的名称得到该文件的最后解析时间;
步骤304:判断最后解析时间是否超过最大时间间隔,即判断最后解析时间与当前时间的时间间隔是否大于设定值,若是,则到步骤305,否则,返回步骤301;
步骤305:将当前扫描到的文件进行重命名以使该文件更改为XML类型;
步骤306:解析XML文件,根据得到的更新操作信息确定数据操作类型,根据该数据操作类型生成SQL语句,连接本地数据库执行该SQL语句以实现对各数据库表的更新操作;
步骤307:判断对各数据库表的更新操作是否成功执行,若是,则到步骤308,否则,到步骤309;
步骤308:删除当前XML文件,并返回步骤301;
步骤309:将当前XML文件进行重命名以使该文件的类型不为XML类型,并且重命名后的文件名称中包含当前的时间信息,并返回步骤301;
步骤310:向发送端发送当前扫描到的XML文件对应的应答信息,并到步骤306。
参见图2A,本发明实施例提供的发送设备侧的数据同步方法,包括以下步骤:
步骤20:发送设备在监听到数据更新操作时,对该数据更新操作所涉及的各数据库表进行成功更新后生成包含对各数据库表的更新操作信息的设定类型的文件;
步骤21:发送设备将生成的文件发送给接收设备,以使接收设备根据该文件中的更新操作信息对各数据库表执行更新操作,其中若出现数据更新异常情况则撤销对所有数据库表的更新操作。
较佳的,步骤20中,在该数据更新操作所涉及的各数据库表进行更新的过程中,若至少一个数据库表的更新出现异常情况,则撤销对所有数据库表的更新操作。
较佳的,步骤20中,在生成包含对各数据库表的更新操作信息的设定类型的文件之后、且将该文件发送给接收设备之前,将生成的文件添加到源文件目录下;
相应的,发送端将生成的文件发送给接收设备的具体实现可以为:发送设备定时扫描源文件目录下的文件;在当前扫描到的文件属于设定类型时,将当前扫描到的文件发送给接收设备,并更改当前扫描到的文件的类型;在当前扫描到的文件不属于设定类型时,确定当前扫描到的文件的最后发送时间与当前时间的时间间隔是否大于设定值,在确定为是时,将当前扫描到的文件的类型更改为设定类型后发送给接收设备,并再次更改当前扫描到的文件的类型;
发送设备在接收来自接收设备的文件的应答信息后,在源文件目录下删除该文件。
进一步的,在发送设备监听到数据更新操作之前,发送设备在启动时生成包含各数据库表中初始化数据的设定类型的初始化文件,将该初始化文件发送给接收设备,以使接收设备将该初始化文件中的初始化数据保存在本地数据库中。
具体的,本方法中的设定类型的文件可以为XML文件。
具体的,本方法中发送设备可以通过与接收设备预先建立的FTP连接,将文件发送给接收设备。
在实施中,发送设备中可以包括业务模块和同步模块,业务模块和同步模块通过交互完成发送端的数据同步操作,业务模块和同步模块具体可以采用JAVA程序实现。其中:
参见图2B,以设定类型的文件为XML文件、通过FTP连接传输文件为例,发送设备的业务模块的执行流程具体如下:
步骤401:启动业务模块;
步骤402:生成包含各数据库表中初始化数据的设定类型的XML文件;将该XML文件添加到源文件目录下,并调用同步模块;
步骤403:监听数据更新操作;
步骤404:判断是否监听到对数据库的数据更新操作,若是,则到步骤405,否则,返回步骤403;
步骤405:在对当前数据更新操作所涉及的各数据库表进行成功更新后生成包含对各数据库表的更新操作信息的XML文件;将该XML文件添加到源文件目录下,并调用同步模块。
参见图2C,以设定类型的文件为XML文件、通过FTP连接传输文件为例,发送设备的同步模块的执行流程具体如下:
步骤501:不断扫描源文件目录下的文件;
步骤502:判断是否扫描到文件,若是,则到步骤503,否则,到步骤501;
步骤503:判断当前扫描到的文件是否为XML文件,若是,则到步骤504,否则,到步骤506;
步骤504:调用FTP服务将XML文件通过与接收端预先建立的FTP连接发送到接收端;
步骤505:将该XML文件进行重命名以使该文件的类型不为XML类型,并且重命名后的文件名称中包含当前的时间信息;返回步骤501;
步骤506:根据当前扫描到的文件的名称得到该文件的最后发送时间;
步骤507:判断最后发送时间是否超过最大时间间隔,即判断最后发送时间与当前时间的时间间隔是否大于设定值,若是,则到步骤508,否则,返回步骤501;
步骤508:将当前扫描到的文件进行重命名以使该文件更改为XML类型,到步骤504。
参见图3A,本发明实施例提供的接收设备侧的数据同步方法,包括以下步骤:
步骤30:接收设备接收发送设备发送的设定类型的文件,该文件中包含发送设备在监听到数据更新操作时在对该数据更新操作所涉及的各数据库表进行成功更新后的各数据库表的更新操作信息;
步骤31:接收设备根据接收到的文件中的更新操作信息对各数据库表执行更新操作,其中若出现数据更新异常情况则撤销对所有数据库表的更新操作。
较佳的,步骤30中,在接收设备接收到来自发送设备的文件之后,接收设备将接收到的文件添加到目标文件目录下;定时扫描目标文件目录下的文件,在扫描到属于设定类型的文件时,向发送设备发送对应当前扫描到的文件的应答信息,以使发送设备在接收到该应答信息后,在源文件目录下删除该文件。
较佳的,步骤31中,接收设备根据该文件中的更新操作信息对各数据库表执行更新操作,其中若出现数据更新异常情况则撤销对所有数据库表的更新操作,具体实现可以如下:
接收设备在扫描到属于设定类型的文件时,解析该文件,根据得到的更新操作信息确定数据操作类型,根据该数据操作类型生成SQL语句,连接本地数据库执行该SQL语句以实现对各数据库表的更新操作;若更新操作成功,则将该文件删除;若出现数据更新异常情况则撤销对所有数据库表的更新操作,并更改该文件的类型;
接收设备在扫描到不属于设定类型的文件时,确定该文件的最后解析时间与当前时间的时间间隔是否大于设定值,在确定为是时,将该文件的类型更改为设定类型。
进一步的,接收设备接收发送设备启动时发送的设定类型的初始化文件,该初始化文件中包含发送设备在启动时各数据库表中的初始化数据;将该初始化文件中的初始化数据保存在本地数据库中。
具体的,本方法中的设定类型的文件可以为XML文件。
具体的,本方法中接收设备可以通过与发送设备预先建立的FTP连接接收文件。
接收设备的数据同步操作具体可以由同步模块执行,同步模块具体可以采用JAVA程序实现。参见图3B,以设定类型的文件为XML文件、通过FTP连接传输文件为例,对接收设备的同步模块的执行流程进行说明:
步骤601:不断扫描目标文件目录;
步骤602:判断是否扫描到文件,若是,则到步骤603,否则,返回步骤601;
步骤603:判断当前扫描到的文件是否为XML文件,若是,则到步骤604,否则,到步骤607;
步骤604:解析XML文件,根据得到的更新操作信息确定数据操作类型,根据该数据操作类型生成SQL语句,连接本地数据库执行该SQL语句以实现对各数据库表的更新操作;
步骤605:判断对各数据库表的更新操作是否成功执行,若是,则到步骤606,否则,到步骤610;
步骤606:删除当前XML文件,并返回步骤601;
步骤607:根据当前扫描到的文件的名称得到该文件的最后解析时间;
步骤608:判断最后解析时间是否超过最大时间间隔,即判断最后解析时间与当前时间的时间间隔是否大于设定值,若是,则到步骤609,否则,返回步骤601;
步骤609:将当前扫描到的文件进行重命名以使该文件更改为XML类型,并到步骤604;
步骤610:将当前XML文件进行重命名以使该文件的类型不为XML类型,并且重命名后的文件名称中包含当前的时间信息,并返回步骤601。
上述各实施例中,发送设备对操作生成的业务数据进行实时同步,在设备启动时业务数据同步程序就已经开始。数据库表中初始化的数据,在设备启动的时候就一次性的生成XML文件,进行同步,以后不再允许手动修改数据库表。业务模块的同步可以通过JAVA程序生成数据、不断的扫描,利用FTP连接传输数据。接收端的同步模块通过JAVA程序解析数据、入库。仅用了JAVA程序和FTP连接来解析和传输数据,避免了再依赖于第三方软件和/或硬件传输的难题,并且数据传输采用应答的方式,避免了数据重复传输或数据传输丢失的问题。相关的数据库操作采用事务进行控制,保证了两边数据的一致性。
参见图4,本发明实施例提供一种数据同步系统,该系统包括:
发送设备40,用于在监听到数据更新操作时,在对所述数据更新操作所涉及的各数据库表进行成功更新后生成包含对各数据库表的更新操作信息的设定类型的文件,将所述文件发送给接收设备;
接收设备41,用于在接收到所述文件后,根据该文件中的更新操作信息对各数据库表执行更新操作,其中若出现数据更新异常情况则撤销对所有数据库表的更新操作。
进一步的,所述发送设备40还用于:
在对所述数据更新操作所涉及的至少一个数据库表的更新出现异常情况时,撤销对所有数据库表的更新操作。
进一步的,所述发送设备40具体用于:在生成包含对各数据库表的更新操作信息的设定类型的文件之后、且将所述文件发送给接收设备之前,将生成的所述文件添加到源文件目录下;定时扫描所述源文件目录下的文件;在当前扫描到的文件属于所述设定类型时,将当前扫描到的文件发送给接收设备,并更改当前扫描到的文件的类型;在当前扫描到的文件不属于所述设定类型时,确定当前扫描到的文件的最后发送时间与当前时间的时间间隔是否大于设定值,在确定为是时,将当前扫描到的文件的类型更改为所述设定类型后发送给接收设备,并再次更改当前扫描到的文件的类型;
所述接收设备41具体用于:在接收到所述文件之后,将接收到的文件添加到目标文件目录下;定时扫描所述目标文件目录下的文件,在扫描到属于所述设定类型的文件时,向发送设备发送对应当前扫描到的文件的应答信息;发送设备在接收到该应答信息后,在所述源文件目录下删除该文件。
进一步的,所述接收设备41具体用于:在扫描到属于所述设定类型的文件时,解析该文件,根据得到的更新操作信息确定数据操作类型,根据该数据操作类型生成SQL语句,连接本地数据库执行该SQL语句以实现对各数据库表的更新操作;若更新操作成功,则将该文件删除;若出现数据更新异常情况则撤销对所有数据库表的更新操作,并更改该文件的类型;
在扫描到不属于所述设定类型的文件时,确定该文件的最后解析时间与当前时间的时间间隔是否大于设定值,在确定为是时,将该文件的类型更改为所述设定类型。
进一步的,所述发送设备40还用于:
在监听到数据更新操作之前,启动时生成包含各数据库表中初始化数据的设定类型的初始化文件,将该初始化文件发送给接收设备;
所述接收设备41还用于:将该初始化文件中的初始化数据保存在本地数据库中。
参见图5,本发明实施例提供一种发送设备,该设备包括:
处理单元50,用于在监听到数据更新操作时,在对所述数据更新操作所涉及的各数据库表进行成功更新后生成包含对各数据库表的更新操作信息的设定类型的文件;
发送单元51,用于将所述文件发送给接收设备。
进一步的,所述处理单元50还用于:
在对所述数据更新操作所涉及的至少一个数据库表的更新出现异常情况时,撤销对所有数据库表的更新操作。
进一步的,该发送设备还包括:
扫描单元52,用于在所述处理单元生成包含对各数据库表的更新操作信息的设定类型的文件之后、且所述发送单元将所述文件发送给接收设备之前,将生成的所述文件添加到源文件目录下;定时扫描所述源文件目录下的文件;
所述发送单元51具体用于:在所述扫描单元当前扫描到的文件属于所述设定类型时,将当前扫描到的文件发送给接收设备,并更改当前扫描到的文件的类型;在当前扫描到的文件不属于所述设定类型时,确定当前扫描到的文件的最后发送时间与当前时间的时间间隔是否大于设定值,在确定为是时,将当前扫描到的文件的类型更改为所述设定类型后发送给接收设备,并再次更改当前扫描到的文件的类型;
所述处理单元50还用于:在接收到接收设备发送的属于所述设定类型的文件的应答信息后,在所述源文件目录下删除该文件。
进一步的,所述处理单元50还用于:
在监听到数据更新操作之前,启动时生成包含各数据库表中初始化数据的设定类型的初始化文件;
所述发送单元51还用于:将该初始化文件发送给接收设备。
参见图6,本发明实施例提供一种接收设备,该接收设备包括:
接收单元60,用于接收发送设备发送的设定类型的文件,该文件中包含发送设备在监听到数据更新操作时在对所述数据更新操作所涉及的各数据库表进行成功更新后的各数据库表的更新操作信息;
更新单元61,用于根据该文件中的更新操作信息对各数据库表执行更新操作,其中若出现数据更新异常情况则撤销对所有数据库表的更新操作。
进一步的,该接收设备还包括:
应答单元62,用于在接收到所述文件之后,将接收到的文件添加到目标文件目录下;定时扫描所述目标文件目录下的文件,在扫描到属于所述设定类型的文件时,向发送设备发送对应当前扫描到的文件的应答信息。
进一步的,所述更新单元61具体用于:
在扫描到属于所述设定类型的文件时,解析该文件,根据得到的更新操作
信息确定数据操作类型,根据该数据操作类型生成SQL语句,连接本地数据库执行该SQL语句以实现对各数据库表的更新操作;若更新操作成功,则将该文件删除;若出现数据更新异常情况则撤销对所有数据库表的更新操作,并更改该文件的类型;
在扫描到不属于所述设定类型的文件时,确定该文件的最后解析时间与当前时间的时间间隔是否大于设定值,在确定为是时,将该文件的类型更改为所述设定类型。
进一步的,所述接收单元60还用于:
接收发送设备发送的设定类型的初始化文件,该初始化文件中包含发送设备在启动时各数据库表中的初始化数据;
所述更新单元61还用于:将该初始化文件中的初始化数据保存在本地数据库中。
综上,本发明的有益效果包括:
本发明实施例提供的方案中,发送设备在监听到数据更新操作时,在对该数据更新操作所涉及的各数据库表进行成功更新后生成包含对各数据库表的更新操作信息的设定类型的文件,并将生成的文件发送给接收设备,接收设备在接收到该设定类型的文件后,根据该文件中的更新操作信息对各数据库表执行更新操作,若出现数据更新异常情况则进行数据回滚即撤销对所有数据库表的更新操作。可见,本方案中,发送设备采用事务控制的方法,在每次监听到数据更新操作时将本次数据更新操作所涉及的各数据库表的更新操作信息放置在一个文件中发送给接收设备,接收设备就可以根据该文件中的更新操作信息对各数据库表执行更新操作,若出现数据更新异常情况则进行数据回滚即撤销对所有数据库表的更新操作,从而避免了现有技术中发送设备针对一段时间内数据发生更新的各数据库表分别生成一个SQL文件并发送给接收设备,接收设备分别解析执行各SQL文件,在发生SQL文件的解析执行错误时所导致的解析执行错误的SQL文件对应的数据库表与其他解析执行成功的SQL文件对应的数据库表中的关联数据不一致的情况。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种数据同步方法,其特征在于,该方法包括:
发送设备在监听到数据更新操作时,在对所述数据更新操作所涉及的各数据库表进行成功更新后生成包含对各数据库表的更新操作信息的设定类型的文件,将生成的文件发送给接收设备;
接收设备接收到所述文件后,根据该文件中的更新操作信息对各数据库表执行更新操作,其中若出现数据更新异常情况则撤销对所有数据库表的更新操作;
其中,在生成包含对各数据库表的更新操作信息的设定类型的文件之后、且将所述文件发送给接收设备之前,进一步包括:将生成的所述文件添加到源文件目录下;
所述将所述文件发送给接收设备,具体包括:发送设备定时扫描所述源文件目录下的文件;在当前扫描到的文件属于所述设定类型时,将当前扫描到的文件发送给接收设备,并更改当前扫描到的文件的类型;在当前扫描到的文件不属于所述设定类型时,确定当前扫描到的文件的最后发送时间与当前时间的时间间隔是否大于设定值,在确定为是时,将当前扫描到的文件的类型更改为所述设定类型后发送给接收设备,并再次更改当前扫描到的文件的类型;
在接收设备接收到所述文件之后,进一步包括:接收设备将接收到的文件添加到目标文件目录下;定时扫描所述目标文件目录下的文件,在扫描到属于所述设定类型的文件时,向发送设备发送对应当前扫描到的文件的应答信息;发送设备在接收到该应答信息后,在所述源文件目录下删除该文件。
2.如权利要求1所述的方法,其特征在于,在对所述数据更新操作所涉及的至少一个数据库表的更新出现异常情况时,进一步包括:
撤销对所有数据库表的更新操作。
3.如权利要求1所述的方法,其特征在于,所述根据该文件中的更新操作信息对各数据库表执行更新操作,其中若出现数据更新异常情况则撤销对所有数据库表的更新操作,具体包括:
接收设备在扫描到属于所述设定类型的文件时,解析该文件,根据得到的更新操作信息确定数据操作类型,根据该数据操作类型生成结构化查询语言SQL语句,连接本地数据库执行该SQL语句以实现对各数据库表的更新操作;若更新操作成功,则将该文件删除;若出现数据更新异常情况则撤销对所有数据库表的更新操作,并更改该文件的类型;
接收设备在扫描到不属于所述设定类型的文件时,确定该文件的最后解析时间与当前时间的时间间隔是否大于设定值,在确定为是时,将该文件的类型更改为所述设定类型。
4.如权利要求1所述的方法,其特征在于,在发送设备监听到数据更新操作之前,进一步包括:
发送设备启动时生成包含各数据库表中初始化数据的设定类型的初始化文件,将该初始化文件发送给接收设备;接收设备将该初始化文件中的初始化数据保存在本地数据库中。
5.如权利要求1-3中任一所述的方法,其特征在于,所述文件为可扩展标记语言XML文件。
6.如权利要求1-3中任一所述的方法,其特征在于,发送设备通过与接收设备预先建立的文件传输协议FTP连接,将所述文件发送给接收设备。
7.一种数据同步系统,其特征在于,该系统包括:
发送设备,用于在监听到数据更新操作时,在对所述数据更新操作所涉及的各数据库表进行成功更新后生成包含对各数据库表的更新操作信息的设定类型的文件,将所述文件发送给接收设备;
接收设备,用于在接收到所述文件后,根据该文件中的更新操作信息对各数据库表执行更新操作,其中若出现数据更新异常情况则撤销对所有数据库表的更新操作;
其中,所述发送设备具体用于:在生成包含对各数据库表的更新操作信息的设定类型的文件之后、且将所述文件发送给接收设备之前,将生成的所述文件添加到源文件目录下;定时扫描所述源文件目录下的文件;在当前扫描到的文件属于所述设定类型时,将当前扫描到的文件发送给接收设备,并更改当前扫描到的文件的类型;在当前扫描到的文件不属于所述设定类型时,确定当前扫描到的文件的最后发送时间与当前时间的时间间隔是否大于设定值,在确定为是时,将当前扫描到的文件的类型更改为所述设定类型后发送给接收设备,并再次更改当前扫描到的文件的类型;
所述接收设备具体用于:在接收到所述文件之后,将接收到的文件添加到目标文件目录下;定时扫描所述目标文件目录下的文件,在扫描到属于所述设定类型的文件时,向发送设备发送对应当前扫描到的文件的应答信息;发送设备在接收到该应答信息后,在所述源文件目录下删除该文件。
8.一种发送设备,其特征在于,该设备包括:
处理单元,用于在监听到数据更新操作时,在对所述数据更新操作所涉及的各数据库表进行成功更新后生成包含对各数据库表的更新操作信息的设定类型的文件;
发送单元,用于将所述文件发送给接收设备,以使所述接收设备根据所述文件中的更新操作信息对各数据库表执行更新操作,其中若出现数据更新异常情况则撤销对所有数据库表的更新操作;
扫描单元,用于在所述处理单元生成包含对各数据库表的更新操作信息的设定类型的文件之后、且所述发送单元将所述文件发送给接收设备之前,将生成的所述文件添加到源文件目录下;定时扫描所述源文件目录下的文件;
所述发送单元具体用于:在所述扫描单元当前扫描到的文件属于所述设定类型时,将当前扫描到的文件发送给接收设备,并更改当前扫描到的文件的类型;在当前扫描到的文件不属于所述设定类型时,确定当前扫描到的文件的最后发送时间与当前时间的时间间隔是否大于设定值,在确定为是时,将当前扫描到的文件的类型更改为所述设定类型后发送给接收设备,并再次更改当前扫描到的文件的类型;
所述处理单元还用于:在接收到接收设备发送的属于所述设定类型的文件的应答信息后,在所述源文件目录下删除该文件。
9.一种接收设备,其特征在于,该接收设备包括:
接收单元,用于接收发送设备发送的设定类型的文件,该文件中包含发送设备在监听到数据更新操作时在对所述数据更新操作所涉及的各数据库表进行成功更新后的各数据库表的更新操作信息;
更新单元,用于根据该文件中的更新操作信息对各数据库表执行更新操作,其中若出现数据更新异常情况则撤销对所有数据库表的更新操作;
应答单元,用于在接收到所述文件之后,将接收到的文件添加到目标文件目录下;定时扫描所述目标文件目录下的文件,在扫描到属于所述设定类型的文件时,向发送设备发送对应当前扫描到的文件的应答信息,以使所述发送设备在接收到所述应答信息后,在源文件目录下删除所述文件;
所述更新单元还用于在扫描到不属于所述设定类型的文件时,确定所述文件的最后解析时间与当前时间的时间间隔是否大于设定值,在确定为是时,将所述文件的类型更改为所述设定类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310533523.8A CN103544303B (zh) | 2013-10-31 | 2013-10-31 | 一种数据同步方法、系统和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310533523.8A CN103544303B (zh) | 2013-10-31 | 2013-10-31 | 一种数据同步方法、系统和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103544303A CN103544303A (zh) | 2014-01-29 |
CN103544303B true CN103544303B (zh) | 2017-06-20 |
Family
ID=49967755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310533523.8A Expired - Fee Related CN103544303B (zh) | 2013-10-31 | 2013-10-31 | 一种数据同步方法、系统和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103544303B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050282B (zh) * | 2014-06-27 | 2017-08-01 | 北京思特奇信息技术股份有限公司 | 资源文件更新方法及装置 |
CN105471948B (zh) * | 2014-09-05 | 2019-02-19 | 阿里巴巴集团控股有限公司 | 系统间同步业务数据的方法及装置 |
CN106649378B (zh) * | 2015-11-02 | 2020-07-14 | 北大方正集团有限公司 | 一种数据同步方法及装置 |
US10235406B2 (en) * | 2015-12-15 | 2019-03-19 | Microsoft Technology Licensing, Llc | Reminder processing of structured data records among partitioned data storage spaces |
US11226985B2 (en) | 2015-12-15 | 2022-01-18 | Microsoft Technology Licensing, Llc | Replication of structured data records among partitioned data storage spaces |
CN105554017B (zh) * | 2015-12-31 | 2019-06-04 | 北京致远互联软件股份有限公司 | 监听方法及装置 |
US10749954B2 (en) | 2016-12-20 | 2020-08-18 | Futurewei Technologies, Inc. | Cross-data center hierarchical consensus scheme with geo-aware leader election |
CN107784055A (zh) * | 2017-02-17 | 2018-03-09 | 平安科技(深圳)有限公司 | 基于非关系型数据库的事务处理方法和装置 |
CN108509455B (zh) * | 2017-02-28 | 2021-12-24 | 百度在线网络技术(北京)有限公司 | 数据表处理方法和装置 |
CN108737562A (zh) * | 2018-06-07 | 2018-11-02 | 山东中创软件商用中间件股份有限公司 | 一种文件传输方法及相关装置 |
CN109830106A (zh) * | 2019-03-15 | 2019-05-31 | 天津自贸试验区蓝高科技有限公司 | 一种快速采集车辆外观信息的方法 |
CN110597828A (zh) * | 2019-10-14 | 2019-12-20 | 浙江诺诺网络科技有限公司 | 一种数据库变更方法、装置、设备及存储介质 |
CN112116467B (zh) * | 2020-06-16 | 2024-06-04 | 上海金融期货信息技术有限公司 | 一种异构柜台并行运行方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411598A (zh) * | 2011-07-29 | 2012-04-11 | 株洲南车时代电气股份有限公司 | 一种实现数据一致性的方法及其系统 |
CN102915377A (zh) * | 2012-11-14 | 2013-02-06 | 深圳市宏电技术股份有限公司 | 数据库转换或同步方法及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6751634B1 (en) * | 1999-08-26 | 2004-06-15 | Microsoft Corporation | Method and system for detecting object inconsistency in a loosely consistent replicated directory service |
CN1725658A (zh) * | 2004-07-21 | 2006-01-25 | 中兴通讯股份有限公司 | 一种实时数据库主备同步方法 |
US8332353B2 (en) * | 2007-01-31 | 2012-12-11 | International Business Machines Corporation | Synchronization of dissimilar databases |
EP2184688A1 (en) * | 2008-11-06 | 2010-05-12 | Amadeus s.a.s | Method of integrating in real time large volumes of updates in a database |
CN103294724B (zh) * | 2012-03-05 | 2018-11-23 | 百度在线网络技术(北京)有限公司 | 一种数据库结构的管理方法及系统 |
US9201911B2 (en) * | 2012-03-29 | 2015-12-01 | International Business Machines Corporation | Managing test data in large scale performance environment |
CN102857949B (zh) * | 2012-09-14 | 2018-11-20 | 中兴通讯股份有限公司 | 一种规划数据一致性保证的方法和装置 |
CN103150348B (zh) * | 2013-02-07 | 2017-08-25 | 国家基础地理信息中心 | 一种gis数据库增量更新方法及其系统 |
-
2013
- 2013-10-31 CN CN201310533523.8A patent/CN103544303B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411598A (zh) * | 2011-07-29 | 2012-04-11 | 株洲南车时代电气股份有限公司 | 一种实现数据一致性的方法及其系统 |
CN102915377A (zh) * | 2012-11-14 | 2013-02-06 | 深圳市宏电技术股份有限公司 | 数据库转换或同步方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103544303A (zh) | 2014-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103544303B (zh) | 一种数据同步方法、系统和设备 | |
CN1906869B (zh) | 时间同步设备和方法及相关产品 | |
CN102769626B (zh) | 一种会话信息同步方法、装置以及系统 | |
CN102456052B (zh) | 一种嵌入式设备与数据库数据同步方法 | |
CN101686145A (zh) | 一种具有升级功能的设备、升级方法及系统 | |
EP1830515A1 (en) | A method for transferring the network management configuration information between the element management systems | |
JP2002141903A (ja) | ノード構成情報管理方法及び無線ネットワークシステム | |
WO2017162079A1 (zh) | 一种数据的同步方法和装置 | |
CN102769544B (zh) | 通信系统中设备业务适配层架构及业务适配层实现方法 | |
CN111241192A (zh) | 一种数据同步方法 | |
CN106412064A (zh) | 一种用电信息采集终端远程升级方法 | |
CN110502572A (zh) | 一种数据同步的方法及服务器 | |
CN108833569A (zh) | 一种数据同步方法及相关装置 | |
CN103354560A (zh) | 数据的分解同步方法及系统 | |
CN110213359A (zh) | 一种基于d2d的车联网组网数据推送系统和方法 | |
CN107592608A (zh) | 一种日程同步电子设备及用于日程同步的终端、方法 | |
CN107634975A (zh) | 一种数据同步方法、设备和系统 | |
CN113835369A (zh) | 边缘端场景管理方法、装置及系统 | |
CN115208905A (zh) | 设备信息同步方法、装置、系统、电子装置和存储介质 | |
CN105812180A (zh) | 一种网络设备配置系统及其方法 | |
WO2013083013A1 (zh) | 一种网络设备间的同步方法、网络设备及系统 | |
CN104639613A (zh) | 基于改进网络协议的移动数据同步中间件的实现方法 | |
CN101146150B (zh) | 通讯设备中自动删除数据的系统及其方法 | |
CN106453633A (zh) | 一种非稳定通信链路中多节点通信方法 | |
CN103546513B (zh) | 一种客户端页面间通信的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170620 |