数据库同步工具
sqlserver,Mysql数据同步软件

[内存数据库 同步]内存数据库和物理数据库间的数据同步方法

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

专利名称:内存数据库和物理数据库之间的数据同步方法

技术领域:
本发明涉及一种数据处理方法,尤其涉及一种内存数据库与物理数据库之间的数据同步方法。

背景技术:
现代通信越来越依赖于计算机技术。随着电信运营商的不断发展,已经建立了各种类型的信息系统,包括操作系统网络系统,综合计费系统,计费系统,办公自动化系统,客户服务系统,主要客户管理系统,业务分析和决策系统,这些系统通过数据挖掘,查询分析和这些数据的在线分析,积累了大量宝贵的数据,可以识别市场机会,制定市场策略,进一步改善客户关系。但是,这些数据太大,记录数通常为数亿。以中国移动为例,中国的手机用户总数已超过3亿,许多省公司的用户数超过1000万。传统的基于磁盘的物理数据库(RMDB)管理系统变得越来越难以处理,因此内存数据库(MDB)已出现在电信领域。由于市场和技术的快速发展,电信业务在不断扩大,其运营和管理也在不断优化。一些传统支持系统的体系结构逐渐无法满足不断增长的业务需求和客户需求,并引入了一些新技术来解决我们的生产问题。所遇到的问题是不可避免的。通过采用内存数据库来代替以前的共享内存技术,内存中原始的非标准内容(包括接口,格式和管理)得以标准化。内存数据库是直接操作内存中数据的数据库。与磁盘相比,内存的数据读写速度要高几个数量级。与从磁盘访问相比,将数据保存在内存中可以大大提高应用程序的性能。同时,内存数据库放弃了传统的磁盘数据管理方法,基于内存中的所有数据重新设计了体系结构,并对数据缓存,快速算法和并行操作进行了相应的改进,因此数据处理速度为比传统数据库更快数据处理速度要快得多,通常超过10倍。与使用程序开发手段来调用内存处理相比,内存数据库具有自己的优势。首先,内存数据库是产品化的数据库管理软件,大大缩短了开发周期;其次,内存数据库具有开放的平台和界面,程序的开发和移植更加灵活方便,并且易于维护和二次开发。第三,可以通过使用统一的SQL语言轻松查询内存中的数据;最后,可以保证数据库中数据的安全性和完整性。这些优点有利于快速部署和简化维护。电信业务数据和计费系统中的数据在不断变化。这涉及内存数据库中数据和物理数据库(磁盘数据库)中数据的同步。系统中的数据同步包括从内存数据库到物理数据库同步(反向同步)和从物理数据库到内存数据库同步(正向同步)O1,正向同步两部分。数据同步的这一部分使用增量表方法。业务系统或CRM(客户关系管理)的新添加或更新的数据将生成到物理数据库的增量表中,然后同步程序将这些数据同步到内存数据库中。由于增量表中的数据量少,并且数据同步具有实时性,因此不会影响计费过程。 2.反向同步。由于物理数据库的计费背景等级和应计数据几乎已加载到内存数据库中,因此与物理数据库相对应的数据表将主要用于内存数据库的数据备份和外围应用程序的数据查询。为了确保外围应用程序获取的数据的正确性,将存储表的更改生成一个逻辑日志,然后同步程序实时同步到物理数据库。现有的数据同步方法需要记录大量的逻辑日志,并且数据同步效率不高,迫切需要改进。

发明内容

