著录项信息
专利名称 | 数据库同步方法及系统 |
申请号 | CN200710073887.7 | 申请日期 | 2007-04-11 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2007-09-19 | 公开/公告号 | CN101038591 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0;;;G;0;6;F;1;1;/;1;4;;;H;0;4;L;2;9;/;0;6查看分类表>
|
申请人 | 华为技术有限公司 | 申请人地址 | 广东省深圳市龙岗区坂田华为总部办公楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为技术有限公司 | 当前权利人 | 华为技术有限公司 |
发明人 | 朱湘毅 |
代理机构 | 暂无 | 代理人 | 暂无 |
摘要
本发明公开了一种数据库同步的方法,该方法中在主用服务器数据库中设置包括同步标识号和SQL语句的同步表,利用同步表实现数据库的数据同步。本发明还公开了一种数据库同步系统,包括主用服务器和备用服务器,主用服务器包括备份单元、同步表单元,备用服务器包括请求单元、获取单元和同步单元。本发明公开的方法和系统,利用同步表,在实现数据库同步,简化对服务器配置的修改,使得数据库同步可以不受操作系统和数据库系统的限制,提高数据同步的效率。
1、一种数据库同步方法,用于主用服务器数据库和备用服务器数据库 的初始同步,其特征在于,所述主用服务器数据库中设置有包括同步标识号 的同步表,该方法包括以下步骤:
备用服务器向主用服务器发送初始同步请求;
主用服务器根据接收到的所述初始同步请求,在所述同步表中更新同步 标识号,并备份所述主用服务器数据库,生成备份文件;
备用服务器获取所述更新后的同步标识号和所述备份文件,用所述备份 文件恢复备用服务器数据库。
2、根据权利要求1所述的方法,其特征在于,所述主用服务器根据接 收到的所述初始同步请求,在所述同步表中更新同步标识号的步骤包括:
主用服务器接收到所述初始同步请求后,清空同步表中的数据记录并插 入空记录,形成更新后的同步标识号。
3、根据权利要求2所述的方法,其特征在于,所述主用服务器备份主 用服务器数据库成功后,向备用服务器发送携带所述更新后的同步标识号的 备份成功消息;
所述备用服务器获取所述更新后的同步标识号的步骤为:
备用服务器从所述备份成功消息中获取并保存所述更新后的同步标识 号。
4、根据权利要求1至3任一项所述的方法,其特征在于,进一步包括 在主用服务器备份主用服务器数据库前,对主用服务器数据库加锁的步骤。
5、根据权利要求1至3任一项所述的方法,其特征在于,所述同步表 中的同步标识号采用主用服务器数据库提供的自动递增的种子属性。
6、一种数据库同步方法,用于主用服务器数据库和备用服务器数据库 的实时同步,所述主用服务器数据库中设置有包括同步标识号和SQL语句 的同步表,所述同步标识号根据数据库操作实时更新,其特征在于,该方法 包括以下步骤:
主用服务器复制需要同步的数据库操作的SQL语句到所述同步表中;
备用服务器直接连接到主用服务器数据库上,从所述同步表中获取所述 SQL语句,并用所述SQL语句访问备用服务器数据库。
7、根据权利要求6所述的方法,其特征在于,在所述主用服务器复制 需要同步的数据库操作的SQL语句到所述同步表中之前,所述方法还包括 如下步骤:
主用服务器根据数据库访问接口提供的参数,判断是否有需要实时同步 的数据库操作。
8、根据权利要求7所述的方法,其特征在于,所述备用服务器从所述 同步表中获取所述SQL语句的步骤包括:
所述备用服务器获取主用服务器数据库的用户名和密码;
根据所述获取的用户名和密码连接到主用服务器,获取同步表的所述 SQL语句。
9、一种数据库同步方法,用于主用服务器数据库和备用服务器数据库 的同步,所述主用服务器数据库中设置有包括同步标识号和SQL语句的同 步表,其特征在于,该方法包括:
A、备用服务器检查其保存的标识号是否存在于所述同步表中,如果不 存在,则执行步骤B、C、D,如果存在,则执行步骤E、F;
B、备用服务器向主用服务器发送初始同步请求;
C、主用服务器根据接收到的所述初始同步请求,在所述同步表中更新 同步标识号,备份所述主用服务器数据库,生成备份文件;
D、备用服务器获取所述更新后的同步标识号和所述备份文件,用所述 备份文件恢复备用服务器数据库;
E、主用服务器复制需要同步的数据库操作的SQL语句到所述同步表中;
F、备用服务器从所述同步表中获取所述SQL语句,并用所述SQL语 句访问备用服务器数据库。
10、根据权利要求9所述的方法,其特征在于,所述主用服务器根据接 收到的所述初始同步请求,在所述同步表中更新同步标识号的步骤包括:
主用服务器接收到所述初始同步请求后,清空同步表中的数据记录并插 入空记录,形成更新后的同步标识号;
主用服务器备份主用服务器数据库成功后,向备用服务器发送携带所述 更新后的同步标识号的备份成功消息。
11、根据权利要求9所述的方法,其特征在于,在步骤E之前还包括:
主用服务器根据数据库访问接口提供的参数,判断有需要实时同步的数 据库操作。
12、根据权利要求9所述的方法,其特征在于,所述备用服务器从所述 同步表中获取所述SQL语句的步骤包括:
备用服务器获取主用服务器数据库的用户名和密码,根据所述用户名和 密码连接到主用服务器上,获取同步表的所述SQL语句。
13、一种数据库同步系统,包括配置有主用服务器数据库的主用服务器, 以及配置有备用服务器数据库的备用服务器,其特征在于,
所述主用服务器数据库中设置有包括同步标识号和SQL语句的同步表;
所述主用服务器包括:
备份单元,用于在初始同步阶段,在收到备用服务器发送的初始同步请 求后,备份主用服务器数据库生成备份文件;
同步表单元,用于在初始同步阶段,在所述同步表中更新同步标识号, 还用于在实时同步阶段,更新所述同步表中的同步标识号,复制需要同步的 数据库操作的SQL语句到同步表中;
所述备用服务器包括:
请求单元,用于向主用服务器发送初始同步请求;
获取单元,用于在初始同步阶段,获取所述备份单元生成的备份文件, 以及同步表单元在所述同步表中更新后的同步标识号;
同步单元,用于在初始同步阶段,从所述获取单元获取所述备份文件, 并用该备份文件恢复备用服务器数据库,还用于在实时同步阶段,从所述同 步表中获取所述SQL语句,并用所述SQL语句访问备用服务器数据库。
14、根据权利要求13所述的系统,其特征在于,所述主用服务器的备 份单元进一步包括:
备份子单元,用于在收到备用服务器发送的初始同步请求后,备份主用 服务器数据库生成备份文件;
响应子单元,用于在所述备份子单元备份主用服务器数据库成功后,向 备用服务器发送备份成功消息;
所述备份成功消息携带初始同步阶段所述同步表单元在所述同步表中 更新后的同步标识号;
所述获取单元从所述备份成功消息中获取所述更新后的同步标识号,从 所述备份子单元中获取所述备份文件。
15、根据权利要求13所述的系统,其特征在于,所述主用服务器进一 步包括:
加锁子单元,用于在主用服务器备份主用服务器数据库前,对主用服务 器数据库加锁。
16、根据权利要求13所述的系统,其特征在于,该系统还包括主用服 务器中的实时同步判断单元,用于根据数据库访问接口提供的参数,判断有 需要实时同步的数据库操作时,向所述同步单元发送同步命令;
所述同步单元根据所述同步命令,从所述同步表中获取所述SQL语句, 并用所述SQL语句访问备用服务器数据库。
技术领域\n本发明涉及数据库技术,尤其涉及数据库同步的方法及系统。\n背景技术\n在电信管理网络中,每个网络单元都有一个操作维护单元(OMU, Operation & Maintenance Unit),具体可以是安装OMU软件的服务器,负责 提供该网络单元的操作维护功能。为维护网络单元的正常工作,电信运营商 对网络单元的操作维护功能可靠性要求很高,一般都在99.999%以上。因此, 为了保证OMU操作维护功能的可靠性,电信设备供应商一般采用对OMU的 双机(Dual System)备份机制。所谓双机,是由两台计算机组成的系统,其 中,与主用OMU对应的服务器是主用服务器(Active Server,以下简称AS), 对外提供服务功能;与备用OMU对应的服务器是备用服务器(Standby Server,以下简称SS),为主用服务器提供备份功能、不对外提供服务功能。 主用服务器和备用服务器在一定条件下可以发生倒换,即主用变备用、备用 变主用。两者结合,能够连续地对外提供服务功能。\n采用双机备份机制可以保证系统运作的可靠性,在主用服务器因故死机 或人为疏忽等影响,而无法对OMU进行操作维护时,备用服务器会立即取 代主用服务器的地位,继续对OMU进行操作维护。采用这种机制,大大减 少系统运作停顿的概率,无论对个人用户还是企业用户,都提供了可靠的保 障。另外,采用双机备份机制,用户数据可以传递给两部主机,获得妥善的 备份,提高了信息处理的安全性。\n要实现对网络单元的操作维护,服务器要处理大量的数据,例如配置数 据、告警数据、性能统计数据等,这些数据都存储于服务器的数据库系统中, OMU服务器上会安装数据库系统软件,提供统一的数据库访问接口。这些 存储于数据库系统中的数据随着系统的运行,是实时修改的。因此要实现双 机备份功能,必须保证主用服务器数据库系统中的数据和备用服务器数据库 系统中的数据之间的实时同步。这样才能确保主用服务器发生故障时,备用 服务器升级为主用服务器后能提供正确的操作维护功能。\n现有技术中,实现双机数据库同步有如下技术方案:\n方案一:\n利用数据库复制机制,比如SQL复制。所谓复制,是将一组数据从一个 数据源拷贝到多个数据源的技术。SQL(Structured Query Language,结构化 查询语言)复制的基本元素包括出版服务器、订阅服务器、分发服务器、出 版物、文章。源数据所在的服务器是出版服务器,负责发表数据。出版服务 器把要发表的数据的所有改变情况拷贝复制到分发服务器,分发服务器包含 有一个分发数据库,可从出版服务器接收数据的所有改变,并保存这些改变, 再把这些改变分发给订阅服务器。\n以Microsoft公司的SQL Server数据库系统为例,该系统提供了三种复制 技术,分别是快照复制、事务复制和合并复制。主备服务器之间的数据库实 时同步一般采用事务复制技术。采用事务复制需要进行如下配置步骤:\n1.配置一个数据库作为分发数据库(分发数据库可以配置在主用服务 器,也可以配置在备用服务器上),指定哪些服务器可以使用该数 据库;\n2.在主用服务器上,配置主用服务器使用的分发数据库;配置主用服 务器上允许的订阅服务器;配置主用服务器上需要发布的数据库和 数据库中需要发布的数据表和字段等;\n3.在备用服务器上,配置对发布数据库的订阅;\n4.配置各代理进程的调度和属性,有快照代理进程、分发代理进程和 日志读取代理进程等;\n上述配置过程非常复杂,容易出错且配置时间较长,如果有多个数据库, 每个数据库有多张数据表进行同步,则配置过程一般需要几分钟。同时该配 置过程对数据库的属性进行了修改,对数据库的操作将受到限制,比如配置 某数据库为发布数据库后,就不能删除该数据库了。\n上述配置成功后,主用服务器上的SQL SERVER会把各数据库中需要同 步的数据表的数据自动生成一个快照(类似于数据表的数据导出文件),该 快照信息传送到分发数据库中,分发数据库再分发到备用服务器,备用服务 器将快照中的数据导入到订阅数据库中,这样主备服务器完成了初始数据同 步。事务复制配置好之后,先完成初始同步,自动进行实时同步。主用服务 器发生数据修改时,发布数据库会把数据修改的日志信息传送到分发数据 库,分发数据库再将其分发给订阅数据库,订阅数据库根据日志信息修改数 据,保证与发布数据库同步。\n该方案的缺陷是:\n1.必须基于SQL Server数据库系统,相应的,该系统必须安装在 WINDOWS操作系统上;\n2.必须在主备服务器间配置事务复制关系,主备服务器发生倒换需要 重新配置事务复制关系。由于事务复制关系非常复杂,对数据库系 统的配置过程很复杂。\n3.发布服务器和订阅服务器完成初始数据库同步时间长。事务复制生 成和应用快照的时间与数据表的数量成正比,以数据库中需要同步 的数据表为500张计算,一般需要30分钟以上的时间才能完成初始同 步。而且订阅服务器上应用快照是一张表接一张表依次应用的,不 是一个事务里完成的。完成初始同步过程前一般不能发生主备服务 器的倒换,否则备用服务器上的数据是混乱的。这个时间对于电信 运营商难以接收;\n4.该方案对于服务器有很多限制和影响。事务复制依赖于数据库的日 志,对日志做标记,以标识已经传送到分发数据库以及未传送的日 志,以此保证数据库更改一致。如果备用服务器故障,则主用服务 器的数据库日志会不断增长,导致数据库无法运行;如果主用服务 器还原数据库,则会导致日志混乱,事务复制会出现故障。\n方案二:\n以Microsoft公司的SQL Server 2000企业版为例,该系统提供了日志传送 的功能,即不间断地从源数据库中备份事务日志,然后将它们复制并还原到 目的数据库,使目的数据库与源数据库保持同步。与事务复制相比,日志传 送稍为简单一些。日志传送保证两个数据库同步,而事务复制可以使需要同 步的数据表保持同步,不需要同步的数据表可以不进行同步。初始同步方面, SQL SERVER提供了日志传送操作的向导,在目的服务器上创建源数据库, 保证初始数据一致。\n该方案的缺陷是:\n1.必须基于Sql Server数据库系统,相应的,该系统必须安装在 WINDOWS操作系统上;\n2.日志传送的实时性较差,实时同步周期一般配置在15分钟,对于实时 性要求较高的服务器不合适;\n3.日志传送可靠性不如事务复制,对可靠性要求较高的服务器不合适。\n发明内容\n有鉴于此,本发明实施例要解决的主要问题在于,提供数据库同步的方 法和系统,可以简化对服务器配置的修改,数据库同步不受操作系统和数据 库系统的限制,提高了数据同步的效率。\n本发明的一个实施例所提供的数据库同步的方法,用于主用服务器数据 库和备用服务器数据库的初始同步,主用服务器数据库中设置有包括同步标 识号的同步表,该方法包括以下步骤:备用服务器向主用服务器发送初始同 步请求;主用服务器根据接收到的初始同步请求,在同步表中更新同步标识 号,并备份主用服务器数据库,生成备份文件;备用服务器获取更新后的同 步标识号和备份文件,用备份文件恢复备用服务器数据库。\n本发明的另一个实施例所提供的数据库同步的方法,用于主用服务器数 据库和备用服务器数据库的实时同步,主用服务器数据库中设置有包括同步 标识号和SQL语句的同步表,同步标识号根据数据库操作实时更新,该方 法包括以下步骤:主用服务器复制需要同步的数据库操作的SQL语句到同 步表中;备用服务器直接连接到主用服务器数据库上,从同步表中获取SQL 语句,并用该SQL语句访问备用服务器数据库。\n本发明的再一个实施例所提供的数据库同步的方法,用于主用服务器数 据库和备用服务器数据库的同步,主用服务器数据库中设置有包括同步标识 号和SQL语句的同步表,该方法包括:\nA、备用服务器检查其保存的标识号是否存在于同步表中,如果不存在, 则执行步骤B、C、D,如果存在,则执行步骤E、F;\nB、备用服务器向主用服务器发送初始同步请求;\nC、主用服务器根据接收到的所述初始同步请求,在同步表中更新同步 标识号,备份主用服务器数据库数据库,生成备份文件;\nD、备用服务器获取更新后的同步标识号和备份文件,用备份文件恢复 备用服务器数据库;\nE、主用服务器复制需要同步的数据库操作的SQL语句到同步表中;\nF、备用服务器从同步表中获取该SQL语句,并用该SQL语句访问备 用服务器数据库。\n本发明的再一个实施例所提供的数据库同步的系统,包括配置有主用服 务器数据库的主用服务器,以及配置有备用服务器数据库的备用服务器,主 用服务器数据库中设置有包括同步标识号和SQL语句的同步表。\n该系统的主用服务器包括:备份单元,用于在初始同步阶段,在收到备 用服务器发送的初始同步请求后,备份主用服务器数据库生成备份文件;同 步表单元,用于在初始同步阶段,在同步表中更新同步标识号,还用于在实 时同步阶段,更新同步表中的同步标识号,复制需要同步的数据库操作的 SQL语句到同步表中;\n备用服务器包括:请求单元,用于向主用服务器发送初始同步请求;获 取单元,用于在初始同步阶段,获取备份单元生成的备份文件,以及同步表 单元在同步表中更新后的同步标识号;同步单元,用于在初始同步阶段,从 获取单元获取备份文件,并用该备份文件恢复备用服务器数据库,还用于在 实时同步阶段,从同步表中获取SQL语句,并用该SQL语句访问备用服务 器数据库。\n本发明的实施例所提供的方法及系统,利用同步表中的标识号,来判断 是否需要初始同步和保证初始同步后主备服务器保持数据一致,采用备用服 务器读取主用服务器上的同步表中的SQL语句的方式,直接获取主用服务 器的数据修改。从而简化对服务器配置的修改,数据库同步不受操作系统和 数据库系统的限制,提高了数据同步的效率。\n附图说明\n图1为本发明实施例中,同步表结构示意图;\n图2为本发明第一个实施例数据库同步的方法流程图;\n图3为本发明第二个实施例数据库同步的方法流程图;\n图4为本发明第三个实施例数据库同步的方法流程图;\n图5为本发明第四个实施例数据库同步的系统图。\n具体实施方式\n为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和 附图,对本发明的技术方案进一步详细说明。\n本发明实施例提供的技术方案,利用同步表,在应用层实现数据库同步, 简化对服务器配置的修改,数据库同步可以不受操作系统和数据库系统的限 制,提高数据同步的效率。\n图1为本发明实施例中,同步表结构示意图。\n如图1所示,设置于主用服务器数据库中的同步表,包括两个字段:同 步标识字段(identity)和SQL语句字段。\n同步标识字段一般采用数据库提供的种子属性,自动递增。这个字段不 需要维护,如果种子属性设置是从1开始递增,插入第一条记录时,不需要 制定该字段的值,数据库系统就自动置为1,插入第二条,自动置为2,如 果删除了数据库的所有记录,下次再插入时,该字段的值是删除之前的值加 1。同步标识字段用来表示同步标识号。\nSQL语句字段存放修改数据库的SQL语句。SQL几乎是所有大型数据 服务器都支持的数据操作语言,它提供一些可以快速执行数据查询、更新、 删除等数据操作的叙述。就标识和SQL的关系而言,标识是插入每条SQL 记录时给的一个编号,即每插入一条SQL记录,标识字段的值加1。\n本发明实施例中,通过在主用服务器上设置同步表,同步表的同步标识 号和备用服务器的标识号配合比较,检查是否需要初始同步。通过SQL语 句,实现实时同步,同时在实时同步的过程中,实时检查是否需要初始同步。 以此,通过同步表中标识和SQL语句,实现数据库同步。\n备用服务器的标识号可以保存在数据库中或保存在配置文件中。该值初 始化为0,所以初次启动时,肯定与主用服务器同步表中最小的标识号是不 一样的,因此会进行初始同步。初始同步完成后,备用服务器保存的标识号 就会存在于同步表中。接着进入实时同步,在该过程中,主用服务器每修改 一次数据,在同步表中插入SQL记录,增加一次同步表记录,对应增加标 识号;实时同步时,备用服务器先删除主用服务器上同步表中标识号小于自 身保存的标识号的记录,然后读取主用服务器上同步表中标识号大于自身保 存标识号的记录。备用服务器每执行一条读取过来的记录前,将自己保存的 标识号与读取过来的记录的标识号进行检查,如果其保存的标识号与读取过 来的标识号连续,则说明备用服务器与主用服务器一直保持同步,则执行该 条记录,并更新保存的标识号,即,将最新同步过的标识号保存下来。如果 不连续,则说明主备用服务器已经失去了数据同步,备用服务器需要重新开 始数据同步。判断备用服务器保存的标识号与读取过来的标识号是否连续, 也即判断备用服务器保存的标识号是否存在于同步表中。\n如果备用服务器发生重启,则重启后检查其保存的同步标识号在主用服 务器同步表中是否仍然存在,如果是,则只需要继续实时同步即可。如果备 用服务器停止了很长时间,导致主用服务器把同步表清除过,则备用服务器 保存的同步标识号在同步表中不存在了,则重新开始初始同步。\n本发明的第一个实施例涉及数据库初始同步的方法,用于主用服务器数 据库和备用服务器数据库的初始同步,其中,主用服务器数据库中设置有包 括同步标识号的同步表,该方法具体流程如图2所示。\n步骤201:由备用服务器检查其保存的标识号是否存在于同步表中,据 此判断是否需要开始初始同步;\n比如,在以下三种场景下,都需要进行步骤201的判断:\n(1)如前所述,标识字段采用数据库提供的种子属性,自动递增,可 以设置从1开始。备用服务器的标识号可以保存在数据库中或保存在配置文 件中。该值初始化为0。所以初次启动时,肯定与主用服务器同步表中最小 的标识号是不一样的,即备用服务器保存的标识号不存在于同步表中,因此 会进行初始同步,则执行后续步骤;\n(2)在实时同步过程中,备用服务器执行一条记录,则更新一下自己 保存的标识号,执行前将自己保存的标识号与读取过来的记录的标识号进行 检查,如果其保存的标识号与读取过来的记录的标识号连续,则只需要继续 实时同步即可;如果否,说明主用服务器清除过同步表记录,则重新开始初 始同步,执行后续步骤;\n(3)如果备用服务器发生重启,则重启后检查保存的同步标识号在主 用同步表中是否仍然存在,如果是,则只需要继续实时同步即可。如果备用 服务器停止了很长时间,导致主用服务器把同步表清除过,则备用服务器保 存的同步标识号在同步表中不存在了,则重新开始初始同步,执行后续步骤。\n步骤202:备用服务器向主用服务器发送请求初始同步的请求消息;\n步骤203:主用服务器收到备用服务器发送的请求消息后,在同步表中 更新同步标识号,备份主用服务器数据库,生成备份文件;\n该步骤中,主用服务器收到备用服务器发送的请求消息后,在备份数据 库前,会清空同步表中的数据记录。另外,在备份数据库之前,为防止备份 过程中,有模块修改数据库数据,要对数据库加锁。加锁成功后清空同步表 中的数据记录,主用服务器清空数据记录后再插入一条空记录,同步标识字 段的值在删除之前的值的基础上加1,形成更新后的同步标识号。接着,主 用服务器备份数据库,生成备份文件。完成备份后,解除对数据库的锁定, 并发送携带该新的同步标识号的备份成功消息给备用服务器。\n步骤204:备用服务器获取备份文件和更新后的同步标识号;\n备用服务器收到主用服务器发送的备份成功消息后,会获取并保存该同 步标识号,即第一条同步记录对应的标识,以此来保证备用服务器保存的标 识号存在于在主用服务器的同步表中。另外,可以通过FTP或操作系统提 供的文件传输功能,把备份文件从主用服务器传输到备用服务器。具体传输 的方式,既可以采用备用服务器主动获取备份文件的方式,也可以是主用服 务器主动传输的方式。而采用备用服务器主动获取备份文件的方式,可以减 少主用服务器处理的复杂度。\n步骤205:备用服务器用接收到的备份文件恢复备用服务器数据库。\n至此,完成了数据库初始同步过程。\n从数据库加锁到解锁的时间内,主用服务器的各模块访问数据库会阻塞 住。一般网元数据库中的配置、告警、性能等数据总量在50M~500M之间, OMU服务器的硬盘都采用高性能的SCSI硬盘或SAS硬盘,吞吐量在每秒 30M以上,SATA硬盘在每秒150M以上。数据库从加锁到锁住的时间0~3 秒左右,数据库被锁住的总时间在3~20秒左右。数据初始同步时间还包括 备用服务器获取备份文件以及恢复数据库的时间,主备服务器间一般是 1000MBits/S的高速带宽,备份文件可以在10秒内传送到备用服务器。数据 库恢复时间小于数据库备份时间,加上之前所用的时间,整个初始同步可以 在1分钟之内完成,提高了初始同步的效率。\n在整个初始同步过程中,如果出现没有成功完成某个步骤的情况,如主 用服务器返回消息失败或等待超时,数据库加锁失败,数据库备份失败,备 份文件传输失败,或备用数据库恢复失败等,都会返回步骤201。\n由于本发明实施例数据库初始同步的方法,利用同步表中的标识号,来 判断是否需要初始同步和保证初始同步后主备服务器保持数据一致,具体采 用数据库备份还原的方法,简化对服务器配置的修改,数据库同步不受操作 系统和数据库系统的限制,提高了数据初始同步的效率。\n从整个数据库同步过程来看,备用服务器首先同步主用服务器的初始数 据库;备用服务器在完成初始同步的基础上,实时同步主用服务器上数据库 中的数据修改。初始同步完成后,备用服务器保存的标识号就会存在于同步 表中。以下结合附图对本发明第二个实施例进行描述。\n本发明的第二个实施例涉及数据库实时同步的方法,用于主用服务器数 据库和备用服务器数据库的实时同步,其中,主用服务器数据库中设置有包 括同步标识号和SQL语句的同步表,同步标识号根据数据库操作实时更新, 该方法具体流程如图3所示。\n步骤301:主用服务器判断是否有需要实时同步的数据库操作,如果需 要,则执行步骤302和303,如果不需要,则继续进行本步骤的判断;\nOMU软件提供统一的数据库访问接口,一般OMU提供的配置、性能 统计、告警等操作维护功能由不同的软件模块来实现。各软件模块调用该数 据库访问接口操作数据库。数据库访问接口提供可选参数,指明该操作是否 需要同步。例如,可以用TRUE表示需要同步,FALSE表示不需要同步, 缺省是TRUE。\n步骤302:主用服务器复制需要实时同步的数据库操作的SQL语句到同 步表中;\n该语句是某模块访问数据库并对数据库数据进行修改的语句。这样,备 用服务器就可以从同步表中获取该SQL语句。\n步骤303:备用服务器从所述同步表中获取该SQL语句;\n具体获取SQL语句的方法,可以是备用服务器获取主用服务器数据库 的用户名和密码,根据获取的用户名和密码,直接连接到主用数据库上,获 取同步表的SQL语句。备用服务器通过这样的方式,从主用服务器的数据 同步表中读取一批记录。\n步骤304:备用服务器用同样的SQL访问备用服务器数据库。\n获取SQL语句后,备用服务器通过数据库访问接口,用同样的SQL访 问其数据库,即逐个执行这些记录。由于备用服务器与主用服务器的基础数 据一致,因此两者的数据修改同步,从而使备用服务器与主用服务器的数据 库保持了同步。\n实时同步过程中,主用服务器每修改一次数据,就增加一次同步表记录。 备用服务器实时同步时,同步更新备用服务器的标识号,把最新同步过的标 识号保存下来,执行修改记录完成后,删除主用服务器同步表中已同步的记 录。因为备用服务器同步主用服务器的第N条记录时,只会删除主用同步 表中前面的N-1条记录,第N条记录保留在同步表中,这样,备用服务器 每次都可以检查自己同步过的最后一条记录是否在同步表中,判断是否需要 初始同步。\n备用服务器可以设置同步周期,在完成一个周期的同步后,下一个周期 继续实时同步。同步周期一般设置在秒级,因此主用服务器上的数据修改在 秒级内就可以同步到备用服务器,做到了实时同步。\n由于本发明实施例提供的数据库实时同步的方法,采用备用服务器读取 主用服务器上的同步表记录中的SQL语句的方式,直接获取主用服务器的 数据修改,简化对服务器配置的修改,数据库同步不受操作系统和数据库系 统的限制,提高了数据同步的效率。\n本发明的第三个实施例涉及数据库同步的方法,用于主用服务器数据库 和备用服务器数据库的同步,其中,主用服务器数据库中设置有包括同步标 识号和SQL语句的同步表。本实施例中,以先初始同步,完成后进行实时 同步为例,该方法具体流程如图4所示。\n步骤401:由备用服务器检查其保存的标识号是否存在于同步表中,据 此判断是否需要开始初始同步;\n如果不需要初始同步,则直接进入步骤406;如果需要初始同步,进行 以下步骤:\n步骤402:备用服务器向主用服务器发送请求初始同步的请求消息;\n步骤403:主用服务器根据接收到的所述请求消息,在同步表中更新同 步标识号,备份主用服务器数据库,生成备份文件;\n步骤404:备用服务器获取备份文件和更新后的同步标识号;\n步骤405:备用服务器用接收到的备份文件恢复备用服务器数据库。\n以上初始同步各步骤中的具体流程,与第一个实施例中的相应步骤相 同,此处不再赘述。至此,完成了数据库初始同步过程,因为此时备用服务 器保存的标识号存在于同步表中,所以初始同步完成后进行实时同步。\n步骤406:主用服务器判断是否有需要实时同步的数据库操作;\n如果有需要同步的数据库操作,进行下面步骤。\n步骤407:主用服务器复制需要同步的数据库操作的SQL语句到同步表 中;\n步骤408:备用服务器从所述同步表中获取该SQL语句;\n步骤409:备用服务器用同样的SQL访问备用服务器数据库。\n以上实时同步各步骤中的具体流程,与第二个实施例中的相应步骤相 同,此处不再赘述。在实时同步的过程中,备用服务器同步更新备用服务器 的标识号,执行完成后删除主用服务器同步表中已同步的记录。并且备用服 务器每执行一条记录,都会检查标识号是否存在于同步表中,判断是否需要 初始同步。因为数据是从同步表中读出来的,只要判断一下备用服务器保存 的标识是否和读出来的记录的标识是否连续即可。\n由于本发明该实施例数据库同步的方法,利用同步表,实现数据库的初 始同步和实时同步,简化对服务器配置的修改,数据库同步不受操作系统和 数据库系统的限制,提高了数据同步的效率。\n本发明的第四个实施例涉及数据库同步的系统,图5为该数据库同步的 系统图,如图5所示:\n该数据库同步系统,包括配置有主用服务器数据库的主用服务器,以及 配置有备用服务器数据库的备用服务器,主用服务器数据库中设置有包括同 步标识号和SQL语句的同步表。\n其中,主用服务器包括:\n备份单元501,用于在初始同步阶段,在收到备用服务器发送的初始同 步请求后,备份数据库生成备份文件;同步表单元502,用于在初始同步阶 段,在同步表更新同步标识号,还用于在实时同步阶段,更新同步表中的同 步标识号,复制需要同步的数据库操作的SQL语句到同步表中;同步表可 以设置于同步表单元中。\n备用服务器包括:\n请求单元503,用于向主用服务器发送请求初始同步的请求消息;获取 单元504,用于在初始同步阶段,获取主用服务器中备份单元生成的备份文 件,以及同步表单元502在同步表中更新后的同步表标识并保存;同步单元 505,用于在初始同步阶段,从获取单元504获取备份文件,并用该备份文 件恢复备用服务器数据库,还用于在实时同步阶段,从同步表中获取SQL 语句,并用同样的SQL语句访问备用服务器数据库。\n主用服务器的备份单元可以进一步包括:\n备份子单元,用于在收到备用服务器发送的初始同步请求后,备份数据 库生成备份文件;响应子单元,用于在备份子单元备份数据库成功后,向备 用服务器发送备份成功消息;其中,备份成功消息携带初始同步阶段同步表 单元在同步表中更新后的同步标识号。相应的,获取单元从备份成功消息中 获取该同步标识号,从备份子单元中获取备份文件。\n主用服务器还可以进一步包括:加锁子单元,用于在主用服务器备份数 据库前,对主用服务器数据库加锁。\n该系统还可以包括实时同步判断单元,用于根据数据库访问接口提供的 参数,判断有需要实时同步的数据库操作时,向同步单元发送同步命令;同 步单元根据所述同步命令,从同步表中获取SQL语句,并用同样的SQL语 句访问备用服务器数据库,完成数据的实时同步。\n数据同步过程中,请求单元503根据获取单元504保存的同步标识号是 否存在于同步表单元502的同步表中,作出是否需要初始同步的判断;如果 需要初始同步,则发送请求初始同步的请求消息给主用服务器的备份单元 501。备份单元501收到备用服务器发送的请求消息后,备份数据库,生成 备份文件。同步表单元502,在同步表中形成更新后的同步标识号。备份成 功后,获取单元504获取该备份文件,并获取该同步表标识并保存之。而同 步单元505,利用获取单元504获取的备份文件,用该文件恢复备用服务器 数据库,实现了数据库初始同步。\n主用服务器判断有需要实时同步的数据库操作时,同步表单元502复制 需要同步的数据库操作的SQL语句到同步表中,更新同步表单元中的同步 标识。在该过程中,主用服务器每修改一次数据,就增加一次同步表记录。 同步单元505从同步表中获取该SQL语句,并用同样的SQL访问备用服务 器数据库,实现数据实时的修改同步。备用服务器同步主用服务器的第N 条记录时,只会删除主用同表中前面的N-1条记录,第N条记录保留在同 步表中,这样,备用每次都可以检查自己同步过的最后一条记录是否在同步 表中,判断是否需要初始同步。\n而本实施例中,判断是否有需要实时同步的数据库操作,可以由实时同 步判断单元来实现,该单元根据数据库访问接口提供的参数,判断是否有需 要实时同步的数据库操作。若判断结果为是,则向同步单元505发送同步命 令,同步单元505根据该命令,从所述同步表中获取SQL语句,并用同样 的SQL语句访问备用服务器数据库。\n由于本发明该实施例数据库同步系统,利用同步表,实现数据库的初始 同步和实时同步,简化对服务器配置的修改,数据库同步不受操作系统和数 据库系统的限制,提高了数据同步的效率。\n以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了 进一步详细说明,所应理解的是,以上所述仅为本发明思想的一种展示,而 非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何 修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2009-01-07
- 2007-11-14
- 2007-09-19
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-10-25
|
2005-07-21
| | |
2
| |
2005-01-05
|
2004-03-04
| | |
3
| |
2003-08-20
|
2002-02-04
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |