CN105359147B - 在线数据库迁移 - Google Patents
在线数据库迁移 Download PDFInfo
- Publication number
- CN105359147B CN105359147B CN201480039080.XA CN201480039080A CN105359147B CN 105359147 B CN105359147 B CN 105359147B CN 201480039080 A CN201480039080 A CN 201480039080A CN 105359147 B CN105359147 B CN 105359147B
- Authority
- CN
- China
- Prior art keywords
- database
- server system
- source
- change request
- source server
- 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.)
- Active
Links
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/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
给出了用于执行服务器系统之间的在线迁移的各种布置。可以启动数据库从源服务器系统到目标服务器系统的传送。在传送期间,源服务器系统的数据库可以保持在线。可以记录何时数据库的传送被启动的时间指示。在传送数据库时,可以接收对数据库的记录的修改。可以存储多个修改,并且,对于该多个修改中的每个修改,可以存储何时接收到修改的时间指示。在完成数据库到目标服务器系统的传送之后,可以在源服务器系统在线时向由目标服务器系统存储的数据库应用多个修改。
Description
对相关申请的交叉引用
本申请涉及以下共同未决和共同转让的美国专利申请:
由Higginson所写、与本文同时提交的并且标题为“METHOD AND SYSTEM FORREDUCING INSTABILITY WHEN UPGRADING SOFTWARE”的美国专利申请No.13/937,977(代理人案号88325-860490(135800US));
由Davis所写、与本文同时提交的并且标题为“CONSOLIDATION PLANNINGSERVICES FOR SYSTEMS MIGRATION”的美国专利申请No.13/938,061(代理人案号88325-870368(137700US));
由Davis所写、与本文同时提交的并且标题为“MIGRATION SERVICES FORSYSTEMS”的美国专利申请No.13/938,066(代理人案号88325-870369(137800US));
由Higginson所写、与本文同时提交的并且标题为“DATABASE MODELING ANDANALYSIS”的美国专利申请No. 13/937,885(代理人案号88325-870374(137900US));
由Higginson所写、与本文同时提交的并且标题为“AUTOMATED DATABASEMIGRATION ARCHITECTURE”的美国专利申请No.13/937,868(代理人案号88325-870373(138000US));
由Raghunathan等人所写、与本文同时提交的并且标题为“CLOUD SERVICES LOADTESTING AND ANALYSIS”的美国专利申请No.13/937,344(代理人案号88325-870381(138100US));
由Raghunathan等人所写、与本文同时提交的并且标题为“CLOUD SERVICESPERFORMANCE TUNING AND BENCHMARKING”的美国专利申请No.13/937,483(代理人案号88325-870383(138200US));
由Buehne等人所写、与本文同时提交的并且标题为“SOLUTION TO GENERATE ASCRIPTSET FOR AN AUTOMATED DATABASE MIGRATION”的美国专利申请No. 13/937,988(代理人案号88325-870382(138300US));
由Buehne等人所写、与本文同时提交的并且标题为“DYNAMIC MIGRATION SCRIPTMANAGEMENT”的美国专利申请No.13/937,486(代理人案号88325-870409(138500US));以及
由Masterson等人所写、与本文同时提交的并且标题为“ADVANCED CUSTOMERSUPPORT SERVICES–ADVANCED SUPPORT CLOUD PORTAL”的美国专利申请No.13/937,970(代理人案号88325-870401(138600US))。
这些申请中的每个申请的全部公开内容都通过引用被结合于此,用于所有目的。
背景技术
升级或以其它方式迁移复杂的数据库系统会是艰巨的。复杂的数据库系统通常由企业、政府和其它大型实体(统称为客户)来维护,这些客户容忍系统离线的能力有限。因此,当关键任务的数据库系统要从第一服务器系统迁移到第二(可能更新和更先进的)服务器系统时,客户可能希望高效和及时的迁移。
在许多常规布置中,当要执行从源服务器系统向目标服务器系统的迁移时,使源服务器系统离线、执行服务器系统之间的迁移、然后使目标服务器系统在线。但是,这种迁移会导致在相当长的时间内源服务器系统和目标服务器系统都不在线。客户可能希望尽可能地减少期间源服务器系统和目标服务器系统都离线的时间量。
发明内容
给出了用于执行在线迁移的各种布置。在一些实施例中,给出了一种用于执行服务器系统之间的在线迁移的方法。该方法可以包括启动数据库对象从源服务器系统向目标服务器系统的传送,其中源服务器系统在数据库对象的传送期间是在线的。该方法可以包括由源服务器系统记录数据库对象的传送何时被启动的时间顺序指示。该方法可以包括,在传送数据库对象时,由源服务器系统接收对数据库对象的多个记录的多个更改请求。该方法可以包括由源服务器系统存储所述多个更改请求,并且对于事实多个更改请求中的每个更改请求,存储该更改请求何时被接收到的时间顺序指示。该方法可以包括,在存储所述多个更改请求之后,完成数据库对象从源服务器系统向目标服务器系统的传送。该方法可以包括,在将数据库对象传送到目标服务器系统之后,在源服务器系统在线时将所述多个更改请求应用到由目标服务器系统存储的数据库对象。
这种方法的实施例可以包括以下特征中的一个或多个特征:时间顺序指示可以是按时间顺序分配给由源服务器系统执行的数据库事务的数字。在源服务器系统在线时将所述多个更改请求应用到由目标服务器系统存储的数据库对象可以包括:访问指示数据库对象的传送何时被启动的时间顺序指示;以及基于更改请求何时被源数据库系统处理的每个时间顺序指示与指示数据库对象的传送何时被启动的时间顺序指示的比较,确定向如由目标数据库系统存储的数据库对象应用所述多个更改请求中的每个更改请求。在源服务器系统在线时将所述多个更改请求应用到由目标服务器系统存储的数据库对象可以包括:基于更改请求的时间顺序指示比指示数据库对象向所述目标服务器系统的传送何时被启动的时间顺序指示指示更早时间,忽略该更改请求。该方法可以包括在将数据库对象传送到目标服务器系统并且在源服务器系统在线时将所述多个更改请求应用到由目标服务器系统存储的数据库对象之后,使源服务器系统下线,使得源服务器系统不对数据库请求做出响应。该方法可以包括,在使源服务器系统下线之后,使目标服务器系统上线,使得目标服务器系统对数据库请求做出响应。该方法可以包括,在传送数据库对象时,接收要由源服务器系统并行运行的迁移脚本的数量的增加。该方法可以包括,响应于迁移脚本的数量的增加,由源服务器系统启动第二数据库对象向目标服务器系统的传送。该方法可以包括,在传送数据库对象时并且响应于对数据库对象的记录的所述多个更改请求,由源服务器系统更新如由源服务器系统存储的数据库对象。被传送到目标服务器系统的数据库对象可以与当数据库对象的传送被启动时由源服务器系统存储的数据库对象匹配。
在一些实施例中,给出了一种用于执行服务器系统之间的在线迁移的系统。该系统可以包括源服务器系统。源服务器系统可以被配置为启动数据库对象向目标服务器系统的传送,其中源服务器系统在数据库对象的传送期间是在线的。源服务器系统可以被配置为记录数据库对象的传送何时被启动的时间顺序指示。源服务器系统可以被配置为,在传送数据库对象时,接收对数据库对象的多个记录的多个更改请求。源服务器系统可以被配置为存储所述多个更改请求,并且对于所述多个更改请求中的每个更改请求,存储该更改请求何时被接收到的时间顺序指示。源服务器系统可以被配置为,在存储所述多个更改请求之后,完成数据库对象向目标服务器系统的传送。该系统可以包括目标服务器系统。目标服务器系统可以被配置为,在接收到数据库对象之后,在源服务器系统在线时,将所述多个更改请求应用到由目标服务器系统存储的数据库对象。
这种系统的实施例可以包括以下特征中的一个或多个特征:时间顺序指示可以是按时间顺序分配给由源服务器系统执行的数据库事务的数字。目标服务器系统被配置为在源服务器系统在线时将所述多个更改请求应用到由目标服务器系统存储的数据库对象可以包括所述目标服务器系统被配置为:访问指示数据库对象的传送何时被启动的时间顺序指示;以及基于更改请求何时被源数据库系统处理的每个时间顺序指示与指示数据库对象的传送何时被启动的时间顺序指示的比较,确定向如由目标数据库系统存储的数据库对象应用所述多个更改请求中的每个更改请求。目标服务器系统被配置为在源服务器系统在线时将所述多个更改请求应用到由目标服务器系统存储的数据库对象可以包括所述目标服务器系统被配置为:基于更改请求的时间顺序指示比指示何时向所述目标服务器系统的数据库对象的传送被启动的时间顺序指示指示更早时间,忽略该更改请求。在将数据库对象传送到目标服务器系统并且在源服务器系统在线时将所述多个更改请求应用到由目标服务器系统存储的数据库对象之后,源服务器系统可以被配置为下线,使得源服务器系统不对数据库请求做出响应。在源服务器系统下线之后,目标服务器系统可以被配置为上线,使得目标服务器系统对数据库请求做出响应。源服务器系统还可以被配置为接收要并行运行的迁移脚本的数量的增加。响应于迁移脚本的数量的增加,源服务器系统可以被配置为启动第二数据库对象向目标服务器系统的传送。源服务器系统可以被配置为,在传送数据库对象时并且响应于对数据库对象的记录的所述多个更改请求,更新如由源服务器系统存储的数据库对象。
在一些实施例中,给出了用于执行数据库系统之间的在线迁移的设备。该设备可以包括用于启动数据库对象从源数据库系统向目标数据库系统的传送的装置,其中源数据库系统在数据库对象的传送期间是在线的。该设备可以包括用于记录数据库对象的传送何时被启动的时间顺序指示的装置。该设备可以包括用于在传送数据库对象时接收对数据库对象的多个记录的多个更改请求的装置。该设备可以包括用于存储所述多个更改请求,并且对于所述多个更改请求中的每个更改请求,存储该更改请求何时被接收到的时间顺序指示的装置。该设备可以包括用于完成数据库对象从源数据库系统向目标数据库系统的传送的装置。该设备可以包括用于在传送数据库对象之后并且在源数据库系统在线时将所述多个更改请求应用到由目标数据库系统存储的数据库对象的装置。
这种设备的实施例可以包括以下的一个或多个:时间顺序指示可以是按时间顺序分配给由源数据库系统执行的数据库事务的数字。用于在源数据库系统在线时将所述多个更改请求应用到由目标数据库系统存储的数据库对象的装置可以包括:用于访问指示数据库对象的传送何时被启动的时间顺序指示的装置;以及用于基于更改请求何时被源数据库系统处理的每个时间顺序指示与指示数据库对象的传送何时被启动的时间顺序指示的比较,确定向如由目标数据库系统存储的数据库对象应用所述多个更改请求中的每个更改请求的装置。在源数据库系统在线时将所述多个更改请求应用到由目标数据库系统存储的数据库对象可以包括:用于基于更改请求的时间顺序指示比指示何时数据库对象向目标数据库系统的传送被启动的时间顺序指示指示更早时间,忽略该更改请求的装置。该设备可以包括用于在将数据库对象传送到目标数据库系统并且在源数据库系统在线时将所述多个更改请求应用到由目标数据库系统存储的数据库对象之后,使源数据库系统下线,使得源数据库系统不对数据库请求做出响应的装置。该设备可以包括用于在使源数据库系统下线之后,使目标数据库系统上线,使得目标数据库系统对数据库请求做出响应的装置。
附图说明
通过参考以下示图,可以实现对各种实施例的性质和优点的进一步理解。在附图中,类似的组件或特征可以具有相同的标号。此外,相同类型的各个组件可以通过在标号后跟着破折号以及在相似组件中进行区分的第二标号加以区分。如果在说明书中只有第一标号被使用,则该描述适用于具有相同第一标号的类似组件中的任何一个,而与第二标号无关。
图1示出了配置为执行服务器系统之间的在线迁移的系统的实施例。
图2示出了支撑云平台的实施例。
图3示出了修改复制器的实施例。
图4示出了当数据库在服务器系统之间迁移时用于处理对源服务器系统的数据库内的记录的更改请求的示例性时间线的实施例。
图5示出了用于执行服务器系统之间的在线迁移的方法的实施例。
图6示出了用于执行服务器系统之间的在线迁移的方法的另一种实施例。
图7示出了计算机系统的实施例。
具体实施方式
当执行迁移时,不是使源服务器系统离线,而是源服务器系统可以保持在线,使得当在执行迁移功能时,源服务器系统对数据库请求做出响应。当在线时,源服务器系统可以接收对存储在由源服务器系统维护的一个或多个数据库中的记录的读请求并且对该读请求做出响应。源服务器系统也可以接收对存储在由源服务器系统维护的一个或多个数据库中的记录的修改请求并且对该修改请求做出响应。为了使源服务器系统及时地履行数据库请求,由源服务器系统并行执行的迁移脚本的数量可以小于如果源服务器系统离线将会被并行执行的迁移脚本的数量。因此,当源服务器系统在线时,执行与迁移相关的脚本会花费明显更长的时间;但是,这种安排对于操作源服务器系统的客户是可以容忍的,因为源服务器系统的数据库在迁移期间保持在线。
“源服务器系统”可以指存储和执行数据库安装的一组一个或多个计算机系统。源服务器系统可以履行检索、更新以及其它形式的数据库查询。“迁移”可以指将数据库安装从源服务器系统移动或复制到目标服务器系统。因此,在迁移之前,数据库安装只会在源服务器系统上可用。在迁移之后,数据库安装会在目标服务器系统上存在,并且可能仍然在源服务器系统上存在。“目标服务器系统”可以指在迁移之后存储数据库安装的一组一个或多个计算机系统。目标服务器系统可以在迁移之后执行数据库安装和履行检索、更新以及其它形式的数据库查询。在成功迁移之后,可以使源服务器系统离线(使得源服务器系统不接收数据库请求和/或不对数据库请求做出响应)并且可以使目标服务器系统在线。因此,在迁移之后,使源服务器系统离线并且使目标服务器系统在线,目标服务器系统而不是源服务器系统履行数据库请求。
迁移可以包括多种类型的步骤。首先,数据库的表和相关联的数据存储布置(统称为“数据库对象”)可能需要从源服务器系统复制到目标服务器系统中。这些复制功能可以在源服务器系统在线时被执行。此类数据库及相关联的数据存储布置可以从小型到巨大规模不等 (例如,数百千兆字节、数百兆兆字节)。可以创建配置为高效地将数据库对象从源服务器系统复制到目标服务器系统的各种脚本。调度者系统可以管理这些迁移脚本的执行、为其配置选择次序以及管理这些迁移脚本中有多少被并行执行。
如果当迁移复制脚本正在被源服务器系统执行以将数据库对象复制到目标服务器系统时,源服务器系统在线,则由源服务器系统接收到的数据库请求会导致被复制到目标服务器系统的数据库对象被修改。被复制到目标服务器系统的数据库对象会如同在复制初始化时由源服务器系统存储的数据库对象。因此,在复制初始化之后处理的对数据库对象的修改不会反映在复制到目标服务器系统的数据库对象的初始版本中。修改复制器(其可以是在源服务器系统上运行的软件)可以记录在迁移期间对由源服务器系统管理的数据库做出的修改。每个修改可以被分配时间顺序标识符。此外,数据库复制的初始化可以被分配时间顺序识别符。因此,基于修改的时间顺序标识符和数据库复制的初始化的时间顺序标识符,可以确定哪些记录的修改将需要被传播给复制到目标服务器系统的数据库的副本。
在数据库已从源服务器系统复制到目标服务器系统之后,可以为复制到目标服务器系统的数据库产生一个或多个索引。此类索引可以允许在目标服务器系统处的数据库的查询更快和/或更高效。不是将以前创建的索引文件从源服务器系统复制到目标服务器系统,忽略源服务器系统的索引文件并且使目标服务器系统生成其自己的索引文件可以是更高效的。因此,当源服务器系统保持在线时,还没有在线的目标服务器系统可以为复制到目标服务器系统的一个或多个数据库创建索引文件。
第三,在一个或多个数据库已被复制到目标服务器系统之后(例如,将所有数据库对象从源服务器系统复制到目标服务器系统完成),客户可能希望在目标服务器系统处的数据库上执行至少某种水平的验证,以确保复制被正确地和/或全部地执行。一旦使源服务器系统离线并且已将对在源服务器系统处的数据库对象做出的所有修改传播到由目标服务器系统存储的数据库对象,就可以执行验证。在一些实施例中,如由目标服务器系统存储的复制数据库的行计数与如由源服务器系统存储的对应的数据库的行计数进行比较。如果行计数匹配,则客户至少可以被确保至少看起来在迁移期间没有记录丢失。在一些实施例中,可以进行逐记录比较;但是这个过程可能是耗时的并且如果源服务器系统和目标服务器系统两者都离线时,则这个过程其可能不是所期望的。
虽然这些功能中的一些功能依赖于其它功能,但是一些功能可以被并行地执行。作为相依功能(dependent function)的例子,要由目标服务器系统为数据库执行的索引生成只有在数据库从源服务器系统到目标服务器系统的复制已完成时才可以被执行。但是,第一数据库的复制和索引生成可以独立于第二数据库的复制和索引生成而被执行。因此,要在迁移期间执行的至少一些功能可以被并行执行。
总之,在迁移期间,至少三个主要功能可以被执行:复制功能、索引生成功能和验证功能。但是,应该理解,在一些实施例中,诸如验证功能的功能可以被省略。在在线迁移中,在至少复制和索引生成功能期间,源服务器系统可以是在线的。因此,其中源服务器系统和目标服务器系统同时离线的总时间量会非常小,尤其当与在离线迁移期间源服务器系统和目标服务器系统两者将都处于离线的时间量相比。在在线迁移期间,一旦使源服务器系统离线,就可以执行一个或多个数据库的验证。一旦操作源服务器系统的客户对验证满意,就可以使目标服务器系统在线。
图1示出了配置为执行服务器系统之间的在线迁移的系统100的实施例。系统100可以包括源服务器系统110、目标服务器系统120、调度者计算机系统130、网络140和远程管理员计算机系统150。
源服务器系统110可以表示一个或多个计算机系统。源服务器系统110可以存储和执行数据库安装。源服务器系统110可以履行检索、更新/修改和其它形式的数据库查询和功能。在迁移之前,数据库安装会在源服务器系统上可用,但在目标服务器系统120上不可用。源服务器系统110可以包括处理资源112和存储资源114。处理资源 112可以包括配置为同时执行多个处理的一个或多个处理器。例如,处理资源112被示为同时执行两个迁移脚本:迁移脚本113-1和迁移脚本113-2。由处理资源112执行的迁移脚本113可以是配置为将数据库或其它存储布置从源服务器系统110复制到目标服务器系统120 的复制脚本。迁移脚本113的执行可以由可经网络140访问的另一个系统启动。
源服务器系统110可以具有存储资源114,其可以表示存储数据库、索引和/或其它形式的数据库对象的一个或多个(非临时性)计算机可读存储介质(例如,硬盘驱动器、固态驱动器)。一些数据库对象可以作为数据库迁移的一部分被复制到目标服务器系统120。通常,在源服务器系统110处的数据库安装可以包括大量(例如,数百、数千、数百万)数据库对象,这些数据库对象会消耗大量存储资源。因此,一些数据库对象从源服务器系统110到目标服务器系统120的复制会花费相当长的时间量来执行。在一些实施例中,作为数据库的数据库对象被从源服务器系统110复制到目标服务器系统120,但是诸如索引的数据库对象不被复制。
在源服务器系统110的示出的实施例中,两个迁移脚本正在被源服务器系统110执行。迁移脚本113中的每个脚本会导致特定的数据库对象被从存储资源114复制到目标服务器系统120。数据库对象的这种迁移由虚线迁移箭头来表示。由源服务器系统110执行的迁移脚本113可以被并行执行。由于正在执行在线迁移,因此会需要源服务器系统110及时地对数据库请求做出响应。因此,管理迁移的管理员可以确保源服务器系统110的一定比例的处理资源112被保留用于处理数据库请求。此外,由源服务器系统110执行的复制功能的速率可以被节制(throttled),以便为对数据库请求做出响应而保留带宽。例如,迁移脚本113-1可以被限制为以特定的速度复制,使得数据库请求可以由源服务器系统110履行,而与当没有执行迁移时数据库请求的履行相比没有显著的延迟。数据库管理员连同客户一起可以确定哪些因素构成源服务器系统110对数据库请求做出响应中的可接受的延迟水平。基于所确定的可接受的延迟水平,数据库管理员可以增加或减少由源服务器系统110执行的迁移脚本的数量,以便不超过所确定的可接受的延迟水平。
由于正在执行从源服务器系统110到目标服务器系统120的在线迁移,因此源服务器系统110可能需要在迁移进行时从存储的数据库对象中修改一个或多个数据库的记录。例如,当特定的数据库正在从源服务器系统110的存储资源114复制到目标服务器系统120存储资源124时,源服务器系统110会接收到一个或多个请求来修改该数据库的一条或多条记录。此外,在将数据库复制到目标服务器系统120 之后但是在使目标服务器系统120在线之前,会接收到这种修改请求。修改复制器116可以记录对源服务器系统110的数据库对象做出的修改。对于每个记录的修改,可以为其分配时间顺序标识符。此外,这种时间顺序标识符可以在数据库对象从源服务器系统110到目标服务器系统120的复制初始化时进行分配。因此,修改复制器116可以能够识别对在源服务器系统110处但还未在目标服务器系统120处的数据库对象做出的修改(也称作更新)。修改复制器116的进一步细节将参考图3提供。
目标服务器系统120可以表示一个或多个计算机系统。目标服务器系统120可以在迁移完成之后存储和执行数据库安装。目标服务器系统120可以在迁移完成之后保持离线,直到数据库管理员将目标服务器系统120配置为在线工作。通常,目标服务器系统120会是比源服务器系统110更快、更新的一组一个或多个计算机系统(这可能是为什么迁移被执行的原因)。在迁移之后,可能期望源服务器系统 110履行检索、更新以及其它形式的数据库查询。在迁移之前,数据库安装会在源服务器系统上可用,但在目标服务器系统120上不可用。在迁移之后,数据库安装可以在目标服务器系统120上可用。目标服务器系统120可以包括处理资源122和存储资源124。处理资源122 可以包括配置为同时执行多个处理的一个或多个处理器。例如,处理资源122被示为同时执行三个迁移脚本:迁移脚本123-1、迁移脚本123-2和迁移脚本123-3。由处理资源122执行的迁移脚本123可以是配置为从源服务器系统110接收数据库或其它存储布置以用于由目标服务器系统120存储的复制脚本。因此,迁移脚本113-1会使数据库对象从源服务器系统110被复制,而迁移脚本123-1用来在目标服务器系统120处接收和创建的对应的数据库对象。
基于调度者系统和/或迁移脚本的配置,复制到目标服务器系统的一个或多个数据库对象相比如由源服务器系统存储的相同数据库对象可以被修改。例如,在目标服务器系统处创建的数据库对象可以被压缩,而由源服务器系统110存储的对应的数据库对象是未压缩的。在一些实施例中,如由目标服务器系统120存储的一个或多个数据库对象可以在结构上与由源服务器系统110存储的对应的数据库对象不同(例如,被重新组织)。
目标服务器系统120的处理资源122可以执行引起索引生成的迁移脚本。索引可以允许由目标服务器系统存储的数据库被更高效地访问(例如,基于时间和/或处理资源的使用)。一旦数据库已从源服务器系统110复制到目标服务器系统120,就可以为该数据库创建索引。这种索引生成可以在源服务器系统110在线时被执行。因此,只有某些数据库对象(诸如数据库)会从源服务器系统110复制到目标服务器系统120。其它形式的数据库对象(诸如数据库索引)可以由目标服务器系统120创建,而不是从源服务器系统110被复制。在系统100的示出的实施例中,目标服务器系统120正在执行为由存储资源存储的数据库创建索引文件的迁移脚本123-3。
存储资源124可以表示目标服务器系统120的一个或多个(非临时性)计算机可读存储介质,诸如硬盘驱动器和固态驱动器。存储资源124可以存储从源服务器系统110的存储资源114复制的数据库和其它数据库对象。存储资源124可以附加地存储由目标服务器系统 120创建的数据库对象,诸如数据库索引。
附加地,处理资源122可以执行确认由目标服务器系统120存储的复制数据库对象与由源服务器系统110存储的源数据库对象匹配的迁移验证脚本。这种验证迁移脚本可以包括在这两个数据库对象上执行的行计数,以确定这些计数是否匹配(可以不执行个体数据元素的比较)。一旦使源服务器系统110离线并且已在目标服务器系统120 的对应的数据库对象中复制对由源服务器系统110维护的数据库对象的记录做出的所有修改,就可以执行验证脚本。由目标服务器系统 120执行的迁移脚本123可以被并行执行。
网络140可以包括可用于在源服务器系统110和目标服务器系统 120之间的通信的一个或多个网络。网络140可以包括一个或多个公共网络(诸如互连网)和/或一个或多个私有网络(诸如企业内部网)。在一些实施例中,在源服务器系统110和目标服务器系统120之间可以存在直接连接,以便于更快的数据传送。网络140也可以允许源服务器系统110、目标服务器系统120、调度者计算机系统130 和远程管理员计算机系统150之间的通信。由源服务器系统110处理的请求和响应可以经由网络140发生。
调度者计算机系统130可以表示与源服务器系统110和目标服务器系统120分离的计算机系统。可替代地,调度者计算机系统130的功能可以由源服务器系统110或目标服务器系统120中的任意一个来执行。例如,在一些实施例中,调度者可以由目标服务器系统120来执行。调度者计算机系统130可以被配置为控制何时迁移脚本被源服务器系统110和目标服务器系统120执行。给定要被执行的迁移脚本列表,调度者计算机系统130可以被配置为确定执行的次序,以优化从源服务器系统110到目标服务器系统120的迁移。调度者计算机系统130可以被配置为查询源服务器系统110和/或目标服务器系统120,以确定在每个服务器系统处可用的处理资源量。基于对可用处理资源的评估,可以更改要由源服务器系统110和/或目标服务器系统120 执行的迁移脚本的数量和/或哪些迁移脚本要被执行。
在一些实施例中,正在管理迁移的数据库管理员可以直接向调度者计算机系统130提供输入。这种输入可以在迁移期间发生;因此,数据库管理员可以能够在迁移进行时修改迁移过程的特性。可以允许数据库管理员定义管理调度者计算机系统130的特定参数。例如,数据库管理员可以定义可被源服务器系统110和/或目标服务器系统120 同时执行的迁移脚本的最大数量。在其它实施例中,不是数据库管理员直接向调度者计算机系统130提供输入,而是数据库管理员可以使用远程管理员计算机系统150向调度者计算机系统130提供输入。因此,管理员可以能够在基于云的布置中执行迁移。调度者计算机系统 130和/或远程管理员计算机系统150可以位于远离源服务器系统110 和/或目标服务器系统120的位置。因此,可能基于合同被聘用的数据库管理员(诸如来自为源服务器系统110和/或目标服务器系统120 开发数据库软件和/或硬件的公司)可以能够执行数据库安装从源服务器系统110到目标服务器系统120的基于云的迁移。
图2示出了支撑云平台200的实施例。可以使用该平台来实现服务,诸如从客户的源服务器系统到客户的目标服务器系统的迁移。服务可以利用该平台来设计、使得可用于部署、被部署到客户和被监视。客户数据中心202可以包括一个或多个目标系统212、214(其中一个可以是客户的源服务器系统,另一个是客户的目标服务器系统),该一个或多个目标系统212、214可以是由平台提供的服务的(一个或多个)目标。目标系统可以是运行或执行由客户使用的数据库和/ 或其它数据库软件的服务器、计算机、机架系统等。目标系统可以是能够使服务交付的硬件或软件实体,并且可以是主机、数据库、web logic服务等。在客户数据中心202中,目标系统212、214可以由数据中心202本地的管理员来管理。管理员可以具有对目标系统212、 214的物理访问。支撑云平台200可以从远程位置经由远程接口提供对目标系统的管理和其它服务。因此,支撑云平台200可以用作用于图1的远程管理员计算机系统150如何与从源服务器系统110到目标服务器系统120的迁移交互的平台。位于数据中心202中的网关210 提供对客户数据中心202和一个或多个目标系统212、214的远程访问。网关210可以是在客户数据中心处安装的硬件或虚拟软件设备。网关210利用通信模块206通过网络232(其可以表示图1的网络 140)经由安全连接而连接到服务提供者的产品云204。网关210可以可选地具有接口模块208,从而允许对网关210与服务提供者的产品云204的交互的控制。
服务可以利用平台的公共服务开发框架来生成和开发。公共服务开发框架可以包括服务设计230、交付工程228和工程基础设施226 模块。公共服务开发框架可以利用可在整个交付过程(手动和/或自动)使用的公共组件,并且可以使得能够进行服务的高效设计、开发、测试和发布。平台的公共服务开发框架使得服务开发能够至少部分自动化。
平台使得交付工程师能够自动化他们正在开发和实现的服务。在一些实施例中,服务的开发可以通过使用可重用组件来自动化或简化。例如,在服务中使用的许多相同的部署、执行和错误处理功能可以被设计为可重用组件。这些组件可以在许多服务中被重用,从而允许服务的设计和编码集中在服务的新核心功能上。利用该平台,服务可以在一个或多个中央位置来设计和实现。集中式服务设计和开发平台使得能够实现利用可重用组件和模块的分层和结构化服务设计。由于服务的组件的大部分可以从现有的可重用组件中进行组装,因此服务的开发可以至少部分地被自动化。
在服务被设计、开发和测试之后,它们可以被存储在产品云204 处。例如,服务可以包括图1的修改复制器116,其可以在在线迁移之前被安装在客户的源服务器系统处。类似地,图1的调度者计算机系统130的功能可以被实现为从产品云204部署的服务。产品云204 可以包括服务222和内容库224的库。服务和内容可以从产品云204部署到在客户数据中心202处的一个或多个目标系统212、214。服务的开发、监视等可以利用经由通信模块206、216来自在产品云 204处的门户218和商业模块220以及在客户数据中心202处的网关210和接口模块208的交互来布置。服务的设计、部署和监视可以从产品云204远程地执行,而无需在客户数据中心202处的管理员或工程师。平台的门户218可以提供服务的远程控制和管理、部署的控制以及结果的分析。
可以使用图2的平台来开发、部署和管理用于客户数据中心202 和目标系统212、214的服务。网关210具有对目标系统212、214的访问。以软件、脚本、函数等形式的服务可以从产品云204中下载。用于产品云204的商业模块220和门户提供了界面、选择工具、监视工具,以用于选择服务和监视要被部署在客户数据中心202中的服务。在客户数据中心202处的管理员可以利用门户218和商业模块220查看、选择和监视服务。客户可以利用在客户数据中心202处的界面模块208访问门户218和商业模块220。界面模块可以经由通信模块 206具有对门户218和商业模块的直接或间接访问。例如,利用支撑云平台200,可以利用商业模块220来选择服务。可以利用接口模块 208来访问商业模块220。一旦服务被选择并且被配置用于目标系统 212、214,该服务就可以从产品云204经由网关210部署到客户数据中心202。网关可以将服务部署到目标系统上。可以使用网关210来收集数据统计、监视服务和接收关于客户数据中心和目标系统的系统信息。数据可以被处理、分析和传输到产品云。可以使用数据向客户建议或部署服务、利用门户218呈现客户的目标服务器的统计或度量。因此,在不需要管理员亲自到客户站点来访问源服务器系统和目标服务器系统的情况下,管理员可以能够执行从源服务器系统到目标服务器系统的迁移。
图3示出了修改复制器300的实施例。修改复制器300可以表示图1的修改复制器116或者可以表示修改复制器的一些其它实现。修改复制器300可以用来监视对由源服务器系统(诸如图1的源服务器系统110)处理的数据库对象做出的更改(以及可能的其它相关事务)。此外,修改复制器300可以将这些更改传播到已被复制到目标服务器系统但还未使其在目标服务器系统(诸如图1的目标服务器系统120)处在线的对应的数据库对象。修改复制器300可以被实现为软件、固件和/或专用硬件。在许多实施例中,修改复制器300是安装在源服务器系统并由其执行的软件。例如,修改复制器300可以在将要执行在线迁移之前被安装在源服务器系统上。修改复制器300可以包括各种组件。这些组件中的每个组件可以被实现为(由诸如图7 的计算机系统700的通用计算机系统组件执行的)软件、固件和/或专用计算机硬件。此外,修改复制器300的各个组件的功能可以被合并到较少的组件中或者被划分到较多的组件中。修改复制器300可以包括:复制监视引擎310、修改托盘320、时间顺序标识符计数器 330和传播引擎340。
复制监视引擎310可以接收在由源服务器系统维护的数据库对象 (例如,表)中实现的更改请求。因此,每当数据库的记录要被源服务器系统修改时,复制监视引擎310就会接收被实现的更改请求的副本。在一些实施例中,不导致数据库对象更改的请求可以不被复制监视引擎310接收和/或存储。例如,对由源服务器系统维护的数据库的记录的读请求可以不被复制监视引擎310存储。对于由源服务器系统履行的更改请求,执行的更改可以通过复制监视引擎310记录在修改托盘320中。复制监视引擎310可以给更改请求分配时间顺序标识符,该时间顺序标识符可以由时间顺序标识符计数器330产生。因此,由复制监视引擎310接收的修改请求可以带有由时间顺序标识符计数器330提供的时间顺序标识符被记录到修改托盘320。
修改托盘320可以存储对由源服务器系统维护的一个或多个数据库对象的记录做出的修改。当更改请求被存储到修改托盘320时,可能已经对由源服务器系统维护的对应的数据库对象做出这个更改请求或者正在做出这个更改请求的过程中。因此,记录到修改托盘320的更改请求在源服务器系统处实现。示例托盘部分325提供了可以在修改托盘320中存在的四个条目的简化例子,该条目基于由源服务器系统接收并处理的更改请求。时间顺序标识符(可以是由时间顺序标识符计数器330提供的系统更改号(SCN))可以被链接到更改请求。每个更改请求可以指定要被更改的数据库、记录和/或字段。此外,更改请求可以指示要被更改的记录的字段的值。其它形式的更改请求是可能的,包括添加新的记录、删除记录或者一些其它形式的更改请求。可以将每种类型的更改请求记录到修改托盘320。应该理解,示例托盘部分325被极大地简化;指示的每个更改请求可以具有明显更多的数据存在,以便正确地指示要被更改的适当的数据库、数据库的记录和/或记录的字段以及要对那个数据库、数据库的记录和/或记录的字段做出的更改。
时间顺序标识符计数器330可以被配置为向对源服务器系统的数据库执行的每个更改分配时间顺序标识符。在一些实施例中,时间顺序标识符计数器330可以从复制监视引擎310接收何时对数据库做出更改的指示。在一些实施例中,作为响应,时间顺序标识符计数器 330输出系统更改号(SCN),该系统更改号(SCN)可以按时间顺序分配。每个SCN是按时间顺序分配的。例如,对源服务器系统的数据库做出的第一更改可以被分配1的SCN,对源服务器系统的相同或不同数据库做出的第二更改可以被分配2的SCN。因此,SCN 是按时间顺序分配的;但是,可能无法识别在SCN的分配之间流逝的时间量。例如,在被分配给更改的SCN 1和SCN 2之间可能已流逝了1毫秒或者3分钟。在一些实施例中,时间顺序标识符计数器 330可以使用时间戳的形式来代替SCN。
除了将SCN分配给由源服务器系统接收和处理的更改请求之外,可以当启动数据库对象从源服务器系统到目标服务器系统的复制时,分配SCN(或以其它方式记录)。因此,由于SCN是按时间顺序分配的,因此可以确定,如果更改与被复制的数据库相关,则哪些更改是在复制被启动之前在数据库对象中实现的。由修改托盘320存储的、具有按时间顺序比指示何时数据库对象从源服务器系统到目标服务器系统的复制被启动的SCN晚(例如,更高)的SCN的、影响数据库对象的更改请求指示该更改请求将需要被传播到目标服务器系统,以更新如由目标服务器系统存储的数据库对象。具有按时间顺序比指示何时数据库对象从源服务器系统到目标服务器系统的复制被启动的 SCN早(例如,更低)的SCN的、影响数据库对象的更改请求指示该更改请求将不需要在以后的时间被传播到目标服务器系统,因为该更改已经在复制到目标服务器系统的数据库对象的版本中实现。
将数据库对象从源服务器系统复制到目标服务器系统会花费相当长的时间量。例如,数据库对象在尺寸上可能是数百千兆字节或者数百兆兆字节。这种尺寸加上源服务器系统和目标服务器系统之间可用的有限带宽量以及源服务器系统处于在线会导致复制需要许多分钟、小时或者甚至数天来完成。因此,虽然数据库对象的复制正在进行,但是源服务器系统会接收到并处理对那个数据库对象的大量更改请求。由源服务器系统存储的数据库对象可能在复制进行时根据更改请求被修改。但是,数据库对象会基于在复制被初始化时的数据库对象的内容复制到目标服务器系统。因此,当复制被初始化时,由源服务器系统存储的数据库的这个版本用作被复制到目标服务器系统的数据库对象的快照。基于在复制期间与对数据库的记录做出的每个更改一起存储的SCN,如由源服务器系统在复制初始化时存储的每条记录的版本而不是在复制初始化之后按照处理的更改请求修改的记录的版本将被传送到目标服务器系统。虽然记录的“旧”版本将在数据库对象到目标服务器系统的初始传送期间被复制,但是该记录将在数据库对象的初始传送被完全复制之后的某个时间根据更改请求被更新。
将数据库对象从源服务器系统复制到目标服务器系统可能会花费足够长的时间段,使得在复制启动时的一条或多条记录的一个或多个字段的值不再可用。在这种情况下,数据库对象从源服务器系统到目标服务器系统的复制可以被重新启动,并且可能的话尝试更快地完成 (以减少这种问题再次发生的可能性)。为了更快地完成复制,可以降低由源服务器系统并行处理的迁移脚本的数量、可以增加在源服务器系统和目标服务器系统之间可用的通信带宽量、和/或可以增加对由在线的源服务器系统接收到的请求的响应时间。
在数据库对象已从源服务器系统复制到目标服务器系统之后,目标服务器系统可能具有只在复制被启动时的当前的数据库对象的版本。因此,可能需要使用记录到修改托盘320的许多更改请求来更新由目标服务器系统存储的数据库对象的版本,以便使由目标服务器系统存储的数据库对象是当前最新的(并且与由源服务器系统存储的对应的数据库对象匹配)。传播引擎340当从管理员和/或从调度者计算机系统接收输入时可以将由修改托盘320存储的更改请求传播到如由目标服务器系统存储的数据库对象。为了将更改传播到由目标服务器系统存储的数据库,传播引擎340可以检查与数据库对象的复制的初始化对应的SCN(其可能已被诸如调度者计算机系统记录在修改托盘 320中或者在一些其它位置)。由修改托盘320存储的、具有比与复制的初始化对应的SCN更早的SCN的所有更改请求可以被忽略。 (由于在许多实施例中,由于在不同时间为各种数据库对象启动从源服务器系统到目标服务器系统的复制,迁移中可能涉及大量的数据库对象,因此可能影响第一数据库对象的更改请求不会与在以后时间开始复制的其它数据库对象相关)。可以检查由修改托盘320存储的、具有比与复制的初始化对应的SCN晚的SCN的更改请求。如果更改请求涉及数据库对象,则在目标服务器系统处的该数据库对象可以根据更改请求被更改。在由目标服务器系统存储的数据库对象已被更新之后,由修改托盘320存储的更改请求可以被记录为完成或者可以从修改托盘320中删除。修改托盘320和传播引擎340的这种使用可以对被从源服务器系统复制到目标服务器系统的每个数据库对象发生。
在数据库对象已被从源服务器系统复制到目标服务器系统并且在修改托盘320中存储的更改已被用来更新如由目标服务器系统存储的数据库对象之后,更改请求可以继续由仍然在线的源服务器系统接收和处理,以修改由源服务器系统维护的数据库对象。此外,这些更改请求可以继续由复制监视引擎310接收和处理、被时间顺序标识符计数器330分配SCN、并且被存储在修改托盘320中。当必要的源服务器系统和目标服务器系统资源可用时,传播引擎340可以使来自修改托盘320的更改请求更新目标服务器系统的对应的数据库对象。因此,当更改请求被源服务器系统接收到时,修改托盘320可以被理解为用作用于要在目标服务器系统实现的更改请求的缓冲区。在大多数实施例中,传播引擎340可以使在目标服务器系统处的更改请求以比由源服务器系统接收到的更改请求更快的速度实现。因此,随着时间的推移,由于由修改托盘320存储的更改请求的任何待办事项 (backlog)在由目标服务器系统存储的数据库对象中被实现,因此可以预计来自修改托盘320的要在目标服务器系统处实现的更改请求的数量将降低。
图4示出了用于当数据库正在服务器系统之间被迁移时为源服务器系统的数据库内的记录处理更改请求的示例性时间线400的实施例。在示例性时间线400中,三个数据库正在从源服务器系统(诸如图1 的源服务器系统110)迁移到目标服务器系统(诸如图1的目标服务器系统120)。在迁移期间数据库从源服务器系统到目标服务器系统的这种复制可以在源服务器系统在线时执行。调度者计算机系统可以确定何时来自源服务器系统的多个数据库要复制到目标服务器系统。
在时间0处,调度者计算机系统使第一数据库的复制初始化。第一数据库410-1的复制可以从时间0开始发生直到t6。对应于时间0,可以记录指示第一数据库的复制已开始的SCN。第一数据库410-1 的复制可以是复制如由源服务器系统在时间0时存储的第一数据库的映像。更改请求可以在t1被源服务器系统接收到。t1的更改请求可以请求对第二数据库中的纪录的更改。响应于这个更改请求,第二数据库可以被更新并且该更改请求可以由修改复制器(诸如修改复制器 116)与指示比在时间0时记录的SCN晚的时间的SCN相关联地存储。
在时间t2,调度者计算机系统使第二数据库的复制初始化。第二数据库410-2的复制可以从t2开始发生直到t9。对应于t2,可以记录指示第二数据库的复制已开始的SCN。这个SCN将在时间顺序上晚于与在时间0时的初始化或在t1的更改请求对应的SCN。从t2直到 t6,第一数据库和第二数据库被并行地从源服务器系统复制到目标服务器系统。在t3,另一个更改请求被在线的源服务器系统接收到。t3的更改请求可以请求对第一数据库中的纪录的更改。t3的更改请求可以被源服务器系统处理,使得在第一数据库的复制进行时第一数据库被更新。但是,如被复制到目标服务器系统的第一数据库的版本可以不受影响(例如,第一数据库可以能够基于SCN排序为字段存储多个值)。此外,t3的更改请求可以被修改复制器存储,使得与t3的更改请求相关联的SCN连同t3的更改请求一起被记录在修改托盘中。在t6之后的某个时间,当第一数据库已被完全复制时,修改复制器可以使t3的更改请求在目标服务器系统的对应的数据库处实现。
在时间t4,调度者计算机系统使第三数据库的复制初始化。第三数据库410-3的复制可以从t4开始发生直到t11。对应于t4,可以记录指示第三数据库的复制已开始的SCN。这个SCN将在时间顺序上晚于与在时间0、t1、t2和t3处的事件对应的SCN。从t4直到t6,第一数据库、第二数据库和第三数据库被并行地从源服务器系统复制到目标服务器系统。从t4直到t9,第二数据库和第三数据库被并行地复制。在t5,另一个更改请求被在线的源服务器系统接收到。t5的更改请求可以请求对第三数据库中的纪录的更改。t5的更改请求可以被源服务器系统处理,使得第三数据库在源服务器系统处被更新。但是,如被复制到目标服务器系统的、来自t4的第三数据库的快照可以不受影响。此外,t5的更改请求可以被修改复制器记录,使得与t5的更改请求相关联的SCN连同该更改请求一起被记录。在t11之后的某个时间,当第三数据库已完成到目标服务器系统的复制时,修改复制器可以使 t5的更改请求在目标服务器系统处实现。
在t6,第一数据库410-1的复制可以完成。这一复制是第一数据库在时间0时的快照。与第一数据库相关的更改请求(诸如t3的更改请求)可以在t6之后在由目标服务器系统存储的第一数据库的副本处实现。在t7,另一个更改请求被在线的源服务器系统接收到。t7的更改请求可以请求对第一数据库中的记录的更改。t7的更改请求可以被源服务器系统处理,使得由源服务器系统存储的第一数据库被更新。虽然第一数据库已被初始地复制到目标服务器系统,但是该更改请求会需要被推送到目标服务器系统用于实现。t7的更改请求可以被修改复制器记录,使得与更改请求t7相关联的SCN连同该更改请求一起被记录。在当有足够资源可用时的某个时间,由于t7的更改请求的SCN指示比当第一数据库的复制被初始化时的时间0的SCN晚的时间,因此t7的更改请求可以在驻留在目标服务器系统的数据库的副本处实现。
在t8,另一个更改请求被在线的源服务器系统接收到。更改请求 t8可以请求对第二数据库中的记录的更改。更改请求t8可以被源服务器系统处理,使得第二数据库在源服务器系统处被更新。但是,如被复制到目标服务器系统的第二数据库可以不受影响。此外,t8的更改请求可以被修改复制器记录,使得与更改请求t8相关联的SCN连同 t8的更改请求一起被记录。在t9之后的某个时间,当第二数据库已完成复制时,由于t8的更改请求的SCN指示在与t2的第二数据库的复制的初始化相关的SCN之后的时间,因此修改复制器可以使t8的更改请求在由目标服务器系统存储的第二数据库的副本处实现。
在t9,第二数据库410-2的复制可以完成。这一复制是第二数据库在t2的快照。与第二数据库相关的更改请求,诸如t8的更改请求,可以在t9之后在由目标服务器系统存储的第二数据库的副本处实现。但是,在t2之前实现的t1的更改请求将不需要在由目标服务器系统存储的第二数据库的副本中实现,因为该数据库在t2的快照已经包含了此更改。这种情况是通过比较t1的更改请求的SCN和与第二数据库在t2的复制的初始化有关的SCN来指示的。
在t10,另一个更改请求被在线的源服务器系统接收到。t10的更改请求可以请求对第三数据库中的纪录的更改。t10的更改请求可以被源服务器系统处理,使得第三数据库被更新。虽然第三数据库处于被复制到目标服务器系统的过程中,但是t10的更改请求将需要在以后的时间被推送到目标服务器系统。更改请求t10可以被修改复制器记录,使得与t10的更改请求相关联的SCN连同该更改请求的副本被记录在修改托盘中。在t11之后的某个时间,当第三数据库410-3的快照的复制完成时,基于t10的更改请求的SCN和与第三数据库在t4的复制的初始化相关联的SCN的比较,t10的更改请求可以在驻留在目标服务器系统的第三数据库的副本处实现。
在晚于t11的某个时间,当已将所有数据库从源服务器系统复制到目标服务器系统并且已实现由修改复制器存储的所有更改请求时,可以使源服务器系统离线并且可以使目标服务器系统在线以完成迁移。
应当理解,示例性时间线400可能是简化的例子。在一些布置中,可能存在数千个数据库对象需要从源服务器系统复制到目标服务器系统。这些数据库对象中的一些可能花费数秒来复制,而另一些可能花费数小时或者几天的时间。
可以利用关于图1-3描述的系统执行各种方法。图5示出了用于执行服务器系统之间的在线迁移的方法500的实施例。方法500的迁移包括将数据库对象从源服务器系统传送到目标服务器系统,诸如关于图1所描述的。应该理解,方法500的概念可以应用到在源服务器系统和目标服务器系统之间传送的多个数据库对象。这种多个数据库对象的传送可以包括至少部分并行地传送数据库对象,诸如关于图4 所举例说明的。方法500的步骤可以由图1的系统100或配置为执行服务器系统之间的在线迁移的一些其它系统来执行。因此,用于执行方法500的装置可以包括图1的系统100的组件的一个或多个实例。方法500的步骤可以利用图7的计算机系统700的计算机组件的一个或多个实例来执行。方法500的步骤可以在源服务器系统在线时执行 (意味着源服务器系统正在接收和履行数据库请求,包括数据库更改请求)。
在步骤510处,可以启动数据库对象(诸如数据库表)从源服务器系统到目标服务器系统的传送。在步骤510处的数据库对象的传送花费一段时间来完成。在这段时间期间,对正在被传送的数据库对象做出的任何更改不会反映在数据库的复制到目标服务器系统的版本中。在步骤510处的数据库对象的传送的启动可以基于使源服务器系统执行迁移复制脚本的调度者计算机系统。这种迁移复制脚本会使数据库对象被从源服务器系统复制到目标服务器系统。
在步骤520处,可以记录与在步骤510处的传送的初始化对应的时间指示。该时间指示可以是SCN。在步骤520处记录的SCN可以按时间顺序来创建。因此,与较低SCN相关联的事件会在步骤510 处的传送的初始化之前发生;与较高SCN相关联的事件会在步骤 510处的传送的初始化之后发生。应该理解,在其它实施例中,时间指示可以采用除SCN之外的其它形式。
在步骤530处,源服务器系统可以处理涉及正在被传送的数据库的各种数据库请求。因此,在步骤530处,当数据库请求正在被源服务器系统处理时,数据库对象的传送正在进行。可以在步骤530处被处理的一种形式的数据库请求是读请求。响应于读请求,源服务器系统可以指示数据库对象的一条或多条记录的一个或多个字段的当前值。响应于读请求返回的值可能不与作为传送的一部分复制到目标服务器系统的值相匹配。传送包括将复制初始化时当时的数据库的快照复制到目标服务器系统。如果在步骤510的初始化之后但是在读请求之前,该值被更改(例如,响应于更改命令),则响应于读请求返回的值将与复制到目标服务器系统的值不同。可以在步骤530处被处理的另一种形式的数据库请求是更改请求。这种更改请求可以包括修改数据库的一条或多条记录的一个或多个字段、向数据库添加记录或者从数据库中删除记录。更改请求可以在步骤530处被源服务器系统处理,从而按照该更改请求更新数据库对象。但是,被传送到目标服务器系统的数据库的快照将最初不反映该更改请求。
在步骤540处,对于导致由源服务器系统存储的数据库对象的更改的每个更改请求,该数据库请求的副本可以连同时间指示一起被储存。这里同样,时间指示可以是SCN。参考图1,修改复制器116可以存储由源服务器系统110处理的每个更改请求的副本(到该数据库对象和其它数据库对象)。现在参考图3,修改复制器可以将更改请求的副本连同SCN(或其它形式的时间顺序标识符)一起存储到修改托盘320。
在步骤550处,可以完成数据库对象从源服务器系统到目标服务器系统的传送。传送到目标服务器系统的数据库对象的版本可能只是在步骤510处的传送的初始化时当时的版本。因此,导致源服务器系统在传送初始化之后修改数据库对象的任何更改请求不会反映在现在由目标服务器系统存储的数据库的版本中。如果数据库对象的尺寸小,则从步骤510到步骤550流逝的时间量会小,诸如几秒钟;但是,如果数据库对象的尺寸大(例如,数百千兆字节),则流逝的时间量会明显更长,诸如若干小时或者可能超过一天。取决于数据库对象的传送花费多长时间以及数据库对象的记录多频繁地被修改,可能只有很少的更改请求在步骤530被接收到和处理以及在步骤540被存储;也可能有数百万的更改请求在步骤530被接收到和处理以及在步骤540 被存储,并且现在需要被传播到由目标服务器系统存储的数据库的版本,以使其是最新的。在步骤550处,数据库的旧版本已被完全复制到目标服务器系统。同时,源服务器系统仍然在线,从而维护数据库对象的最新版本并且处理所有的数据库请求。
在步骤560处,可以分析由修改复制器在步骤540处存储的更改请求。与指示在与步骤510的数据库对象的传送初始化链接的SCN 之前时间的SCN链接的每个更改请求可以被忽略。与指示在与步骤 510的数据库对象的传送初始化链接的SCN之后时间的SCN链接的并且与该数据库对象对应的每个更改请求可以被应用到该数据库对象的数据库对象的由目标服务器系统存储的副本。在步骤530处存储的更改请求的待办事项可以被应用到在目标服务器系统处的数据库,直到在目标服务器系统处的数据库是最新的并且与由源服务器系统存储的数据库的内容匹配。
在步骤570处,在源服务器系统仍然在线(并且目标服务器系统离线)时,数据库请求(包括更改请求在内)可以继续被源服务器系统接收和处理。源服务器系统可以根据更改请求更新对应的数据库对象。在步骤570处,每个更改请求可以被修饰复制器存储并且与SCN链接。由于这些更改请求的SCN指示在步骤510的初始化的 SCN之后的时间,因此在步骤560处这些更改请求中的每个更改请求将被排队并且应用到由目标服务器系统存储的对应的数据库对象。因此,在源服务器系统保持在线并且目标服务器系统离线时,复制到目标服务器系统的数据库对象继续被更新,以与源服务器系统的数据库对象的内容匹配。只要源服务器系统在线并且处理数据库请求,步骤560和570就可以继续重复。
图6示出了用于执行服务器系统之间的在线迁移的方法600的实施例。方法600的迁移包括将数据库对象从源服务器系统到目标服务器系统的传送,诸如关于图1所描述的。应该理解,方法600的概念可以应用到在源服务器系统和目标服务器系统之间传送的多个数据库对象。多个数据库对象的这种传送可以包括至少部分并行地传送数据库对象,诸如关于图4所举例说明的。方法600的步骤可以由图1的系统100或者配置为执行服务器系统之间的在线迁移的一些其它系统来执行。因此,用于执行方法600的装置可以包括图1的系统100的组件的一个或多个实例。方法600的步骤可以利用图7的计算机系统 700的计算机组件的一个或多个实例来执行。方法600的步骤可以在源服务器系统在线时执行(意味着源服务器系统正在接收和履行数据库请求,包括数据库更改请求在内)。方法600可以表示图5的方法 500的更详细的实施例。
在步骤605处,可以创建迁移脚本来将数据库对象从源服务器系统复制到目标服务器系统。迁移脚本可以被配置为当迁移脚本在线时被执行。可以创建迁移脚本,以当其被执行时,高效地将数据库对象从源服务器系统复制到目标服务器系统。在步骤610处,可以启动数据库对象(诸如数据库表)从源服务器系统到目标服务器系统的传送。在步骤610处的数据库对象的传送花费一段时间来完成。在这段时间期间,对正在被传送的数据库对象做出的任何更改不会反映在数据库的复制到目标服务器系统的版本中。在步骤610处的数据库对象的传送的启动可以基于使源服务器系统执行迁移复制脚本的调度者计算机系统。参考图1,调度者计算机系统130可以使迁移复制脚本由源服务器系统110执行;这种迁移复制脚本会使得数据库对象被从源服务器系统复制到目标服务器系统。除了将数据库对象从源服务器系统传送到目标服务器系统之外,数据库对象可以在目标服务器系统处被重新组织、被重新格式化、被压缩或以其它方式被重新加工,以减小其尺寸和/或提高性能。
在步骤615处,可以记录与在步骤610处的传送的初始化对应的时间指示。该时间指示可以是SCN。在步骤615处记录的SCN可以按时间顺序来创建。因此,与较低SCN相关联的事件会在步骤610 处的传送的初始化之前发生;与较高SCN相关联的事件会在步骤 610处的传送的初始化之后发生。应该理解,在其它实施例中,时间指示可以采用除SCN之外的其它形式。
在步骤620处,源服务器系统可以处理涉及正在被传送的数据库的各种数据库请求。因此,在步骤620处,在数据库请求正在被源服务器系统处理时,数据库对象的传送正在进行。可以在步骤620处被处理的一种形式的数据库请求是读请求。可以在步骤620处被处理的另一种形式的数据库请求是更改请求。这种更改请求可以包括修改数据库的一条或多条记录的一个或多个字段、向数据库添加记录或者从数据库中删除记录。更改请求可以在步骤620处被源服务器系统处理,从而按照更改请求更新数据库对象。
在步骤625处,对于导致对由源服务器系统存储的数据库对象的更改的每个更改请求,该数据库请求的副本可以连同时间指示一起被储存。这里同样,时间指示可以是SCN。参考图1,修改复制器116 可以存储由源服务器系统110处理的每个更改请求的副本(到该数据库对象和其它数据库对象)。现在参考图3,修改复制器可以将更改请求的副本连同SCN(或其它形式的时间顺序标识符)一起存储到修改托盘320。
在步骤630处,可以完成数据库对象从源服务器系统到目标服务器系统的传送。传送到目标服务器系统的数据库对象的版本可能只是在步骤610处的传送的初始化时当时的版本。因此,导致源服务器系统在传送初始化之后修改数据库对象的任何更改请求不会反映在现在由目标服务器系统存储的数据库的版本中。在步骤630处,数据库的旧版本已被完全复制到目标服务器系统。同时,源服务器系统仍然在线,从而维护数据库对象的最新版本并且处理所有的数据库请求。
在步骤635处,可以分析由修改复制器在步骤625处存储的更改请求。与指示在与步骤610的数据库对象的传送初始化链接的SCN 之前时间的SCN链接的每个更改请求可以被忽略。与指示在与步骤 610的数据库对象的传送初始化链接的SCN之后时间的SCN链接的并且与该数据库对象对应的每个更改请求可以被应用到数据库对象的由目标服务器系统存储的副本。在步骤625处存储的更改请求的待办事项可以被应用到在目标服务器系统处的数据库,直到在目标服务器系统处的数据库是最新的并且与由源服务器系统存储的数据库的内容匹配。
在步骤640处,在源服务器系统仍然在线(并且目标服务器系统离线)时,数据库请求(包括更改请求在内)可以继续被源服务器系统接收和处理。源服务器系统可以根据更改请求更新对应的数据库对象。在步骤640处,每个更改请求可以被修饰复制器存储并且与SCN链接。由于这些更改请求的SCN指示在步骤610的初始化的 SCN之后的时间,因此在步骤640处这些更改请求中的每个更改请求将被排队并且应用到由目标服务器系统存储的对应的数据库对象。因此,在源服务器系统保持在线并且目标服务器系统离线时,复制到目标服务器系统的数据库对象继续被更新,以与源服务器系统的数据库对象的内容匹配。只要源服务器系统在线并且处理数据库请求,步骤635和640就可以继续重复。如果源服务器系统的数据库对象频繁地接收到更改请求,则可能存在将需要被应用到由目标服务器系统存储的数据库对象的连续队列的更改请求。因此,只要源服务器系统在线,就会在源服务器系统的最新数据库对象和目标服务器系统的经由传播引擎更新的数据库对象之间存在一定量的延迟。
在步骤645处,可以使在线的源服务器系统离线以完成迁移。此时,所有数据库对象都可能已被复制到目标服务器系统。这两个服务器系统现在都离线;因此,哪个服务器系统都不接收或对数据库请求做出响应。在步骤650处,已在源服务器系统处实现但没有在目标服务器系统处实现的并且被修改复制器排队的所有剩余的更改请求都可以被应用到目标服务器系统。由于更改请求被不断地推送到目标服务器系统,因此可以预期来自修改托盘的很少的更改请求需要在目标服务器系统处实现。一旦这些最后的更改请求被应用到目标服务器系统的对应的数据库对象,目标服务器系统的内容数据库对象就应该与源服务器系统的数据库对象匹配。因此,在步骤650之后,源服务器系统和目标服务器系统完全同步。结构上,源服务器系统和目标服务器系统的数据库对象可以不匹配,因为,当数据库对象被复制时,为了效率,数据库对象中的一些或全部数据库对象可能已被重新格式化或者被重新组织。数据库对象也可能已被压缩以节省存储空间。
如果客户期望的话,源服务器系统的数据库对象中的一些或全部数据库对象可以与目标服务器系统的对应的数据库对象进行比较,作为在步骤655处的迁移的验证。一种形式的验证可以是行计数。不是比较在数据库对象的表的各条记录中存在的值,而是源服务器系统的数据库对象中的记录(行)的数量可以与目标服务器系统的对应的数据库对象中的记录的数量进行比较。如果行的数量匹配,则客户可以至少被确保在传送期间不可能有任何记录丢失。但是,理想地,可以在源服务器系统和目标服务器系统之间比较在每条记录中存在的每个值,这种比较会花费相当多的时间量。在此期间,源服务器系统和目标服务器系统两者都可能离线;因此,任何一个服务器系统都不对数据库请求做出响应。客户可能愿意接受较不详尽的行计数的比较,因为这种形式的验证过程增加了速度。
在步骤660处,可以使目标服务器系统在线。在一些情况下,监督迁移的数据库管理员可以使目标服务器系统在线。数据库管理员可以亲自或者经由远程管理员计算机系统使目标服务器系统在线,该远程管理员计算机系统可以通过网络与源服务器系统和目标服务器系统通信。当基于数据库对象的验证,客户对目标服务器系统的数据库对象与源服务器系统的数据库对象的内容匹配满意时,数据库管理员可以使目标服务器系统在线。在步骤660之后,目标服务器系统现在可以对数据库请求做出响应。源服务器系统将保持离线,在许多情况下将永久地保持离线。
图7示出了计算机系统的实施例。如在图7中所示出的计算机系统可以被结合,诸如源服务器系统、目标服务器系统和远程管理员计算机系统的作为之前描述的计算机化设备的一部分。图7提供了可以执行由各种实施例提供的方法的各种步骤的计算机系统700的一种实施例的示意性示图。应当指出,图7只是要提供各种组件的一般化示图,其中这些组件中的任何或全部组件可以被适当地加以利用。因此,图7广义地示出了各个系统元素可以如何以相对分离或相对较集成的方式来实现。
计算机系统700被示为包括可以经由总线705被电耦合(或者适当地可以以其它方式进行通信)的硬件元件。硬件元件可以包括一个或多个处理器710,包括但不限于,一个或多个通用处理器和/或一个或多个专用处理器(诸如数字信号处理芯片、图形加速处理器、视频解码器等);一个或多个输入设备715,其可以包括但不限于鼠标、键盘、遥控器等;以及一个或多个输出设备720,其可以包括但不限于显示设备、打印机等。
计算机系统700还可以包括一个或多个非临时性存储设备725 (和/或与其通信),非临时性存储设备可以包括但不限于,本地和/ 或网络可访问存储装置和/或可以包括但不限于盘驱动器、驱动器阵列、光存储设备、固态存储设备,诸如随机存取存储器(“RAM”)和/或只读存储器(“ROM”),其可以是可编程的、闪存可更新的等。此类存储设备可以被配置为实现任何适当的数据存储库,包括但不限于,各种文件系统、数据库结构等。
计算机系统700也可以包括通信子系统730,其可以包括但不限于调制解调器、网卡(无线或有线)、红外通信设备、无线通信设备、和/或芯片组(诸如蓝牙TM设备、802.11设备、WiFi设备、WiMax 设备、蜂窝通信设备等),等等。通信子系统730可以允许与网络 (仅举一个例子,诸如下面描述的网络)、其它计算机系统和/或本文所述的任何其它设备交换数据。在许多实施例中,计算机系统700 还将包括工作存储器735,其可以包括如上所述的RAM或ROM设备。
计算机系统700也可以包括被示为当前位于工作存储器735内的软件元素,包括操作系统740、设备驱动器、可执行库和/或其它代码,诸如一个或多个应用程序745,其中应用程序可以包括由各种实施例提供的计算机程序,和/或可以被设计为实现由其它实施例提供的方法和/或配置由其它实施例提供的系统,如本文所描述的。仅仅作为例子,关于以上讨论的(一个或多个)方法所描述的一个或多个过程可以被实现为可由计算机(和/或计算机内的处理器)执行的代码和/ 或指令;于是,在一方面,这种代码和/或指令可以用来配置和/或适配通用计算机(或其它设备),以根据所述方法执行一个或多个操作。
这些指令和/或代码的集合可以存储在非临时性计算机可读存储介质上,诸如上述(一个或多个)非临时性存储设备725。在一些情况下,存储介质可以被结合在诸如计算机系统700的计算机系统中。在其它实施例中,存储介质可能与计算机系统分离(例如,可拆卸介质,诸如光盘),和/或在安装包中提供,使得存储介质可以被用来利用其上存储的指令/代码来编程、配置和/或适配通用计算机。这些指令可能采用可由计算机系统700执行的可执行代码的形式,和/或可以采用源代码和/或可安装代码的形式,该源代码和/或可安装代码当在计算机系统700上编译和/或安装时(例如,利用任何各种一般可获得的编译器、安装程序、压缩/解压缩实用程序等),则采用可执行代码的形式。
对本领域技术人员来说将很显然,可以根据具体需求做出实质性的变化。例如,也可以使用定制的硬件和/或可以用硬件、软件(包括可移植软件,诸如applet等),或者二者来实现特定的元件。另外,可以采用到诸如网络输入/输出设备的其它计算设备的连接。
如以上所提到的,在一方面,一些实施例可以采用计算机系统 (诸如计算机系统700)来执行根据本发明的各种实施例的方法。根据一组实施例,此类方法的一些或全部过程由计算机系统700响应于处理器710执行包含在工作存储器735中的一条或多条指令的一个或多个序列(该一条或多条指令可以结合到操作系统740和/或其它代码中,诸如应用程序745)而执行。这种指令可以从另一计算机可读介质(诸如(一个或多个)非临时性存储设备725中的一个或多个) 读取到工作存储器735中。仅仅作为例子,执行包含在工作存储器735中的指令序列会使得(一个或多个)处理器710执行本文所述方法的一个或多个过程。
如本文所使用的,术语“机器可读介质”、“计算机可读存储介质”和“计算机可读介质”指参与提供使机器以特定方式操作的数据的任何介质。这些介质可以是非临时性的。在利用计算机系统700实现的实施例中,各种计算机可读介质可以参与向(一个或多个)处理器710提供用于执行的指令/代码和/或可以用来存储和/或携带这种指令/代码。在许多实现中,计算机可读介质是物理的和/或有形的存储介质。这种介质可以采用非易失性介质或易失性介质的形式。非易失性介质包括例如光和/或磁盘,诸如(一个或多个)非临时性存储设备725。易失性介质包括但不限于动态存储器,诸如工作存储器735。
物理的和/或有形的计算机可读介质的常见形式包括例如软盘、柔性盘、硬盘、磁带或者任何其它磁介质、CD-ROM、任何其它光学介质、任何其它具有标记模式的物理介质、RAM、PROM、 EPROM、FLASH-EPROM、任何其它存储器芯片或盒式磁带、或者计算机可以从中读取指令和/或代码的任何其它介质。
各种形式的计算机可读介质可以参与把一条或多条指令的一个或多个序列运送到(一个或多个)处理器710用于执行。仅仅作为例子,指令可以最初在远程计算机的磁盘和/或光盘上携带。远程计算机可以把指令加载到其动态存储器中并且把指令作为信号经传输介质发送,以便由计算机系统700接收和/或执行。
通信子系统730(和/或其组件)一般将接收信号,并且总线705 然后可以把信号(和/或由这些信号携带的数据、指令等)运送到工作存储器735,从中(一个或多个)处理器710检索和执行指令。由工作存储器735接收到的指令可以在被(一个或多个)处理器710执行之前或之后可选地存储在非临时性存储设备725上。
还应该理解,计算机系统700的组件可以跨网络分布。例如,一些处理可以在一个位置利用第一处理器执行,而其它处理可以由远离第一处理器的另一个处理器执行。计算机系统700的其它组件可以类似地分布。因此,计算机系统700可以被解释为在多个位置执行处理的分布式计算系统。在一些情况下,取决于上下文,计算机系统700 可以被解释为单个计算设备,诸如独特的膝上型电脑、台式计算机等。
以上所讨论的方法、系统和设备是例子。各种配置可以适当地省略、替换或添加各种过程或部件。例如,在可替代的配置中,方法可以按与所述不同的次序执行,和/或各个阶段可以被添加、省略和/或组合。此外,关于某些配置所描述的特征可以在各种其它配置中组合。配置的不同方面和元素可以以类似的方式组合。此外,技术在发展,并且因此,许多元素是例子并且没有限制本公开内容或权利要求的范围。
在描述中给出了具体细节,以提供对示例配置(包括实现)的透彻理解。但是,在没有这些具体细节的情况下,配置也可以被实践。例如,众所周知的电路、过程、算法、结构和技术没有示出不必要的细节,以避免模糊配置。这种描述仅仅提供示例配置,而没有限制权利要求的范围、适用性或配置。相反,之前对配置的描述将为本领域技术人员提供用于实现所述技术的可行描述。在不背离本公开内容的主旨或范围的情况下,可以对元素的功能和布置做出各种变化。
此外,配置可以被描述为被绘为流程图或框图的过程。虽然每个配置都可以把操作描述为顺序过程,但是许多操作可以并行地或者同时地执行。此外,操作的次序可以被重新布置。过程可以具有图中没有包括的附加步骤。此外,方法的例子可以由硬件、软件、固件、中间件、微代码、硬件描述语言或其任意组合来实现。当用软件、固件、中间件或微代码实现时,执行必要任务的程序代码或代码片段可以存储在诸如存储介质的非临时性计算机可读介质中。处理器可以执行所述的任务。
已经描述了若干种示例配置,在不背离本公开内容的主旨的情况下,可以使用各种修改、可替换构造和等价物。例如,上述元素可以是更大系统的组件,其中其它规则可以优先于或以其它方式修改本发明的应用。此外,许多步骤可以在以上元素被考虑之前、期间或之后进行。
Claims (12)
1.一种用于执行多个数据库在服务器系统之间的在线迁移的方法,该方法包括:
启动多个数据库从源服务器系统中的源数据库服务器向目标服务器系统中的目标数据库服务器的传送,其中所述源服务器系统在所述多个数据库的传送期间是在线的,并且其中所述源数据库服务器和所述目标数据库服务器是不同的服务器;
对于所述多个数据库中的每个特定的数据库:
(1)使用调度者计算机系统确定所述特定的数据库要被复制到所述目标数据库服务器的特定时间;
(2)由所述调度者计算机系统在所确定的特定时间对所述特定的数据库向所述目标数据库服务器的复制进行初始化;以及
(3)由所述源服务器系统记录所述特定的数据库的复制何时被所述调度者计算机系统初始化的时间顺序指示;
其中,所述多个数据库中的每个数据库的复制是由所述调度者计算机系统在不同的时间初始化的,并且其中所述多个数据库中的每个数据库的复制需要不同的时间长度;
在所述多个数据库的复制期间,由所述源服务器系统接收多个更改请求,每个更改请求与所述多个数据库中的至少一个数据库相关联;
由所述源服务器系统存储所述多个更改请求,并且对于所述多个更改请求中的每个更改请求,存储该更改请求何时被接收到的时间顺序指示;以及
对于接收到的多个更改请求中的每个特定的更改请求:
(1)确定被所述特定的更改请求影响的一个或多个特定的数据库;
(2)将所述特定的更改请求何时被接收到的时间顺序指示与被影响的一个或多个特定的数据库的复制何时被初始化的时间顺序指示进行比较;以及
(3)基于所述特定的更改请求何时被接收到的时间顺序指示与被影响的特定的数据库的复制何时被初始化的时间顺序指示的比较,确定向所述源服务器系统还是所述目标服务器系统应用所述特定的更改请求;以及
由所述目标服务器系统对所述多个数据库进行验证。
2.如权利要求1所述的用于执行多个数据库在服务器系统之间的在线迁移的方法,其中所述多个数据库更改请求何时被接收到的时间顺序指示是按时间顺序分配给由所述源服务器系统执行的数据库事务的数字。
3.如权利要求1所述的用于执行多个数据库在服务器系统之间的在线迁移的方法,其中确定向所述源服务器系统还是所述目标服务器系统应用第一特定的更改请求包括:
确定被所述第一特定的更改请求影响的第一数据库;
访问指示所述第一数据库的复制何时被初始化的时间顺序指示;以及
基于确定所述更改请求何时被接收到的时间顺序指示大于指示所述第一数据库的复制何时被初始化的时间顺序指示,确定向由所述目标服务器系统存储的所述第一数据库应用所述第一更改请求。
4.如权利要求3所述的用于执行多个数据库在服务器系统之间的在线迁移的方法,其中确定向所述源服务器系统还是所述目标服务器系统应用第二特定的更改请求包括:
确定被所述第二特定的更改请求影响的第二数据库;
访问指示所述第二数据库的复制何时被初始化的时间顺序指示;和
基于确定所述第二更改请求何时被接收到的时间顺序指示小于指示所述第二数据库的复制何时被初始化的时间顺序指示,确定向由所述源服务器系统存储的第二数据库应用所述第二更改请求。
5.如权利要求1所述的用于执行多个数据库在服务器系统之间的在线迁移的方法,所述方法还包括:
在所述源服务器系统在线时在将所述多个数据库复制到所述目标服务器系统并且将所述多个更改请求中的一个或多个更改请求应用到由所述目标服务器系统存储的所述数据库之后,使所述源服务器系统下线,使得所述源服务器系统不对数据库请求做出响应;以及
在使所述源服务器系统下线之后,使所述目标服务器系统上线,使得所述目标服务器系统对数据库请求做出响应。
6.如权利要求1所述的用于执行多个数据库在服务器系统之间的在线迁移的方法,所述方法还包括:
在复制所述多个数据库时,接收要由所述源服务器系统并行运行的迁移脚本的数量的增加;以及
响应于所述迁移脚本的数量的增加,由所述源服务器系统启动附加的数据库向所述目标服务器系统的传送。
7.如权利要求1所述的用于执行多个数据库在服务器系统之间的在线迁移的方法,其中被复制到所述目标服务器系统的每个数据库与在所述数据库的复制被初始化时由所述源服务器系统存储的对应的数据库匹配。
8.一种用于在数据库系统之间执行在线迁移的设备,该设备包括:
用于启动多个数据库从源数据库系统中的源数据库服务器向目标数据库系统中的目标数据库服务器的传送的装置,其中所述源数据库系统在所述多个数据库的传送期间是在线的,并且其中所述源数据库服务器和所述目标数据库服务器是不同的服务器;
用于对于所述多个数据库中的每个特定的数据库执行以下操作的装置:
(1)使用调度者计算机系统确定所述特定的数据库要被复制到所述目标数据库服务器的特定时间;
(2)由所述调度者计算机系统在所确定的特定时间对所述特定的数据库向所述目标数据库服务器的复制进行初始化;以及
(3)记录所述特定的数据库的复制何时被所述调度者计算机系统初始化的时间顺序指示;
其中,所述多个数据库中的每个数据库的复制是由所述调度者计算机系统在不同的时间初始化的,并且其中所述多个数据库中的每个数据库的复制需要不同的时间长度;
用于在所述多个数据库的复制期间接收多个更改请求的装置,每个更改请求与所述多个数据库中的至少一个数据库相关联;
用于存储所述多个更改请求并且对于所述多个更改请求中的每个更改请求,存储该更改请求何时被接收到的时间顺序指示的装置;
用于对接收的多个更改请求中的每个特定的更改请求执行以下操作的装置:
(1)确定被所述特定的更改请求影响的一个或多个特定的数据库;
(2)将所述特定的更改请求何时被接收到的时间顺序指示与被影响的一个或多个特定的数据库的复制何时被初始化的时间顺序指示进行比较;以及
(3)基于所述特定的更改请求何时被接收到的时间顺序指示与被影响的特定的数据库的复制何时被初始化的时间顺序指示的比较,确定向所述源服务器系统还是所述目标服务器系统应用所述特定的更改请求。
9.如权利要求8所述的用于在数据库系统之间执行在线迁移的设备,其中所述多个更改请求何时被接收到的时间顺序指示是按时间顺序分配给由所述源数据库系统执行的数据库事务的数字。
10.如权利要求8所述的用于在数据库系统之间执行在线迁移的设备,其中确定向所述源服务器系统还是所述目标服务器系统应用第一特定的更改请求包括:
确定被所述第一特定的更改请求影响的第一数据库;
访问指示所述第一数据库的复制何时被初始化的时间顺序指示;以及
基于确定所述第一更改请求何时被接收到的时间顺序指示大于指示所述第一数据库的复制何时被初始化的时间顺序指示,确定向由所述目标数据库系统存储的第一数据库应用所述第一更改请求。
11.如权利要求10所述的用于在数据库系统之间执行在线迁移的设备,其中确定向所述源服务器系统还是所述目标服务器系统应用第二特定的更改请求包括:
确定被所述第二特定的更改请求影响的第二数据库;
访问指示所述第二数据库的复制何时被初始化的时间顺序指示;和
基于确定所述第二更改请求何时被接收到的时间顺序指示小于指示所述第二数据库的复制何时被初始化的时间顺序指示,确定向由所述源服务器系统存储的第二数据库应用所述第二更改请求。
12.如权利要求8所述的用于在数据库系统之间执行在线迁移的设备,所述设备还包括:
用于在将所述多个数据库复制到所述目标数据库系统并且在所述源数据库系统在线时将所述多个更改请求中的一个或多个更改请求应用到由所述目标数据库系统存储的数据库之后,使所述源数据库系统下线,使得所述源数据库系统不对数据库请求做出响应的装置;以及
用于在使所述源数据库系统下线之后,使所述目标数据库系统上线,使得所述目标数据库系统对数据库请求做出响应的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/937,545 | 2013-07-09 | ||
US13/937,545 US9792321B2 (en) | 2013-07-09 | 2013-07-09 | Online database migration |
PCT/US2014/040486 WO2015005991A1 (en) | 2013-07-09 | 2014-06-02 | Online database migration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105359147A CN105359147A (zh) | 2016-02-24 |
CN105359147B true CN105359147B (zh) | 2019-08-20 |
Family
ID=51014656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480039080.XA Active CN105359147B (zh) | 2013-07-09 | 2014-06-02 | 在线数据库迁移 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9792321B2 (zh) |
EP (1) | EP3019975A1 (zh) |
CN (1) | CN105359147B (zh) |
WO (1) | WO2015005991A1 (zh) |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10776244B2 (en) | 2013-07-09 | 2020-09-15 | Oracle International Corporation | Consolidation planning services for systems migration |
US9792321B2 (en) | 2013-07-09 | 2017-10-17 | Oracle International Corporation | Online database migration |
US9967154B2 (en) | 2013-07-09 | 2018-05-08 | Oracle International Corporation | Advanced customer support services—advanced support cloud portal |
US9098364B2 (en) | 2013-07-09 | 2015-08-04 | Oracle International Corporation | Migration services for systems |
US9805070B2 (en) | 2013-07-09 | 2017-10-31 | Oracle International Corporation | Dynamic migration script management |
US9762461B2 (en) | 2013-07-09 | 2017-09-12 | Oracle International Corporation | Cloud services performance tuning and benchmarking |
US9996562B2 (en) | 2013-07-09 | 2018-06-12 | Oracle International Corporation | Automated database migration architecture |
US11157664B2 (en) | 2013-07-09 | 2021-10-26 | Oracle International Corporation | Database modeling and analysis |
US9491072B2 (en) | 2013-07-09 | 2016-11-08 | Oracle International Corporation | Cloud services load testing and analysis |
US9747311B2 (en) | 2013-07-09 | 2017-08-29 | Oracle International Corporation | Solution to generate a scriptset for an automated database migration |
US10579599B2 (en) * | 2013-11-21 | 2020-03-03 | Oracle International Corporation | Upgrade of heterogeneous multi-instance database clusters |
KR20150130039A (ko) * | 2014-05-13 | 2015-11-23 | 한다시스템 주식회사 | Crm 기반 데이터 마이그레이션 시스템 및 방법 |
US9703811B2 (en) * | 2014-06-14 | 2017-07-11 | Accenture Global Services Limited | Assessing database migrations to cloud computing systems |
US10061678B2 (en) * | 2015-06-26 | 2018-08-28 | Microsoft Technology Licensing, Llc | Automated validation of database index creation |
US20170255663A1 (en) * | 2016-03-07 | 2017-09-07 | Researchgate Gmbh | Propagation of data changes in a distributed system |
US10268633B2 (en) * | 2016-03-29 | 2019-04-23 | Wipro Limited | System and method for database migration with target platform scalability |
US11036696B2 (en) | 2016-06-07 | 2021-06-15 | Oracle International Corporation | Resource allocation for database provisioning |
CN107644030B (zh) * | 2016-07-20 | 2021-05-18 | 华为技术有限公司 | 分布式数据库数据同步方法、相关装置及系统 |
US10754833B2 (en) * | 2017-01-26 | 2020-08-25 | Sap Se | Combined database migration and structure conversion within maintenance procedures |
US10268692B2 (en) * | 2017-02-15 | 2019-04-23 | Sap Se | Multi-procedure support in data migration |
CZ307278B6 (cs) * | 2017-03-07 | 2018-05-09 | Krieg Jaroslav | Způsob přenášení struktur a datových souborů mezi zdrojovým a cílovým systémem a systém k jeho provádění |
CN106934048A (zh) * | 2017-03-16 | 2017-07-07 | 北京搜狐新媒体信息技术有限公司 | 数据在线迁移方法、代理节点 |
US10872066B2 (en) * | 2017-06-27 | 2020-12-22 | Salesforce.Com, Inc. | Systems and methods of database tenant migration |
CN107357866B (zh) * | 2017-07-01 | 2020-12-22 | 广东电网有限责任公司信息中心 | 一种电力企业信息系统中间件、数据库的国产化迁移方法 |
US11016954B1 (en) | 2017-09-01 | 2021-05-25 | Amazon Technologies, Inc. | Distributed data set extraction for migration |
US11327932B2 (en) * | 2017-09-30 | 2022-05-10 | Oracle International Corporation | Autonomous multitenant database cloud service framework |
US11615113B2 (en) * | 2017-11-03 | 2023-03-28 | International Business Machines Corporation | Net change mirroring optimization across transactions in replication environment |
CN107992559B (zh) * | 2017-11-28 | 2019-03-26 | 江苏中威科技软件系统有限公司 | 多数据源的数据迁移方法 |
US11526470B2 (en) * | 2018-01-03 | 2022-12-13 | Salesforce, Inc. | Data validation for data record migrations |
CN108647270A (zh) * | 2018-04-28 | 2018-10-12 | 尚谷科技(天津)有限公司 | 一种基于容错时间日志的数据迁移的方法 |
CN108897773B (zh) * | 2018-05-31 | 2019-12-27 | 湖南格凡安信科技有限公司 | 一种透明在线式数据库匿名化数据并行迁移方法 |
CN113836154B (zh) * | 2018-06-21 | 2024-05-03 | 创新先进技术有限公司 | 一种数据库切换方法及装置 |
US11392561B2 (en) | 2018-09-28 | 2022-07-19 | Oracle International Corporation | Data migration using source classification and mapping |
US11847103B2 (en) | 2018-09-28 | 2023-12-19 | Oracle International Corporation | Data migration using customizable database consolidation rules |
CN110059075B (zh) * | 2019-03-26 | 2020-07-28 | 阿里巴巴集团控股有限公司 | 一种数据库迁移的方法、装置、设备及计算机可读介质 |
US10924587B1 (en) | 2019-05-01 | 2021-02-16 | Amazon Technologies, Inc. | Live migration for highly available data stores |
CN110262997A (zh) * | 2019-05-06 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 用于管理公共文件的方法和系统 |
US11119994B1 (en) | 2019-06-06 | 2021-09-14 | Amazon Technologies, Inc. | Record-by-record live migration using segmentation |
US10979303B1 (en) | 2019-06-06 | 2021-04-13 | Amazon Technologies, Inc. | Segmentation of maintenance on distributed systems |
US11256671B2 (en) | 2019-09-13 | 2022-02-22 | Oracle International Corporation | Integrated transition control center |
US11372733B2 (en) * | 2020-03-06 | 2022-06-28 | Google Llc | Mount and migrate |
US11630860B2 (en) * | 2020-04-30 | 2023-04-18 | Arris Enterprises Llc | System and method for the migration of legacy digital content |
US11372827B2 (en) | 2020-05-06 | 2022-06-28 | Amazon Technologies, Inc. | Record-by-record live migration using a lock store |
US11895181B2 (en) | 2020-12-04 | 2024-02-06 | Schneider Electric It Corporation | Power optimization of microserver loads |
CN113868188A (zh) * | 2021-08-25 | 2021-12-31 | 苏州浪潮智能科技有限公司 | 一种修改数据库文件存储位置的方法、系统、设备和介质 |
US11797393B2 (en) | 2022-03-23 | 2023-10-24 | Bank Of America Corporation | Table prioritization for data copy in a multi-environment setup |
US11656955B1 (en) | 2022-03-23 | 2023-05-23 | Bank Of America Corporation | Database table valuation |
Family Cites Families (113)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6185625B1 (en) | 1996-12-20 | 2001-02-06 | Intel Corporation | Scaling proxy server sending to the client a graphical user interface for establishing object encoding preferences after receiving the client's request for the object |
US6016394A (en) | 1997-09-17 | 2000-01-18 | Tenfold Corporation | Method and system for database application software creation requiring minimal programming |
US6151608A (en) | 1998-04-07 | 2000-11-21 | Crystallize, Inc. | Method and system for migrating data |
US7020697B1 (en) | 1999-10-01 | 2006-03-28 | Accenture Llp | Architectures for netcentric computing systems |
US6477483B1 (en) | 2000-01-17 | 2002-11-05 | Mercury Interactive Corporation | Service for load testing a transactional server over the internet |
US6973489B1 (en) | 2000-03-21 | 2005-12-06 | Mercury Interactive Corporation | Server monitoring virtual points of presence |
US6738811B1 (en) | 2000-03-31 | 2004-05-18 | Supermicro Computer, Inc. | Method and architecture for monitoring the health of servers across data networks |
JP2001297026A (ja) | 2000-04-11 | 2001-10-26 | Hitachi Ltd | 複数のデータベースマネージメントシステムを有する計算機システム |
US6898564B1 (en) | 2000-05-23 | 2005-05-24 | Microsoft Corporation | Load simulation tool for server resource capacity planning |
JP2001337790A (ja) | 2000-05-24 | 2001-12-07 | Hitachi Ltd | 記憶システム及びその階層管理制御方法 |
SG93868A1 (en) | 2000-06-07 | 2003-01-21 | Kent Ridge Digital Labs | Method and system for user-configurable clustering of information |
JP2002007364A (ja) | 2000-06-22 | 2002-01-11 | Fujitsu Ltd | 並列計算機システムのジョブスケジューリングを行うスケジューリング装置 |
US7669212B2 (en) | 2001-02-02 | 2010-02-23 | Opentv, Inc. | Service platform suite management system |
US7548898B1 (en) * | 2001-02-28 | 2009-06-16 | Teradata Us, Inc. | Parallel migration of data between systems |
US7177866B2 (en) | 2001-03-16 | 2007-02-13 | Gravic, Inc. | Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only |
US20020194329A1 (en) | 2001-05-02 | 2002-12-19 | Shipley Company, L.L.C. | Method and system for facilitating multi-enterprise benchmarking activities and performance analysis |
US7197559B2 (en) | 2001-05-09 | 2007-03-27 | Mercury Interactive Corporation | Transaction breakdown feature to facilitate analysis of end user performance of a server system |
FR2824929B1 (fr) | 2001-05-18 | 2003-08-08 | Gemplus Card Int | Deploiement d'application depuis une carte a puce |
US7580862B1 (en) | 2001-05-31 | 2009-08-25 | The Servicemaster Company | Method and system to select, schedule and purchase home services |
US6978441B2 (en) | 2001-10-03 | 2005-12-20 | Sun Microsystems, Inc. | Rating apparatus and method for evaluating bugs |
US7065541B2 (en) * | 2001-10-10 | 2006-06-20 | International Business Machines Corporation | Database migration |
US20030192028A1 (en) | 2002-04-04 | 2003-10-09 | International Business Machines Corporation | System and method for determining software object migration sequences |
US8121978B2 (en) | 2002-11-15 | 2012-02-21 | Sybase, Inc. | Database system providing improved methods for data replication |
US20040181790A1 (en) | 2003-03-12 | 2004-09-16 | Herrick Joseph W. | System and method for maintaining installed software compliance with build standards |
US20060173875A1 (en) | 2003-03-19 | 2006-08-03 | Unisys Corporation | Server Consolidation Data Mdel |
AU2004222930A1 (en) | 2003-03-19 | 2004-10-07 | Unisys Corporation | Server consolidation data model |
US20060179431A1 (en) | 2003-03-19 | 2006-08-10 | Unisys Corporation | Rules-based deployment of computing components |
CA2472887A1 (en) | 2003-06-30 | 2004-12-30 | Gravic, Inc. | Methods for ensuring referential integrity in multithreaded replication engines |
US7552171B2 (en) | 2003-08-14 | 2009-06-23 | Oracle International Corporation | Incremental run-time session balancing in a multi-node system |
US8655755B2 (en) | 2003-10-22 | 2014-02-18 | Scottrade, Inc. | System and method for the automated brokerage of financial instruments |
JP2005222108A (ja) | 2004-02-03 | 2005-08-18 | Matsushita Electric Ind Co Ltd | バグ分析方法および装置 |
WO2006007460A2 (en) | 2004-06-21 | 2006-01-19 | Spirent Communications Of Rockville, Inc. | Service-centric computer network services diagnostic conclusions |
US7290003B1 (en) | 2004-08-19 | 2007-10-30 | Sun Microsystems, Inc. | Migrating data using an intermediate self-describing format |
US7523286B2 (en) | 2004-11-19 | 2009-04-21 | Network Appliance, Inc. | System and method for real-time balancing of user workload across multiple storage systems with shared back end storage |
US7343467B2 (en) * | 2004-12-20 | 2008-03-11 | Emc Corporation | Method to perform parallel data migration in a clustered storage environment |
US20060235899A1 (en) | 2005-03-25 | 2006-10-19 | Frontline Systems, Inc. | Method of migrating legacy database systems |
JP5093990B2 (ja) | 2005-03-28 | 2012-12-12 | Necエンジニアリング株式会社 | バグ管理システム |
US7693983B1 (en) | 2005-05-27 | 2010-04-06 | Symantec Operating Corporation | System and method providing application redeployment mappings using filtered resource usage data |
US7836452B2 (en) | 2005-06-10 | 2010-11-16 | International Business Machines Corporation | System, method and program for estimating a requisite amount of server resources |
US7480643B2 (en) | 2005-12-22 | 2009-01-20 | International Business Machines Corporation | System and method for migrating databases |
US7676492B2 (en) | 2006-04-07 | 2010-03-09 | International Business Machines Corporation | Migration of database using serialized objects |
US8606894B1 (en) | 2006-04-27 | 2013-12-10 | Hewlett-Packard Development Company, L.P. | Server consolidation |
JP2007328692A (ja) | 2006-06-09 | 2007-12-20 | Canon Inc | 代数演算方法及びその装置、プログラム |
US8239520B2 (en) | 2007-04-05 | 2012-08-07 | Alcatel Lucent | Network service operational status monitoring |
US8271757B1 (en) | 2007-04-17 | 2012-09-18 | American Megatrends, Inc. | Container space management in a data storage system |
US8006223B2 (en) | 2007-06-13 | 2011-08-23 | International Business Machines Corporation | Method and system for estimating project plans for packaged software applications |
US8494832B2 (en) | 2007-06-20 | 2013-07-23 | Sanjeev Krishnan | Method and apparatus for software simulation |
US8407686B2 (en) | 2007-09-07 | 2013-03-26 | Ebay Inc. | Method and system for problem notification and processing |
US8356287B2 (en) | 2007-10-24 | 2013-01-15 | International Business Machines Corporation | Device, system and method of debugging computer programs |
US20090187413A1 (en) | 2008-01-18 | 2009-07-23 | Timothy Abels | Service delivery platform for automated and remote information technology management |
US8495564B2 (en) | 2008-02-19 | 2013-07-23 | International Business Machines Corporation | Automated merging in a software development environment |
US7856499B2 (en) | 2008-03-20 | 2010-12-21 | Sap Ag | Autonomic provisioning of hosted applications with level of isolation terms |
US7962458B2 (en) | 2008-06-12 | 2011-06-14 | Gravic, Inc. | Method for replicating explicit locks in a data replication engine |
US8301593B2 (en) | 2008-06-12 | 2012-10-30 | Gravic, Inc. | Mixed mode synchronous and asynchronous replication system |
US8433680B2 (en) | 2008-07-01 | 2013-04-30 | Oracle International Corporation | Capturing and restoring database session state |
US8286177B2 (en) | 2009-01-29 | 2012-10-09 | Microsoft Corporation | Technique for conserving software application resources |
US8117613B2 (en) | 2009-04-08 | 2012-02-14 | Microsoft Corporation | Optimized virtual machine migration mechanism |
US8495725B2 (en) | 2009-08-28 | 2013-07-23 | Great Wall Systems | Methods, systems, and computer readable media for adaptive packet filtering |
US8161077B2 (en) | 2009-10-21 | 2012-04-17 | Delphix Corp. | Datacenter workflow automation scenarios using virtual databases |
US8074107B2 (en) | 2009-10-26 | 2011-12-06 | Amazon Technologies, Inc. | Failover and recovery for replicated data instances |
US8850423B2 (en) | 2009-10-29 | 2014-09-30 | International Business Machines Corporation | Assisting server migration |
GB2468742B (en) | 2009-12-22 | 2011-01-12 | Celona Technologies Ltd | Error prevention for data replication |
US8615741B2 (en) | 2009-12-24 | 2013-12-24 | International Business Machines Corporation | Software defect tracking |
US8341462B2 (en) | 2010-07-19 | 2012-12-25 | Soasta, Inc. | System and method for provisioning and running a cross-cloud test grid |
US8356010B2 (en) * | 2010-08-11 | 2013-01-15 | Sap Ag | Online data migration |
US8626587B2 (en) | 2010-12-10 | 2014-01-07 | Verizon Patent And Licensing Inc. | Artificial intelligence-based recommender and self-provisioner |
US8984269B2 (en) | 2011-02-28 | 2015-03-17 | Red Hat, Inc. | Migrating data among cloud-based storage networks via a data distribution service |
US8667020B2 (en) | 2011-04-01 | 2014-03-04 | Microsoft Corporation | Placement goal-based database instance dynamic consolidation |
US20120284360A1 (en) | 2011-04-11 | 2012-11-08 | Ebay Inc. | Job planner and execution engine for automated, self-service data movement |
US9430505B2 (en) | 2011-04-18 | 2016-08-30 | Infosys Limited | Automated data warehouse migration |
US8589336B1 (en) | 2011-04-25 | 2013-11-19 | Netapp, Inc. | Framework for automated storage processes and flexible workflow |
US9223632B2 (en) | 2011-05-20 | 2015-12-29 | Microsoft Technology Licensing, Llc | Cross-cloud management and troubleshooting |
US9344484B2 (en) | 2011-05-27 | 2016-05-17 | Red Hat, Inc. | Determining consistencies in staged replication data to improve data migration efficiency in cloud based networks |
US8782215B2 (en) | 2011-05-31 | 2014-07-15 | Red Hat, Inc. | Performance testing in a cloud environment |
US8639989B1 (en) | 2011-06-30 | 2014-01-28 | Amazon Technologies, Inc. | Methods and apparatus for remote gateway monitoring and diagnostics |
US8769340B2 (en) | 2011-09-08 | 2014-07-01 | Microsoft Corporation | Automatically allocating clients for software program testing |
US8943032B1 (en) | 2011-09-30 | 2015-01-27 | Emc Corporation | System and method for data migration using hybrid modes |
US9075811B2 (en) | 2011-09-30 | 2015-07-07 | Symantec Corporation | Cloud information migration systems and methods |
US8880477B2 (en) | 2011-10-04 | 2014-11-04 | Nec Laboratories America, Inc. | Latency-aware live migration for multitenant database platforms |
US8924353B1 (en) | 2011-11-08 | 2014-12-30 | Symantec Corporation | Systems and methods for copying database files |
US20130311968A1 (en) | 2011-11-09 | 2013-11-21 | Manoj Sharma | Methods And Apparatus For Providing Predictive Analytics For Software Development |
US9262250B2 (en) | 2011-12-12 | 2016-02-16 | Crashlytics, Inc. | System and method for data collection and analysis of information relating to mobile applications |
US9152659B2 (en) | 2011-12-30 | 2015-10-06 | Bmc Software, Inc. | Systems and methods for migrating database data |
US8818949B2 (en) * | 2011-12-30 | 2014-08-26 | Bmc Software, Inc. | Systems and methods for migrating database data |
US9477936B2 (en) | 2012-02-09 | 2016-10-25 | Rockwell Automation Technologies, Inc. | Cloud-based operator interface for industrial automation |
US8880934B2 (en) | 2012-04-04 | 2014-11-04 | Symantec Corporation | Method and system for co-existence of live migration protocols and cluster server failover protocols |
US8856339B2 (en) | 2012-04-04 | 2014-10-07 | Cisco Technology, Inc. | Automatically scaled network overlay with heuristic monitoring in a hybrid cloud environment |
US9201704B2 (en) | 2012-04-05 | 2015-12-01 | Cisco Technology, Inc. | System and method for migrating application virtual machines in a network environment |
US9203784B2 (en) | 2012-04-24 | 2015-12-01 | Cisco Technology, Inc. | Distributed virtual switch architecture for a hybrid cloud |
US9769085B2 (en) | 2012-05-04 | 2017-09-19 | Citrix Systems, Inc. | Systems and methods for adaptive application provisioning |
US9342370B2 (en) | 2012-05-30 | 2016-05-17 | International Business Machines Corporation | Server migration |
CN103530290B (zh) * | 2012-07-03 | 2017-12-12 | 深圳市腾讯计算机系统有限公司 | 数据库间的数据迁移方法和系统 |
US9043787B2 (en) | 2012-07-13 | 2015-05-26 | Ca, Inc. | System and method for automated assignment of virtual machines and physical machines to hosts |
US9122527B2 (en) | 2012-08-21 | 2015-09-01 | International Business Machines Corporation | Resource allocation for migration within a multi-tiered system |
US9467355B2 (en) | 2012-09-07 | 2016-10-11 | Oracle International Corporation | Service association model |
US9535818B2 (en) | 2012-10-16 | 2017-01-03 | Microsoft Technology Licensing, Llc | Identifying high impact bugs |
CN102982085B (zh) * | 2012-10-31 | 2017-05-31 | 北京奇虎科技有限公司 | 数据迁移系统和方法 |
US9430506B2 (en) | 2012-12-19 | 2016-08-30 | Accenture Global Services Limited | Enterprise migration planning information repository |
US9075529B2 (en) | 2013-01-04 | 2015-07-07 | International Business Machines Corporation | Cloud based data migration and replication |
US9436712B2 (en) | 2013-03-14 | 2016-09-06 | Microsoft Technology Licensing, Llc | Data migration framework |
US9438648B2 (en) | 2013-05-09 | 2016-09-06 | Rockwell Automation Technologies, Inc. | Industrial data analytics in a cloud platform |
US9491063B2 (en) | 2013-05-15 | 2016-11-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for providing network services orchestration |
US9996562B2 (en) | 2013-07-09 | 2018-06-12 | Oracle International Corporation | Automated database migration architecture |
US9098364B2 (en) | 2013-07-09 | 2015-08-04 | Oracle International Corporation | Migration services for systems |
US9805070B2 (en) | 2013-07-09 | 2017-10-31 | Oracle International Corporation | Dynamic migration script management |
US9967154B2 (en) | 2013-07-09 | 2018-05-08 | Oracle International Corporation | Advanced customer support services—advanced support cloud portal |
US9792321B2 (en) | 2013-07-09 | 2017-10-17 | Oracle International Corporation | Online database migration |
US9491072B2 (en) | 2013-07-09 | 2016-11-08 | Oracle International Corporation | Cloud services load testing and analysis |
US10776244B2 (en) | 2013-07-09 | 2020-09-15 | Oracle International Corporation | Consolidation planning services for systems migration |
US9747311B2 (en) | 2013-07-09 | 2017-08-29 | Oracle International Corporation | Solution to generate a scriptset for an automated database migration |
WO2015006137A1 (en) | 2013-07-09 | 2015-01-15 | Oracle International Corporation | Cloud services load testing and analysis |
US11157664B2 (en) | 2013-07-09 | 2021-10-26 | Oracle International Corporation | Database modeling and analysis |
US9762461B2 (en) | 2013-07-09 | 2017-09-12 | Oracle International Corporation | Cloud services performance tuning and benchmarking |
-
2013
- 2013-07-09 US US13/937,545 patent/US9792321B2/en active Active
-
2014
- 2014-06-02 WO PCT/US2014/040486 patent/WO2015005991A1/en active Application Filing
- 2014-06-02 EP EP14733037.7A patent/EP3019975A1/en active Pending
- 2014-06-02 CN CN201480039080.XA patent/CN105359147B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US9792321B2 (en) | 2017-10-17 |
EP3019975A1 (en) | 2016-05-18 |
CN105359147A (zh) | 2016-02-24 |
US20150019487A1 (en) | 2015-01-15 |
WO2015005991A1 (en) | 2015-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105359147B (zh) | 在线数据库迁移 | |
US10248671B2 (en) | Dynamic migration script management | |
US11397709B2 (en) | Automated configuration of log-coordinated storage groups | |
RU2610288C2 (ru) | Обеспечение возможностей конфигурируемого технологического процесса | |
US10216584B2 (en) | Recovery log analytics with a big data management platform | |
CN110222036B (zh) | 用于自动数据库迁移的方法和系统 | |
US10373247B2 (en) | Lifecycle transitions in log-coordinated data stores | |
CN105324769B (zh) | 用于产生用于自动数据库迁移的脚本集的解决方案 | |
US11977532B2 (en) | Log record identification using aggregated log indexes | |
US9779126B2 (en) | Hybrid database upgrade migration | |
US20160140176A1 (en) | Query tuning in the cloud | |
US11663093B2 (en) | Automated development of recovery plans | |
US20190250958A1 (en) | Remotely managing execution of jobs in a cluster computing framework | |
US20180101470A1 (en) | System testing using time compression | |
Pereira et al. | Mediator framework for inserting xDRs into Hadoop | |
Demidov et al. | CONFIGURING THE STRUCTURE OF THE SERVERLESS SYSTEM FOR EFFICIENT DATA COLLECTION | |
Diaz et al. | Cloud Data Design, Orchestration, and Management Using Microsoft Azure | |
Barać et al. | Migrating to Hyperscale | |
Wambua | An Evaluation of Real-Time Processing of Call Detail Records Using Stream Processing | |
CN115794164A (zh) | 一种云数据库升级方法、装置、设备及存储介质 | |
Capitão | Plataforma de Mediação Para a Inserção de Dados em Hadoop | |
Capitão | Micael José |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |