同步复制环境中的自动模式切换的制作方法_3

文档序号:9524246阅读:来源:国知局
是 立即的,或者可被推迟,直到某个W后的事件为止。转变可设及将该改变通知给其他组件, 例如外部复制组件或者一个或多个数据库任务。一旦转变完成,复制代理就可在操作3060 根据第二复制模式来进行操作。虽然复制代理在操作3020根据第一复制模式来操作,但在 一些示例实施例中,可W在W第一复制模式操作3020之前(例如,在任何实际复制之前) 接收到触发事件3030。
[0041] 图4示出了根据本公开的一些示例的数据库任务的示例方法4000。方法4000可 由可包括硬件(例如,电路、专用逻辑、可编程逻辑、微代码等等)、软件(例如,在处理设备 上运行的指令)或者其组合的处理逻辑来执行。在一种实现方式中,方法4000由图5的 RDMS的数据库任务执行,如下所述。在操作4010,数据库任务确定当前复制模式。例如,数 据库任务确定当前复制模式是同步还是异步,等等。在一些示例实施例中,数据库任务可具 有偏好,或者可基于数据存储库中存储的配置数据来请求特定模式。在操作4020,数据库 任务根据第一复制模式(例如,同步或异步)来操作。在操作4030,数据库任务(例如,从 复制代理)接收转变到第二复制模式(不同于第一复制模式)的通知。在操作4040,数据 库任务转变到第二复制模式。在一些示例实施例中,可W使该转变是即时的。在其他示例 中,转变可被推迟,直到另一事件发生为止。例如,为了完成转变,数据库任务可能必须等待 第二触发事件。一旦转变完成,在操作4050,数据库任务就根据第二模式来操作。虽然图 4示出了将复制模式改变通知给数据库任务,但在其他示例中,复制代理可通过确认提交而 不实际接收来自外部复制组件的确认,来模拟同步复制模式。从而,在一些示例中,切换对 于数据库任务而言可W是透明的,运意味着数据库任务可W在同步和异步模式之间切换而 不要求做出改变。
[0042] 图5不出了根据本公开的一些不例的复制数据库系统5000的不意图。畑MS5010 可包括数据库管理器5030、数据存储库5040、一个或多个数据库任务5020和复制代理 5050。数据库管理器5030管理数据存储库5040中存储的数据。例如,数据库管理器5030 组织、跟踪和控制数据存储库5040中存储的数据W形成一个或多个结构化关系数据库(W下称为"数据库")。
[0043] RDMS5010可包括一个或多个数据库任务5020。数据库任务5020可W是能够对 由数据库管理器5030和数据存储库5040提供的数据库作出改变的任何进程、线程或程序。 数据库任务5020可利用数据存储库5040中存储的数据来提供一个或多个服务。数据库任 务5020可通过向数据库管理器5030发出命令来读取、写入和修改数据存储库5040中的数 据。在一些示例实施例中,数据库任务5020可使用一个或多个结构化查询语言(SQL)命令 来访问数据存储库5040中存储的数据。在一些示例实施例中,数据库管理器5030可W把 对数据存储库5040作出的改变记录在事务日志中。事务日志可被存储在数据存储库5040 中。数据库任务5020可知晓并响应当前复制模式,并且可知晓并且响应复制模式的改变。 例如,当复制模式是同步时,数据库任务5020在继续进行对数据库的进一步操作之前可等 待来自复制代理5050的确认。作为另一示例,当模式是异步时,数据库任务5020可继续进 一步数据库操作,而无论是否接收到确认。
[0044] 复制代理5050可就对数据库中的数据的改变来监视数据存储库5040,并且通过 外部复制组件5090将对数据的改变复制到一个或多个其他RDMS5060或其他设备5070 (例 如,比如移动设备、智能电话、台式机、平板计算机、膝上型计算机,等等)。外部复制组件 5090可W是可通过基于分组的网络5080(例如,互联网、局域网、广域网,等等)来访问的。 在一些示例实施例中,复制代理5050可基于由数据库管理器5030管理的事务日志来确定 对数据库的改变。
[0045] 复制操作可利用外部复制组件5090来帮助将数据从数据存储库5040复制到其他 畑MS5060、设备5070等等。畑MS5060和设备5070可通过网络5085连接到外部复制组件 5090。网络5085可W是或者可W包括网络5080的一些部分。外部复制组件5090可包括复 制模块5100和数据存储库5110。复制模块5100可与来自畑MS5010的复制代理5050W 及设备5070和畑MS5060上的其他复制代理模块通信(为了清晰起见没有示出畑MS5060 上的复制代理模块)。复制模块5100可接收设备(该设备希望接收对数据的更新)的订阅 请求,并且当复制代理(例如,复制代理5050)报告更新时,复制模块5100可更新其本地数 据存储库5110中的数据并且可基于其订阅向订阅的设备发送对数据库的更新。复制模块 5100在接收到指示后和/或在存储更新后可利用确认来对更新数据的设备做出响应。
[0046] 复制代理5050也可从其他畑MS,例如畑MS5060、设备5070等等,接收关于对数 据库中存储的数据的更新的信息。复制代理5050可向外部复制组件5090订阅接收对数据 存储库5040上的数据的更新,W便接收来自能够更新数据的其他设备的更新。复制代理 5050可W将任何接收到的改变通知给数据库任务5020、数据库管理器5030或者RDMS5010 上的其他进程。复制代理5050随后可W直接地或者通过数据库管理器5030或数据库任务 5020将接收到的改变提交给数据存储库5040。
[0047] 复制代理5050可确定或接收指示复制模式应当被从优选模式切换到另一模式的 事件。例如,如果优选模式是同步模式并且事件发生,则复制代理5050可确定复制模式是 否应当被切换到异步模式。如果优选模式是异步模式并且事件发生,则复制代理5050可确 定复制模式是否应当被切换到同步模式。复制代理5050可W把该改变通知给RDMS5010 中的任何感兴趣的模块(例如,数据库任务5020、数据库管理器5030,等等)。在一些示例 实施例中,复制代理5050还可W使外部复制组件5090保持了解当前模式的最新情况。运 可通过发送更新消息或者通过将当前模式包括在通告对数据库上的数据的改变的通知中 来进行。 W48] 畑MS5010可包括未示出的额外模块,运些模块管理数据库、执行SQL语句、管理 数据库任务5020,等等。此外,RDMS5010中示出的各种模块可被组合。 W例图6图示出可在其上执行本文论述的技术(例如,方法)中的一种或多种的示例 机器6000的框图。在替换实施例中,机器6000可作为独立的设备来操作或者可连接(例 如,联网)到其他机器。在联网部署中,机器6000在服务器-客户端网络环境中可作为服务 器机器、客户端机器或者运两者来操作。在一个示例中,机器6000在对等(peer-to-peer, P2P)(或其他分布式)网络环境中可充当对等机器。机器6000可W是RDMS、外部复制组 件、个人计算机(personalcomputer,PC)、平板PC、机顶盒(set-topbox,STB)、个人数字 助理(personaldigitalassistant,PDA)、移动电话、智能电话、web设备、网络路由器、交 换机或网桥或者任何能够执行指定该机器要采取的动作的(顺序的或者其他形式的)指令 的机器。另外,虽然只图示了单个机器,但术语"机器"也应被理解为包括单独或联合执行 组(或多组)指令来执行本文论述的方法中的任何一种或多种的机器的任何集合,例如云 计算、软件即服务(softwareasaservice,SaaS)、其他计算机集群配置。
[0050] 如本文所述的示例可包括逻辑或数个组件、模块或机构或者可在逻辑或数个组 件、模块或机构上操作。模块是能够执行指定的操作并且可按一定方式来配置或布置的有 形实体(例如,硬件)。在一个示例中,电路可按指定的方式被布置为模块(例如,在内部或 者对于外部实体,例如其他电路)。在一个示例中,一个或多个计算机系统(例如,单机、客 户端或服务器计算机系统)或者一个或多个硬件处理器的全部或部分可由固件或软件(例 如,指令、应用部分或者应用)配置为进行操作来执行指定的操作的模块。在一个示例中, 软件可驻留在机器可读介质上。在一个示例中,软件当被模块的下层硬件执行时使得该硬 件执行指定的操作。
[0051] 因此,术语"模块"被理解为涵盖有形实体,无论该实体是被物理上构造、具体配置 (例如,硬连线)还是临时(例如,暂时)配置(例如,编程)为按指定的方式操作或者执行 本文描述的任何操作的一部分或全部。考虑临时配置模块的示例,在任何一个时刻不需要 实例化每个模块。例如,在模块包括利用软件配置的通用硬件处理器的情况下,该通用硬件 处理器在不同时间可被配置为各个不同的模块。软件可相应地将硬件处理器配置为例如在 一个时刻构成特定模块并且在不同的时刻构成不同的模块。
[0052] 机器(例如,计算机系统)6000可包括硬件处理器6002(例如,中央处理单元 (centralprocessingunit,CPU)、图形处理单元(graphicsprocessingunit,GPU)、硬件 处理器核或者其任何组合)、主存储器6004W及静态存储器6006,其中的一些或全部可经 由互连链路(例如,总线)6008与彼此通信。机器6000还可包括视频显示器6010、字母数 字输入设备6012(例如,键盘)化及用户界面(userinterface,UI)导航设备6014(例如, 鼠标)。在一个示例中,视频显示器6010、输入设备6012和UI导航设备6014可W是触摸 屏显示器。机器6000还可包括存储设备(例如,驱动单元)6016、信号生成设备6018(例 如,扬声器)、网络接口设备6020W及一个或多个传感器6021,例如全球定位系统(global positioning
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1