本发明的目的是提供一种在内存数据库和物理数据库之间的有效数据同步方法。为了实现上述目的,本发明提供了一种内存数据库和物理数据库之间的数据同步方法,包括步骤1:以SQL操作的形式在源数据库上表达操作,将SQL操作分解为SQL语法。以及相应的SQL参数,注册并操作源数据库的SQL语法和SQL参数,并将已注册的SQL语法和SQL参数存储在SQL管理区域中进行管理。步骤2.对于源数据库的数据更改,以SQL语法和SQL参数的形式生成逻辑日志;步骤3.根据注册的SQL语法和SQL参数,在目标数据库中重做步骤2中的逻辑日志。其中,在步骤3中,每个逻辑日志都与一个SQL语法相关联。重做目标数据库时,首先在管理区域中注册的SQL语法中搜索准备好的SQL语法,如果没有,则准备SQL语法,然后执行SQL语法以重做目标数据库。一方面,对于从内存数据库到物理数据库的数据同步步骤1,当可以在系统中运行内存数据库的应用程序开始运行时,应用程序首先注册SQL语法和SQL。将参数存储到内存数据库,并同时生成一个副本存储在SQL管理区域中,该副本用于执行物理数据库日志的重做;在步骤2中,在内存数据库中捕获系统中应用程序的操作,并以SQL语法和SQL参数相结合的形式生成逻辑日志。在步骤3中,根据注册的SQL语法和SQL参数,在步骤2中在物理数据库中重做逻辑日志。其中,使每个应用程序进程在对应于一个SQL操作组的内存数据库上操作,每个SQL操作组包括几个SQL操作,每个SQL操作由SQL语法和SQL参数组组成。它还包括为系统中需要执行数据同步的所有应用程序建立应用程序名称和相应的应用程序进程之间的关系,以及应用程序进程和相应的SQL操作组之间的关系。其中,在步骤2中生成逻辑日志后,系统还收集生成的逻辑日志。与应用程序进程相对应的每个线程都与事务缓冲区相关联,以存储事务生成的逻辑日志;与每个应用程序进程相对应,关联一个应用程序缓冲区,以存储由该应用程序进程的所有实例生成的逻辑日志;然后每个应用程序进程将生成的逻辑日志存储在消息队列中;从消息队列获取应用程序进程的逻辑日志并将其放置在系统缓冲区中,然后将系统缓冲区中的逻辑日志写入内存数据库的日志文件中。其中,在步骤3中,首先加载并解析内存数据库的日志文件,通过解析日志文件得到在步骤2中生成的逻辑日志,然后根据注册的SQL语法和SQL参数,生成逻辑文件。登录物理数据库。其中,在步骤3中,当执行物理数据库的重做时,首先在管理区域中注册的SQL语法中查找准备好的SQL语法,如果不是,则准备SQL语法,然后针对物理数据

图书馆重做。另一方面,在从物理数据库到内存数据库的数据同步的步骤1中,根据物理数据库的日志文件,在SQL管理区域中设置SQL语法表和SQL参数表,它们分别用于注册SQL语法和物理数据库。 SQL参数;在步骤2中,根据物理数据库的日志文件设置逻辑日志表。当物理数据库中的数据发生更改时,通过物理数据库提供的触发机制将更改后的数据写入逻辑日志表;在步骤3中,实时扫描逻辑日志表,并根据注册的SQL语法和SQL参数在内存数据库中重做与步骤2对应的逻辑日志。其中,在步骤3中,当执行内存数据库的重做时,在步骤3中。1.获取逻辑日志后,根据SQL语法表获取准备好的SQL语法;步骤3.2。 2.如果准备好的SQL语法成功,则直接执行步骤3.3;如果准备后的SQL语法失败,请获取SQL语法表中的SQL语法,然后执行内存数据库的准备操作,获取SQL参数表中的参数,然后执行内存中参数的绑定。内存数据库设置操作以完成内存数据库的重做。步骤3。3.根据逻辑日志拆分所有SQL参数,依次将其设置为SQL语法,然后执行内存数据库的重做。综上所述,本发明的内存数据库与物理数据库之间的数据同步方法利用了一种准备和多种执行机制,大大提高了同步效率。减少逻辑日志的大小,减少系统传输损失和磁盘空间浪费;支持同时应用程序和相应的SQL更改,并支持系统升级和扩展。

以下结合附图,具体实施方式

