同步复制环境中的事务完成的制作方法

文档序号:9564643阅读:232来源:国知局
同步复制环境中的事务完成的制作方法
【专利说明】同步复制环境中的事务完成
[0001]本专利申请要求2014年6月26日递交的14290188.3号欧洲申请(ΕΡ0)的申请日的优先权益,这里通过引用并入该欧洲申请的全部内容。
技术领域
[0002]本文公开的主题一般涉及数据的处理。在一些示例实施例中,本公开涉及用于同步复制环境中的事务完成的系统和方法。
【背景技术】
[0003]高可用性灾难恢复(Highavailability disaster recovery,HADR)是对于部分和完全站点故障都提供高可用性解决方案的数据复制功能。HADR通过将数据变化从源数据库一一有时称为主数据库或者简称为数据库服务器一一复制到目标数据库一一有时称为备用、复制(数据库)或者复制服务器一一来针对数据丢失进行保护。
[0004]部分站点故障可由硬件、网络或者软件故障引起。通常,没有HADR,数据库管理系统(database management system, DBMS)服务器或者数据库所在的机器必须被重新启动。重启数据库及其所在的机器所花的时间长度一般是不可预测的。通常,在使数据库返回到一致状态并且可用之前可能要花若干分钟。有了 HADR,备用数据库通常可在几秒钟内接管。
[0005]完全站点故障可发生在诸如火灾之类的灾难导致整个站点被毁坏时。数据库可位于不同位置。如果灾难在主站点发生,则通过让远程备用数据库接管作为具有全部功能的主数据库,可以维持数据可用性。在接管操作发生之后,可以使原始主数据库恢复工作并且返回到其作为主数据库的地位。
[0006]同步复制是通常用于在部分或完全站点故障的情况下恢复数据的一类数据复制技术。同步复制可涉及至少两个数据库和文件系统,并且可实现数据的迅速恢复,而没有任何重大的数据丢失,同时提供了针对与数据库完整性有关的问题的保护。这确保了高效地在系统之间复制数据,没有任何丢失。
[0007]同步复制在主拷贝被更新时创建数据的远程拷贝,其是主拷贝的精确镜像。具有主拷贝的系统在等待数据记录在复本系统上完成之后继续进行下去。
[0008]—般地,在同步复制中,只有在输入/输出操作的完成在主站点和镜像站点处都得到确认之后,才认为更新操作完成。当发生不完整操作时,回滚(rollback)可在两个位置都发生,这确保了远程拷贝是主拷贝的精确拷贝。
[0009]然而,可以改进用于同步复制的技术以提高速度和可靠性。

【发明内容】