详细的描述将使本发明的技术方案和其他有益效果显而易见。在附图中。附图说明图1是本发明的存储器数据库与物理数据库之间的数据同步方法的流程图。图。图2是在本发明的存储器数据库和物理数据库之间应用数据同步方法的优选实施例的反向同步的系统结构示意图;图。图3是图2所示的反向同步系统的反向同步的数据流程图。 2;图。图4是本发明的存储器数据库和物理数据库之间的数据同步方法的优选实施例。前向同步系统的数据流程图。

具体实施方式图1是本发明的存储器数据库和物理数据库之间的数据同步方法的流程图。该方法包括步骤1。以SQL操作的形式在源数据库上表达操作,将SQL操作分解为SQL语法和相应的SQL参数,注册操作源数据库的SQL语法和SQL参数,以及注册已注册的SQL语法。和SQL参数在SQL管理区域中存储和管理;步骤2.对于源数据库的数据更改,将以SQL语法和SQL参数的形式生成逻辑日志。步骤3.根据注册的SQL语法和SQL参数,执行步骤2中的逻辑。在目标数据库中重做日志。在步骤3中,每个逻辑日志都与一个SQL语法相关联。重做目标数据库时,首先,通过在管理区域中注册的SQL语法搜索准备的SQL语法,如果没有,则准备SQL语法,然后执行。为目标数据库重做了SQL语法。本发明将SQL语句分为SQL语法和动态参数,逻辑日志由SQL语法编号和动态参数组成,大大减小了逻辑日志的大小,减少了系统传输损失和磁盘空间的浪费。同时,它充分利用了SQL语法的一次预打印(准备)和多次执行(执行)机制,大大提高了同步效率,减少了数据同步的时间延迟。本发明的存储器数据库和物理数据库之间的数据同步方法适用于同时具有存储器数据库和物理数据库的系统。这样的系统可以由几个主机组成。内存数据库和物理数据库可以同时设置在一台主机上。可以在不同的主机上设置。例如,这样的系统可以是电信业务数据和计费系统。系统可以支持各种应用程序(应用程序)的运行,并且系统中处于运行状态的应用程序称为应用程序进程。本发明的存储器数据库和物理数据库之间的数据同步方法支持从存储器数据库到物理数据库的同步(反向同步)和从物理数据库到存储器数据库的同步(前向同步)。图。图2是在本发明的存储器数据库和物理数据库之间应用数据同步方法的优选实施例的反向同步系统的示意性结构图。通过应用本发明的方法,该优选实施例实现了内存数据库和物理数据库之间系统中支持数据的反向同步和正向同步。根据数据同步的方向,优选实施例可分为反向同步系统和正向同步系统两部分。首先,将参考图2详细描述优选实施例的反向同步系统。 2.1.反向同步在该优选实施例中,基于数据库的日志重做机制来实现反向同步,从而支持多进程和多线程的混合编程模型。反向同步程序(反向同步系统)提供外部操作内存数据库API(应用程序编程接口,应用程序编程接口)和动态库辅助开发套件(mdbutil开发套件,用于连接到内存数据库),该应用程序基于此接口开发的反向同步程序(反向同步系统)支持将内存中数据库同步到物理数据库。系统中的内存数据库上的应用程序进程(应用程序1)的操作由内存数据mdbutil开发工具包捕获并记录在内存数据库的逻辑日志中,然后通过反向同步程序(反向同步系统)(写入日志文件)和物理数据库的重做日志。 mdbutil开发工具包包含三个模块:应用程序管理,SQL管理和日志管理。所有管理信息都存储在系统的共享存储区中,以确保系统信息的安全性。反向同步系统的结构具体描述如下:1.1系统结构1.1.1应用程序管理对于需要同步的主机(系统),对于系统中所有需要与数据同步的应用程序,请保持应用程序名称与对应的应用程序进程之间的关系,该应用程序进程与SQL的关系相对应操作组。当启动反向同步程序时,首先调用mdbutil的初始化操作,并在同步系统中注册相应的应用程序名称和过程信息1.1。2SQL管理SQL管理模块负责管理内存数据库中的SQL语法和相应参数。根据本发明的步骤1,将表示SQL操作的SQL语句分解为SQL语法和相应参数的形式,同时,当应用程序开始在内存中形成应用程序进程时,该应用程序进程注册应用程序以更改内存。数据库中可能使用的SQL语法和相应参数被传输到内存数据库中,并生成一个副本并将其存储在SQL管理区域中。该副本用于重做物理数据库的日志。用SQL语言描述,SQL管理区域中的主要数据结构如下//SQL语法typedef struct

{TUINT8id:8;//申请号TUINT8oper:8;//操作序列号TINT8sql [MDBUTIL_SYNC_SQL_LEN-2];//SQL语句} SSQLSyntax;//SQL参数typedef struct {TUINT32type;//参数类型TUINT32size;//参数大小} SSQLParam;//SQL参数组typedef struct {TINT32num;//参数TINT32unused的数量;//占位符SSQLParam数组[MDBUTIL_SYNC_SQL_PARAM_NUM];} SSQLParams;//SQL操作typedef struct {SSQLSyntax语法;//SQL iwuSSQLPars参数;//SQL参数} SDMLOper;//SQL操作组typedef struct {SSemLock lock;//原子锁TUINT32 id:8;/应用程序编号TUINT32标志:8;//使用标记TUINT32 num:16;//SQL编号TUINT32未使用;//占位符SDMLOper组[MDBUTIL_SYNC_SQL KIND-SIZE];

} SDMLOperGroup;数据结构的定义从小到大,因此内存数据库中的每个应用程序处理操作将对应于一个SQL操作组(SDMLOperGroup)。每个SQL操作组包括几个SQL操作,每个SQL操作由SQL语法(SSQLSyntax)和SQL参数组(SSQLParams)组成。 1.1.3日志管理主要负责逻辑日志的生成,打包(逻辑日志的收集),登陆(生成日志文件,日志文件是所有逻辑日志的综合)和重做(到物理数据库)。对应于本发明的步骤2,反向同步程序通过系统中的应用进程捕获内存数据库的操作,并以SQL语法的形式结合SQL参数生成逻辑日志。用SQL语言描述,本发明中采用的逻辑日志结构定义如下://逻辑日志报头类型定义结构{TUINT32 id:8;//申请编号TUINT32操作数:8;//SQL编号TUINT32 Ien:16;//日志长度TUINT32 seq;//日志序列号} SLogicHead;//type-length-value typedef struct {TUINT32 type:4;//数据类型TUINT32 Ien:12;//数据长度TUINT8值[2];//数值TUINT8未使用[MDBUTIL_SYNC_PARAM_LEN];} STLV;//逻辑日志主体typedef struct {STLV tlv [l];//Array} SLogicBody;//逻辑日志typedef struct {SLogicHead head; SLogicBody正文;} SLogicLog;//通用缓冲头typedef struct