[0010]根据本公开的一方面,提供了一种由计算机实现的方法,包括:在数据库服务器中生成标识数据库事务的标识符;将所述标识符发送到复制服务器;
[0011]接收所述标识符被所述复制服务器确认的确认;将所述事务存储在所述数据库服务器中;以及在接收到来自所述复制服务器的确认之后并且在确定所述事务被存储在所述数据库服务器中之后执行所述事务;其中,将所述标识符发送到所述复制服务器与将所述事务存储在所述数据库服务器中并行发生。
[0012]根据本公开的另一方面,提供了一种系统,包括:第一存储器,其耦合到被配置为执行数据库服务器的第一处理器;以及第二存储器,其耦合到被配置为执行复制服务器的第二处理器;其中,所述数据库服务器被配置为:生成标识数据库事务的标识符;将所述标识符发送到所述复制服务器;接收所述标识符被所述复制服务器确认的确认;将所述事务存储在所述数据库服务器中;其中,将所述标识符发送到所述复制服务器与将所述事务存储在所述数据库服务器中并行发生。
[0013]根据本公开的另一方面,提供了一种包含指令的计算机可读介质,所述指令当被处理器执行时执行操作,所述操作包括:在数据库服务器中生成标识数据库事务的标识符;将所述标识符发送到复制服务器;接收所述标识符被所述复制服务器确认的确认;将所述事务存储在所述数据库服务器中;以及在接收到来自所述复制服务器的确认之后并且在确定所述事务被存储在所述数据库服务器中之后执行所述事务。
【附图说明】
[0014]在附图中以示例而非限制方式图示了一些实施例。
[0015]图1是根据一些示例实施例的适合用于执行复制方法的复制服务器环境。
[0016]图2是根据一些示例实施例图示出用于执行同步复制的示例体系结构的图。
[0017]图3是根据一些示例实施例图示出并行执行的同步复制的各种过程的图。
[0018]图4-图6是根据一些示例实施例的示例时序图。
[0019]图7是根据一些示例实施例图示出用于在同步复制环境中进行事务的示例操作的流程图。
[0020]图8是图示出根据一些示例实施例能够从机器可读介质读取指令并且执行本文论述的方法中的任何一种或多种的机器的组件的框图。
【具体实施方式】
[0021]给出了用于在同步复制环境中完成事务的示例方法、装置和系统。
[0022]根据本公开的各方面,在同步复制环境中,可以代表客户端(用户任务)执行事务,并且事务可基于预配置的超时而休眠。当在本文中使用时,事务可以指在数据库管理系统内执行的工作单位。提交记录可用于生成标识符,该标识符被数据库服务器内的复制代理发送到复制服务器。直到此标识符被复制服务器确认并且事务被存储在盘上为止,执行事务的客户端将会休眠(等待)。复制代理发送标识符和在盘上存储事务可并行执行。当接收到标识符时,如果事务也被存储在盘上则客户端醒来并且客户端被允许继续。事务随后可执行任何提交后工作,随后可完成事务。这些描述和更多内容将联系接下来的附图来更详细论述。
[0023]参考图1,示例复制环境100根据一些示例实施例例示了用于完成事务的高级别体系结构。数据库服务器102可包括被配置为代表客户端执行事务的一个或多个数据库引擎104(例如,DB1)。各种数据库任务128可被客户端调用来执行各种指令,例如读取或写入数据库条目到盘。在一些示例实施例中,指令可被转发到私有日志缓存(private logcache, PLC)106,PLC 106可包括保存以后将被冲刷(flush)到数据库日志的数据的存储器。PLC 106可用于减少在写入到数据库日志的最末日志页面时的争用。指令也可被转发到系统日志108,系统日志108可包括表不数据库日志的一个或多个表格。
[0024]在一些示例实施例中,系统日志108中的信息可被扫描器110读取,扫描器110可被容纳在数据库引擎104的复制代理线程(replicat1n agent thread,RAT)模块112中。RAT 112可以是负责将数据从数据库服务器102复制到复制服务器114的模块。在一些示例实施例中,扫描器110将事务信息传递到组件接口(component interface,CI)库(C1-lib)1160 C1-lib 116可以是可在需要时加载的外部库,并且可以执行各种数据库功能。此外,可以经由更新来重配置C1-lib 116,而不需要重配置整个数据库。在一些示例实施例中,原生线程(native thread) 118经由有线或无线网络120调度将被记录在复制服务器114处的事务。原生线程118可以指由操作系统(operating system,OS)调度而不是由数据库引擎104或者数据库服务器102调度的线程。原生线程118也可被配置为将起源队列标识符(origin queue identifier,0QID) 122传递到RAT 112内的二次截断点管理器(secondary truncat1n point manager,STPMGR) 124。0QID 122 可在复制事务时用于复本和丢失检测,并且也可在恢复期间用于确定在何处重新开始应用事务。STPMGR 124可以指负责更新数据库表格结构以便可以移动二次截断点的模块。此分析随后可用于利用新的二次截断点来更新数据库表格(DBTABLE)。在一些示例实施例中,将二次截断点存储在DBTABLE 126中和等待来自复制服务器114的确认可并行发生,从而减少了进行任务的同步复制的时间。这些过程将在下文更详细描述。
[0025]参考图2,同步体系结构模型200例示了根据一些示例实施例进行事务的示例时序流。这里,多个任务(例如,任务A 201、任务B 203、任务C 205)可被并行启动或者至少大致同时启动。可按某种优先级来处理任务201、203、205。一个单独的任务可将数据从数据库日志推送到C1-lib。任务可冲刷PLC206,同时将任务的数据存储在最末日志页面208上。当在本文中使用时,最末日志页面208可以指系统日志中的最末页面。在一些情况下,最末日志页面可以是表示也采取系统日志格式的被冲刷的(一个或多个)PLC的实际存储器。信号(semaphore) 204可用于促进对最末日志页面的访问。当在本文中使用时,信号可以指用于在并行编程环境中控制对公用资源的访问的变量或抽象数据类型。
[0026]仍参考图2,在提交任务201、203或205后,任务201、203或205可进入休眠,意味着其将等待而不进行任何动作,直到被提示为止。任务201、203或205的数据可被从存储器中的系统日志读取并被这个单独的任务推送到C1-lib中。并行地,当C1-lib基于来自同步复制服务器(synchronous replicat1n server,SRS)的返
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1