{

TUINTL ID;//数字TUINT32 num;//数字TUINT32 Ien;//长度} SLogBufHead;

//交易逻辑日志缓冲区头typedef struct {SLogBufHead com;//通用部分TUINT32开始;//开始时间TUINT32组;//操作组TUINT64未使用;} STransLogBufHead;//交易逻辑日志缓冲区typedef struct {STransLogBufHead head;///TINT8buf [MDBUTIL_SYNC_PLACE HOLD];//数据缓冲区} STransLogBuf;其中,逻辑日志是操作数据库的最小单元,事务日志是同步操作的最小单元,事务日志由一个或多个逻辑日志组成。 1.1.3.1逻辑逻辑日志由两部分组成:日志头和日志正文。日志主体由一组参数(数量可以为0)组成,每个参数由TLVaype-length-value,type-length-value组成。存储。日志标头由id(数字),oper(操作),Ien(长度)和seq(序列号)组成,其中id和oper用于指向唯一的SQL操作,1 en表示逻辑日志的长度和seq表示事务中的序列号。 1.1.3。 2事务日志事务是逻辑日志的组合,由缓冲区头和缓冲区组成。缓冲区头由id,num(数字),len,Start(开始时间)和group(操作组)组成,其中id是执行内存数据库的事务的编号。逻辑日志按执行顺序存储在缓冲区中。根据本发明的步骤3,可以根据在SQL管理区域中注册的SQL语法和SQL参数在物理数据库中重做逻辑日志的生成。由于逻辑日志的生成是结合SQL参数的SQL语法的结构,因此它充分利用了SQL语法。prprintare(准备)和多个执行(执行)机制极大地提高了同步效率。上面是反向同步系统的系统结构,它说明了本发明中应用程序和SQL语句(分解成语法和参数),SQL语句和逻辑日志之间的关系,以及内存数据库的操作。应用程序使用SQL语法和参数分解为SQL,语句用于使用SQL语法和参数生成逻辑日志。与现有的数据同步方法相比,本发明的同步程序支持应用程序和SQL操作的动态增加,从而支持系统的平滑升级。通过拆分SQL语法和参数,可以大大减少数据传输,并提高同步的执行效率。对于从内存中数据库到物理数据库的同步过程,逻辑日志重做是整个同步的核心内容,包括逻辑日志打包,逻辑日志登陆以及在物理数据库中执行逻辑日志。

如图1所示。图3是图2所示的反向同步系统的反向同步的数据流程图。在图2中。 3,动态逻辑日志用于显示同步的工作模式。 1.2数据流数据流主要表示从少量日志收集日志的过程,从逻辑日志到事务缓冲区(T Buf),再到应用程序缓冲区(App Buf),再到消息队列(Queue),再到系统缓冲区(SysBuf),到日志文件(Log file),最后到物理数据库。整个收集过程类似于形成海水,溪流,河流,河流和海洋。首先,与应用程序进程(应用程序1,应用程序2…)相对应的每个线程都与一个事务缓冲区相关联,请使用

存储事务的逻辑日志;每个应用程序都有一个应用程序缓冲区,用于存储该应用程序所有实例的日志;然后每个应用程序将逻辑日志存储在消息队列中。反向同步程序从消息队列中获取应用程序日志,并将其放在系统缓冲区(SysBuf)中,然后将系统缓冲区中的逻辑日志写入日志文件。最后,同步程序将加载并解析日志文件,并在物理数据库中重做逻辑日志。整个数据流充分利用了SQL语法的一次预打印(准备)和多次执行(执行)机制。大大提高了同步效率,减少了数据同步的时间延迟。每个逻辑日志将与一个SQL语法相关联。在执行物理数据库操作时,首先搜索prprintare之后的SQL语法,如果没有,则执行SQL语法的prprintare,然后执行SQL语法。 SQL语法的延迟支持应用程序和SQL的动态增加。 1.3动态同步请参考现有的数据同步系统。如果捕获的逻辑日志是SQL语句(没有动态参数),则系统本身支持动态同步。但是,一方面,这种现有的同步方法增加了所记录的逻辑日志的数量,并且浪费了大量的磁盘存储空间。同时,它没有充分利用数据库的一种准备和多种执行机制。数据同步效率还不足以支持实时交易系统的应用。将SQL语句分为SQL语法和动态参数,逻辑日志由SQL语法编号和动态参数组成,这大大减小了逻辑日志的大小,减少了系统传输损失并浪费了磁盘空间。在重做物理数据库时,首先在管理区域中注册的SQL语法中查找准备好的SQL语法,如果不是,则继续准备SQL语法,然后执行用SQL文法重做物理数据库;其次,本发明中应用程序和SQL的动态增加支持同步应用程序a。 nd相应的SQL更改,并支持系统的升级和扩展;通过延迟物理数据库的SQL语法的预打印,可以确保可以重做新添加的SQL语法。 SQL的动态增加和延迟的SQL语法的完成已经完成了反向动态同步。实际上,整个同步过程也是一次准备多次执行。 2.前向同步在该优选实施例中,前向同步系统(前向同步程序)是基于物理数据库的触发机制来实现的。这是因为物理数据库的存储和操作与内存数据库不同。首先,由于物理数据库本身的性能低下,触发器本身的性能损失对物理数据库应用程序的性能影响很小;其次,物理数据库有许多操作入口,前台的0CI接口(ORACLE调用接口),数据库终端和应用程序Etc可以用作物理数据库的操作条目,因此触发器可以用作唯一的条目物理数据库数据的变化。当物理数据库中的数据发生更改时,更改后的数据将通过物理数据库本身提供的触发机制写入到物理数据库的逻辑日志表中。然后,前向同步程序(前向同步系统)实时扫描物理数据库的逻辑日志表,并在内存数据库中重做相应的逻辑日志。

11

如图1所示。参照图4,它是在本发明的存储器数据库和物理数据库之间应用数据同步方法的优选实施例的前向同步系统的数据流程图。在该优选实施例中,物理数据库上的应用程序(前台,数据库终端,应用程序OCI接口等)的操作通过触发机制和正向同步程序(正向)被反映到物理数据库的逻辑日志表中。同步系统)通过接口表与物理数据库联系,接口表由物理数据库的逻辑日志表,SQL管理区的SQL语法表和SQL参数表组成。当从物理数据库到内存数据库的数据同步时,根据本发明的步骤1,根据物理数据库的日志文件,在SQL管理中设置SQL语法表和SQL参数表区域,分别用于注册SQL语法和物理数据库。 SQL参数;然后根据本发明的步骤2,根据物理数据库的日志文件,设置逻辑日志表,当物理数据库中的数据发生变化时,由物理数据库提供的触发机制,将变化后的数据写入逻辑日志表;根据本发明的步骤3,实时扫描逻辑日志表,并根据注册的SQL语法和SQL参数在内存数据库中重做与步骤2相对应的逻辑日志。在最佳实施例中,接口表的设计如下2.1接口表的设计2。1.1逻辑日志表

索赔

一种用于在内存数据库和物理数据库之间同步数据的方法,其特征在于,该方法包括步骤1:以SQL操作的形式表示对源数据库的操作,将SQL操作分解为SQL语法和相应的SQL参数,以及注册操作源数据库的SQL语法和SQL参数,并将注册的SQL语法和SQL参数存储在SQL管理区域中进行管理;步骤2.对于源数据库的数据更改,以SQL语法和SQL参数的形式生成逻辑日志;步骤3.根据注册的SQL语法和SQL参数,在目标数据库中重做步骤2中的逻辑日志。

2.根据权利要求1所述的用于在内存数据库和物理数据库之间同步数据的方法,其中,在步骤3中,每个逻辑日志与SQL语法相关联,并且当执行目标数据库的重做时,它首先通过管理区域在搜索中准备的SQL语法中注册的SQL语法(如果没有),则准备SQL语法,然后执行SQL语法以重做目标数据库。

3.根据权利要求2所述的用于在内存数据库和物理数据库之间同步数据的方法,其中,在能够从所述内存数据库到所述物理数据库进行数据同步的步骤1中,系统中的-memory数据库开始运行此时,应用程序进程首先将SQL语法和SQL参数注册到内存数据库中,同时生成一个副本并将其存储在SQL管理区域中。该副本用于执行物理数据库日志重做;在步骤2中,捕获系统中的应用程序过程。对于内存数据库的操作,将以SQL语法和SQL参数的形式生成逻辑日志。在步骤3中,根据注册的SQL语法和SQL参数在物理数据库中重做步骤2中的逻辑日志。

4.根据权利要求3所述的用于在内存数据库和物理数据库之间同步数据的方法,其中,在所述内存数据库上的每个应用处理操作对应于一个SQL操作组,并且每个SQL操作组包括几个SQL操作。 SQL操作由SQL语法和SQL参数组组成。

5.根据权利要求4所述的用于在内存数据库和物理数据库之间同步数据的方法,还包括:为系统中所有需要对应用程序进行处理的应用程序名称和对应的应用程序进程与应用程序进程之间建立关系。与相应的SQL操作组执行数据同步关系。

6.根据权利要求3所述的用于在内存数据库和物理数据库之间同步数据的方法,其中,在步骤2中生成逻辑日志之后,系统还收集与应用进程A的每个线程关联相对应的生成的逻辑日志。事务缓冲区用于存储事务生成的逻辑日志;与每个应用进程相对应的应用缓冲区与用于存储该应用进程的所有实例生成的逻辑日志的应用缓冲区相关联;然后每个应用程序进程将生成的逻辑日志存储在消息队列中;从消息队列中获取应用程序进程的逻辑日志,并将其放置在系统缓冲区中,然后将系统缓冲区中的逻辑日志写入内存数据库的日志文件中。

7.根据权利要求6所述的内存数据库与物理数据库之间的数据同步方法,其特征在于,在步骤3中,首先加载并解析内存数据库的日志文件,并在步骤2中生成逻辑。通过解析日志文件Log获得日志,然后根据注册的SQL语法和SQL参数在物理数据库中重做生成的逻辑日志。

8.根据权利要求3所述的用于在内存数据库与物理数据库之间同步数据的方法,其中,在步骤3中,当执行所述物理数据库的重做时,首先在搜索并准备在所述管理中注册的SQL语法之后如果没有,则准备SQL语法,然后执行SQL语法以重做物理数据库。

9.根据权利要求2所述的用于在内存数据库和物理数据库之间同步数据的方法,其中,在步骤1中,根据所述物理数据库的日志文件,从所述物理数据库到所述内存数据库的数据同步。在SQL管理区域中,设置SQL语法表和SQL参数表,用于注册操作物理数据库的SQL语法和SQL参数。在步骤2中,根据物理数据库的日志文件设置逻辑日志表。当物理数据库中的数据更改时,传递物理数据库的触发机制,将更改后的数据写入逻辑日志表;在步骤3中,实时扫描逻辑日志表,并根据注册的SQL语法和SQL参数在内存数据库中重做与步骤2对应的逻辑日志。

10.根据权利要求9所述的用于在内存数据库和物理数据库之间同步数据的方法,其特征在于,在步骤3中,当执行内存数据库的重做时,执行步骤3。1.在获得逻辑日志之后,根据SQL语法,表获得准备好的SQL语法;步骤3。2.如果获得的准备好的SQL语法成功,则直接执行步骤3.3;否则,执行步骤3.3。如果获取的准备好的SQL语法失败,请在SQL语法表中获取SQL语法,然后执行Prepare内存数据库,获取SQL参数表中的参数,然后执行内存数据库的参数绑定操作完成内存数据库的重做;步骤3。3.根据逻辑日志拆分所有SQL参数,依次设置为SQL语法,然后执行内存数据库的重做。

全文摘要

本发明涉及一种用于在存储器数据库和物理数据库之间同步数据的方法,包括步骤1。以SQL操作的形式表示对源数据库的操作,将SQL操作分解为SQL语法和相应的SQL参数,并在其上注册操作。源数据库的SQL语法和SQL参数,并将注册的SQL语法和SQL参数存储在SQL管理区域中进行管理;步骤2,对于源数据库中的数据变化,以SQL语法形式结合SQL参数生成逻辑日志;步骤3.注册SQL语法和SQL参数,然后在目标数据库中重做步骤2中的逻辑日志。本发明的内存数据库与物理数据库之间的数据同步方法采用了一种准备和多种执行机制,大大提高了同步效率。减少逻辑日志的大小,减少系统传输损失和磁盘空间浪费;支持同步应用程序和相应的SQL更改支持系统的升级和扩展。

文档编号 G06F17/30GK101944114SQ20101028523

开放日 2011年1月12日申请日期2010年9月16日优先权日期2010年9月16日

发明人杨东阳,王东升,姜书亭申请人:深圳市天元堤防信息技术有限公司

未经允许不得转载:数据库同步软件|Mysql数据同步软件|sqlserver数据库同步工具|异构同步 » [内存数据库 同步]内存数据库和物理数据库间的数据同步方法

分享到:更多 ()

syncnavigator 8.6.2 企业版

联系我们联系我们