一种Oracle数据库跨平台迁移方法和系统的制作方法
【技术领域】
[0001]本发明涉及数据库迀移技术领域,尤指一种Oracle数据库跨平台迀移方法和系统。
【背景技术】
[0002]高端服务器承载着行业的核心应用,广泛应用在金融、电信、能源、交通等关键应用领域,其运行直接关系到社会、经济的正常运转。长期以来,由于缺乏高端服务器设计和制造能力,我国高端服务器市场一直为国外厂商把持,其中甲骨文长期占据20%以上的国内市场。在科技部“十一五”863计划的支持下,相关部门、科研单位积极配合,浪潮已成功研制了 32路高端容错计算机系统,可用度达到99.999%,系统联机事务处理能力达到世界先进水平。为提高信息化建设重大装备的自主可控性,越来越多的信息系统倾向于使用自主产品。因此,在未来较长的一段时间内,国内的IT系统建设面临着国产化的变革,具体的信息系统建设与实施层面,体现为越来越多的跨平台迀移工作,其中有相当的迀移工作是从HP-UX平台至浪潮K-UX平台。
[0003]数据库是IT系统的核心软件,数据库迀移也是IT系统建设中极为重要的一部分。由于异构服务器平台的CPU指令集差异、操作系统差异以及编译器差异,使得数据库跨平台迀移难度高,工作量大。如何降低迀移难度,减少工作量,是跨平台数据库迀移需要解决的关键问题。
【发明内容】
[0004]为了解决上述技术问题,本发明提供了一种Oracle数据库跨平台迀移方法和系统,能够从可扩充处理器架构(SPARC,Scalable Processor ARChitecture)平台向K-UX平台迀移的过程中,降低迀移难度并减少工作量。
[0005]为了达到本发明目的,本发明提供了一种Oracle数据库跨平台迀移方法,该方法应用于通过以太网建立连接源端与目标端,且源端和目标端分别与Oracle数据库交互;该方法包括:当需要进行数据库迀移时,源端收集源端平台信息和数据库信息,目标端收集目标端平台信息;源端接收来自所述目标端的目标端平台信息,对比目标端平台信息和源端平台信息,生成源端和目标端的平台差异分析表;源端根据平台差异分析表和源端数据库信息,采用预先设置的迀移算法生成迀移向导,根据迀移向导进行数据迀移;目标端收集目标端恢复的数据库信息,对比源端数据库信息与目标端恢复的数据库信息,生成源端数据库和目标端数据库的一致性检查表,根据一致性检查表确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。
[0006]本发明还提供了一种Oracle数据库跨平台迀移系统,包括:源端与目标端,通过以太网实现源端与目标端通信,且源端和目标端分别与Oracle数据库交互;所述源端,用于收集源端平台信息和数据库信息;接收来自目标端的目标端平台信息,对比目标端平台信息和源端平台信息,生成源端和目标端的平台差异分析表;根据平台差异分析表和源端数据库信息,采用预先设置的迀移算法生成迀移向导,根据迀移向导进行数据迀移;所述目标端,用于收集目标端平台信息和恢复的数据库信息,对比源端数据库信息与目标端恢复的数据库信息,生成源端数据库和目标端数据库的一致性检查表,根据一致性检查表确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。
[0007]在本发明的Oracle数据库跨平台迀移方法和系统,能够大大降低Oracle数据库从SPARC平台向K-UX平台迀移的工作量,降低迀移难度。
[0008]本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
【附图说明】
[0009]附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0010]图1是本发明的一种实施例中Oracle数据库跨平台迀移方法的流程示意图。
[0011]图2是本发明的一种实施例中Oracle数据库跨平台迀移系统的架构示意图。
【具体实施方式】
[0012]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0013]在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0014]Oracle数据库,是以分布式数据库为核心的关系数据库管理系统,每一个运行的Oracle数据库与一个Oracle实例相联系,一个Oracle实例为存取和控制一数据库的软件机制;每一次在数据库服务器上启动一数据库时,称为系统全局区(SYSTEM GLOBAL AREA)的一内存区(简称SGA)被分配,有一个或多个Oracle进程被启动。该SGA和Oracle进程的结合称为一个Oracle数据库实例,一个实例的SGA和进程为管理数据库数据、为该数据库一个或多个用户服务而工作;在Oracle系统中,首先是实例启动,然后由实例装配一数据库。在松耦合系统中,在具有Oracle Parallel Server选项时,单个数据库可被多个实例装配,即多个实例共享同一物理数据库。
[0015]SPARC平台,是RISC微处理器架构之一,为各种企业应用程序提供创世界纪录的性能,只需大型机成本的一小部分,即可获得无与伦比的任务关键型可靠性,唯一包含片上加密和Oracle Solaris安全框架的平台与Oracle数据库、业务应用程序、中间件软件和Oracle优化的解决方案完全集成,并利用全面、内置的零成本虚拟化功能提高系统利用率。
[0016]K-UX平台,是浪潮自主研制的一种UNIX操作系统。
[0017]图1是本发明的一种实施例中Oracle数据库跨平台迀移方法的流程示意图。在本发明的具体实施中,Oracle数据库需要从SPARC平台向K-UX平台迀移,其中设定SPARC平台为源端,K-UX平台为目标端,通过以太网实现源端与目标端通信。
[0018]如图1所示,本发明的Oracle数据库跨平台迀移方法,包括:
[0019]步骤11,源端与目标端启动后通过以太网建立连接,且源端和目标端分别与Oracle数据库交互。
[0020]在本步骤中,源端与目标端架构基于JAVA实现,以实现跨平台特性,源端安装于其他服务器平台,例如SPARC平台,目标端安装于K-UX平台,源端与目标端通过以太网通信,且源端和目标端分别与Oracle数据库交互。
[0021]步骤12,当需要进行数据库迀移时,源端收集源端平台信息和数据库信息,目标端收集目标端平台信息。
[0022]在本步骤中,源端平台信息包括处理器架构信息、指令集信息、字节序信息、编译器信息、操作系统信息、系统变量信息及文件系统信息;
[0023]数据库信息包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息及日志信息;
[0024]目标端平台信息包括处理器架构信息、指令集信息、字节序信息、编译器信息、操作系统信息、系统变量信息及文件系统信息。
[0025]步骤13,源端接收来自所述目标端的目标端平台信息,对比目标端平台信息和源端平台信息,生成源端和目标端的平台差异分析表。
[0026]在本步骤中,如何进行对比为本领域技术人员所熟知,故在此不赘述。
[0027]步骤14,源端根据平台差异分析表和源端数据库信息,采用预先设置的迀移算法生成迀移向导,根据迀移向导进行数据迀移。
[0028]在本步骤中,源端根据平台差异分析表和源端数据库信息,采用迀移算法生成迀移向导;此外,如果有人工干预信息,还可以根据平台差异分析表、源端数据库信息和人工干预信息,采用迀移算法生成迀移向导。
[0029]步骤15,目标端对比源端数据库信息与目标端恢复的数据库信息,生成源端数据库和目标端数据库的一致性检查表,根据一致性检查表确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。
[0030]在本步骤中,根据迀移向导、迀移算法及人工干预执行Oracle数据库恢复操作。[0031 ]目标端收集恢复的数据库信息,恢
复的数据库信息,包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息及日志信息。
[0032]对比源端数据库信息与目标端恢复的数据库信息,生成源端数据库和目标端数据库的一致性检查表,如果根据一致性检查表确定源端数据库和目标端数据库一致,则迀移完成。
[0033]迀移算法包括迀移向导生成算法、导入导出备份恢复算法、可传输表空间(XTTS)备份恢复算法和数据泵备份恢复算法。下面将针对不同的迀移算法进行生成迀移向导的详细描述。
[0034]采用迀移向导生成算法生成迀移向导,具体为:
[0035]A、制定源端和目标端的平台差异分析表的格式;
[0036]B、制定每条差异对应的迀移方案建议;
[0037]C、确定适合源端数据库版本的迀移方式;
[0038]具体地,若源端数据库版本为Oracle 9i,则使用导入/导出方式进行迀移;
[0039]若源端数据库版本为Oracle 1g或Oracle llg,则根据不同的数据量和时间窗口选择不同的迀移方法和不同的转储文件传输建议:如果数据量〈1T,时间窗口为8h?12h,建议采用XTTS的方式执行数据迀移,并采用FTP传输或NFS中转服务器的方式移动数据文件;如果数据量〈1T,时间窗口为12h?48h,采用数据泵的方式执行数据迀移;如果数据量IT?5T,时间窗口为8h?24h,采用XTTS的方式执行数据迀移,并采用FTP传输或NFS中转服务器的方式移动数据文件;如果数据量IT?5T,时间窗口为24h?48h,采用数据泵的方式执行数据迀移;如果数据量5T?10T,时间窗口为8h?48h,采用XTTS (可传输表空间)的方式执行数据迀移,并采用NFS中转服务器或存储重新挂载的方式移动数据文件;如果数据量>10T,时间窗口为8h?48h,建议采用XTTS的方式执行数据迀移,并采用存储重新挂载的方式移动数据文件。
[0040]D、预估迀移时间,该迀移时间包括数据库备份时间、转储文件传输时间和数据库恢复时间;
[0041]具体地,可以根据平台差异分析表信息、用户信息、存储过程信息预估迀移时间。
[0042]E、根据A?D的信息生成迀移向导;
[0043]具体地,此阶段主要是根据迀移向导进行数据迀移备份。
[0044]根据导入导出备份恢复算法进行迀移,包括:
[0045]A、执行源端用户数据库一致性检查;
[0046]B、备份源端数据库,生成转储文件,反馈结果;
[0047]C、提示用户传输转储文件并确认转储文件传输完毕;
[0048]D、在目标端导入用户库,并反馈结果;
[0049]E、在目标数据库执行一致性检查,反馈检查结果;
[0050]F、收集已恢复的目标数据库信息,包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息、日志信息,与源端数据库信息一一对比,生成源端数据库和目标端数据库的一致性检查表,并根据一致性检查表进行检查,确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。
[0051]根据XTTS备份恢复算法进行迀移,包括:
[0052]A、创建目标数据库;
[0053]具体地,采用DBCA的方式创建目标数据库,因为这样可以使用源库创建时生成的模板,所以创建出的目标库与源库各项参数是相同的,减少了后续目标库优化等手工干涉。
[0054]B、环境验证;
[0055]具体地,验证源数据库和目标数据库各个选项,包括:系统平台、字节序、字符集、时区版本、监听器、TNS等。
[0056]C、初始化;
[0057]具体地,生成迀移脚本,修改目标库系统默认表空间。
[0058]D、删除目标数据库用户表空间;
[0059]E、创建映射用户;
[0060]F、导出源数据库元数据库;
[0061]G、用户表空间自包含检查;
[0062]H、变更源数据库用户表空间状态;
[0063]1、导出源数据库用户表空间元数据;
[0064]G、采用下面的一种移动元数据文件和新格式的数据文件:采用FTP传输的方式、采用NFS做中间服务器的方式,或采用存储重新挂载的方式;
[0065]K、转换源数据库数据文件字节序;
[0066]L、导入源数据库用户表空间元数据;
[0067]M、还原目标数据库用户表空间状态;
[0068]N、导入源数据库元数据;
[0069]O、目标数据库后续处理;
[0070]P、还原系统默认表空间,无效对象编译;
[0071]Q、还原源数据库用户表空间状态;
[0072]R、收集已恢复的目标数据库信息,包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息、日志信息,与源端数据库信息一一对比,生成源端数据库和目标端数据库的一致性检查表,并根据一致性检查表进行检查,确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。
[0073]根据数据泵备份恢复算法进行迀移,包括:
[0074]A、在源数据库导出数据到dump文件,如果从Oracle Ilg迀移到OraclelOg,在导出时,需要制定参数版本。
[0075]例如从Ilg迀移到Oracle 10.2.0.1.0,导出语句为:
[0076]EXPDP USERID = 'test/test1rcl as sysdba' schemas = test directory =DATA—PUMP—DIR dumpfile = test, dmp logfile = test, log vers1n = 10.2.0.1.0o
[0077]B、移动dump文件到目标库。
[0078]C、导入dump文件中数据到目标库。
[0079]D、收集已恢复的目标数据库信息,包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息、日志信息,与源端数据库信息一一对比,生成源端数据库和目标端数据库的一致性检查表,并根据一致性检查表进行检查,确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。
[0080]图2是本发明的一种实施例中Oracle数据库跨平台迀移系统的架构示意图。如图2所示,该Oracle数据库跨平台迀移系统包括源端与目标端,其中SPARC平台为源端,K-UX平台为目标端,通过以太网实现源端与目标端通信,且源端和目标端分别与Oracle数据库交互。
[0081]源端,用于收集源端平台信息和数据库信息;接收来自目标端的目标端平台信息,对比目标端平台信息和源端平台信息,生成源端和目标端的平台差异分析表;根据平台差异分析表和源端数据库信息,采用预先设置的迀移算法生成迀移向导,根据迀移向导进行数据迀移;
[0082]目标端,用于收集目标端平台信息和恢复的数据库信息,对比源端数据库信息与目标端恢复的数据库信息,生成源端数据库和目标端数据库的一致性检查表,根据一致性检查表确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。
[0083]源端和目标端的具体结构如图2所示。
[0084]源端包含源端通信模块1、源端分析模块2、源端备份模块3与源端控制台模块4,其中源端控制台模块4的第一通信端口与源端通信模块I的第一通信端口相连,源端控制台模块4的第二通信端口与源端分析模块2的第一通信端口相连,源端控制台模块4的第三通信端口与备份模块3相连,源端通信模块I的第二通信端口与源端分析模块2的第二通信端口相连,源端通信模块I的第三通信端口与源端备份模块3的第二通信端口相连,源端通信模块I的第四通信端口与目标端通信模块5的第四通信端口通过以太网相连。
[0085]目标端包含目标端通信模块5、目标端分析模块6、目标端恢复模块7与目标端控制台模块8,其中目标端控制台模块8的第一通信端口与目标端通信模块5的第一通信端口相连,目标端控制台模块8的第二通信端口与目标端分析模块6的第一通信端口相连,目标端控制台模块8的第三通信端口与目标端恢复模块7相连,目标端通信模块5的第二通信端口与目标端分析模块6的第二通信端口相连,目标端通信模块5的第三通信端口与目标端恢复模块7的第二通信端口相连,目标端的通信模块的5第四通信端口与源
端通信模块I的第四端口通过以太网相连。
[0086]源端通信模块I通过以太网实现源端与目标端通信,源端通信模块I将源端分析模块2、源端备份模块3、源端控制台模块4发送的信息通过以太网发送至目标端通信模块5。
[0087]源端分析模块2收集源端平台信息与数据库信息,源端平台信息包括处理器架构信息、指令集信息、字节序信息、编译器信息、操作系统信息、系统变量信息及文件系统信息,数据库信息包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息及日志信息。
[0088]此外,源端分析模块2通过源端通信模块I接收目标端分析模块6收集的目标端平台信息,对比源端平台信息与目标端平台信息,得出源端和目标端德平台差异分析表输出至源端控制台模块4。源端分析模块根据平台差异分析表、收集的源端数据库信息以及迀移算法,制定迀移方案输出至源端控制台模块4,根据源端控制台模块4反馈的人工干预信息,生成迀移向导指导迀移。源端分析模块2将源端平台信息、源端数据库信息、平台差异分析表、迀移方案、迀移向导发送至源端通信模块I。
[0089]源端备份模块3根据迀移向导、迀移算法及控制台发送的人工干预执行源端Oracle数据库备份操作,并反馈每步操作的结果至源端控制台模块4与源端通信模块I。
[0090]源端控制台模块4用于实现人机交互。
[0091]目标端通信模块5通过以太网实现目标端与源端通信,目标端通信模块5将目标端分析模块6、目标端恢复模块7、目标端控制台模块8发送的信息通过以太网发送至源端通信模块I。
[0092]目标端分析模块6收集目标端平台信息与恢复的数据库信息,平台信息包括处理器架构信息、指令集信息、字节序信息、编译器信息、操作系统信息、系统变量信息及文件系统信息,恢复的数据库信息包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息、日志信息。
[0093]此外,目标端分析模块6通过目标端通信模块5接收源端分析模块2收集的源端数据库信息,对比源端数据库信息与目标端以恢复的数据库信息,得出源端数据库、目标端数据库一致性检查表输出至目标端控制台模块8。目标端分析模块6将目标端平台信息、目标端数据库信息、数据库一致性检查表、发送至目标端通信模块5。
[0094]目标端恢复模块7根据迀移向导、迀移算法及控制台发送的人工干预执行源端Oracle数据库恢复操作,并反馈每步操作的结果至目标端控制台模块8与目标端通信模块5。
[0095]目标端控制台模块8用于实现人机交互。
[0096]源端控制台模块4与目标端控制台模块8通过源端通信模块I和目标端通信模块5互通信息,实现在源端和目标端均可对所述数据迀移工具进行控制。
[0097]迀移算法包括迀移向导生成算法、导入导出备份恢复算法、XTTS备份恢复算法和数据泵备份恢复算法。
[0098]迀移向导生成算法,具体为:
[0099]A、制定源端和目标端的平台差异分析表的格式;
[0100]B、制定每条差异对应的迀移方案建议;
[0101]C、确定适合源端数据库版本的迀移方式;
[0102]具体地,若源端数据库版本为Oracle 9i,则使用导入/导出方式进行迀移;
[0103]若源端数据库版本为Oracle 1g或Oracle llg,则根据不同的数据量和时间窗口选择不同的迀移方法和不同的转储文件传输建议:如果数据量〈1T,时间窗口为8h?12h,建议采用XTTS的方式执行数据迀移,并采用FTP传输或NFS中转服务器的方式移动数据文件;如果数据量〈1T,时间窗口为12h?48h,采用数据泵的方式执行数据迀移;如果数据量IT?5T,时间窗口为8h?24h,采用XTTS的方式执行数据迀移,并采用FTP传输或NFS中转服务器的方式移动数据文件;如果数据量IT?5T,时间窗口为24h?48h,采用数据泵的方式执行数据迀移;如果数据量5T?10T,时间窗口为8h?48h,采用XTTS的方式执行数据迀移,并采用NFS中转服务器或存储重新挂载的方式移动数据文件;如果数据量>10T,时间窗口为8h?48h,建议采用XTTS的方式执行数据迀移,并采用存储重新挂载的方式移动数据文件。
[0104]D、预估迀移时间,该迀移时间包括数据库备份时间、转储文件传输时间和数据库恢复时间;
[0105]具体地,可以根据平台差异分析表信息、用户信息、存储过程信息预估迀移时间。
[0106]E、源端分析模块2根据A?D的信息生成迀移向导。
[0107]具体地,此阶段主要是根据迀移向导进行数据迀移备份。源端分析模块2根据A?D中的信息生成迀移方案建议,并将迀移方案建议发送至源端控制台模块4和源端通信模块1,根据对迀移方案建议的决策,生成迀移向导。
[0108]采用导入导出备份恢复算法,具体为:
[0109]A、源端备份模块3执行源端用户数据库一致性检查;
[0110]B、源端备份模块3备份源端数据库,生成转储文件,反馈结果;
[0111]C、提示用户传输转储文件;
[0112]D、通过源端控制台模块4或目标端控制台模块8确认转储文件传输完毕;
[0113]E、目标端恢复模块7在目标端导入用户库,并反馈结果;
[0114]F、目标端恢复模块7在目标数据库执行一致性检查,反馈检查结果;
[0115]G、目标端分析模块6收集已恢复的目标数据库信息,包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息、日志信息,与源端分析模块2收集的源端数据库信息—对比,生成源端数据库和目标端数据库的一致性检查表,并将一致性检查表发送至目标端控制台模块8供进行检查,将一致性检查表发送至目标端通信模块5以使用户在源端控制台模块4能够得到一致性信息;目标端控制台模块根据一致性检查表进行检查,确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。
[0116]采用XTTS备份恢复算法,具体为:
[0117]A、创建目标数据库;
[0118]具体地,采用DBCA的方式创建目标数据库,因为这样可以使用源库创建时生成的模板,所以创建出的目标库与源库各项参数是相同的,减少了后续目标库优化等手工干涉。
[0119]B、环境验证;
[0120]具体地,验证源数据库和目标数据库各个选项,包括:系统平台、字节序、字符集、时区版本、监听器、TNS等。
[0121]C、初始化;
[0122]具体地,生成迀移脚本,修改目标库系统默认表空间。
[0123]D、删除目标数据库用户表空间;
[0124]E、创建映射用户;
[0125]F、导出源数据库元数据库;
[0126]G、用户表空间自包含检查;
[0127]H、变更源数据库用户表空间状态;
[0128]1、导出源数据库用户表空间元数据;
[0129]G、采用下面的一种移动元数据文件和新格式的数据文件:采用FTP传输的方式、采用NFS做中间服务器的方式,或采用存储重新挂载的方式;
[0130]K、转换源数据库数据文件字节序;
[0131]L、导入源数据库用户表空间元数据;
[0132]M、还原目标数据库用户表空间状态;
[0133]N、导入源数据库元数据;
[0134]0、目标数据库后续处理;
[0135]P、还原系统默认表空间,无效对象编译;
[0136]Q、还原源数据库用户表空间状态;
[0137]R、目标端分析模块6收集已恢复的目标数据库信息,包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息、日志信息,与源端分析模块2收集的源端数据库信息--对比,生成源端数据库和目标端数据库的一致性检查表,并将一致性检查表发送至目标端控制台模块8进行检查,将一致性检查表发送至目标端通信模块5以使用户在源端控制台模块4能够得到一致性信息;目标端控制台模块根据一致性检查表进行检查,确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。
[0138]采用数据泵备份恢复算法,具体为:
[0139]A、在源数据库导出数据到dump文件,如果从Oracle Ilg迀移到OraclelOg,在导出时,需要制定参数版本;
[0140]
B、移动dump文件到目标库;
[0141]C、导入dump文件中数据到目标库;
[0142]D、目标端分析模块6收集已恢复的目标数据库信息,包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息、日志信息,与源端分析模块2收集的源端数据库信息--对比,生成源端数据库和目标端数据库的一致性检查表,并将一致性检查表发送至目标端控制台模块8进行检查,将一致性检查表发送至目标端通信模块5以使用户在源端控制台模块4能够得到一致性信息;目标端控制台模块根据一致性检查表进行检查,确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。
[0143]在本发明的Oracle数据库跨平台迀移方法和系统,能够大大降低Oracle数据库从SPARC平台向K-UX平台迀移的工作量,降低迀移难度。
[0144]虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
【主权项】
1.一种Oracle数据库跨平台迀移方法,其特征在于,该方法应用于通过以太网建立连接源端与目标端,且源端和目标端分别与Oracle数据库交互; 该方法包括: 当需要进行数据库迀移时,源端收集源端平台信息和数据库信息,目标端收集目标端平台信息; 源端接收来自所述目标端的目标端平台信息,对比目标端平台信息和源端平台信息,生成源端和目标端的平台差异分析表; 源端根据平台差异分析表和源端数据库信息,采用预先设置的迀移算法生成迀移向导,根据迀移向导进行数据迀移; 目标端收集目标端恢复的数据库信息,对比源端数据库信息与目标端恢复的数据库信息,生成源端数据库和目标端数据库的一致性检查表,根据一致性检查表确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。2.根据权利要求1所述的方法,其特征在于,所述源端与目标端架构基于JAVA实现,源端安装于SPARC平台,目标端安装于K-UX平台。3.根据权利要求1所述的方法,其特征在于,所述源端平台信息包括处理器架构信息、指令集信息、字节序信息、编译器信息、操作系统信息、系统变量信息及文件系统信息; 所述数据库信息包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息及日志信息; 所述目标端平台信息包括处理器架构信息、指令集信息、字节序信息、编译器信息、操作系统信息、系统变量信息及文件系统信息; 所述恢复的数据库信息,包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息及日志信息。4.根据权利要求1?3中任一项所述的方法,其特征在于,所述迀移算法包括导入导出备份恢复算法、可传输表空间XTTS备份恢复算法和数据泵备份恢复算法。5.根据权利要求4所述的方法,其特征在于,所述生成迀移向导,包括: A、制定源端和目标端的平台差异分析表的格式; B、制定每条差异对应的迀移方案建议; C、确定适合源端数据库版本的迀移方式:若源端数据库版本为Oracle9i,则使用导入/导出方式进行迀移;若源端数据库版本为Oracle 1g或Oracle llg,则根据不同的数据量和时间窗口选择不同的迀移方法和不同的转储文件传输建议:如果数据量〈1T,时间窗口为8h?12h,建议采用XTTS的方式执行数据迀移,并采用FTP传输或NFS中转服务器的方式移动数据文件;如果数据量〈1T,时间窗口为12h?48h,采用数据泵的方式执行数据迀移;如果数据量IT?5T,时间窗口为8h?24h,采用XTTS的方式执行数据迀移,并采用FTP传输或NFS中转服务器的方式移动数据文件;如果数据量IT?5T,时间窗口为24h?48h,采用数据泵的方式执行数据迀移;如果数据量5T?10T,时间窗口为8h?48h,采用XTTS的方式执行数据迀移,并采用NFS中转服务器或存储重新挂载的方式移动数据文件;如果数据量>10T,时间窗口为8h?48h,建议采用XTTS的方式执行数据迀移,并采用存储重新挂载的方式移动数据文件; D、预估迀移时间,该迀移时间包括数据库备份时间、转储文件传输时间和数据库恢复时间; E、根据A?D的信息生成迀移向导。6.根据权利要求4所述的方法,其特征在于,根据所述导入导出备份恢复算法进行迀移,包括: 执行源端用户数据库一致性检查; 备份源端数据库,生成转储文件,反馈结果; 提示用户传输转储文件并确认转储文件传输完毕; 在目标端导入用户库,并反馈结果; 在目标数据库执行一致性检查,反馈检查结果; 收集已恢复的目标数据库信息,与源端数据库信息一一对比,生成源端数据库和目标端数据库的一致性检查表,并根据一致性检查表进行检查。7.根据权利要求4所述的方法,其特征在于,根据所述XTTS备份恢复算法执行数据迀移,包括: A、创建目标数据库; B、环境验证; C、初始化; D、删除目标数据库用户表空间; E、创建映射用户; F、导出源数据库元数据库; G、用户表空间自包含检查; H、变更源数据库用户表空间状态; 1、导出源数据库用户表空间元数据; G、采用下面的一种移动元数据文件和新格式的数据文件:采用FTP传输的方式、采用NFS做中间服务器的方式,或采用存储重新挂载的方式; K、转换源数据库数据文件字节序; L、导入源数据库用户表空间元数据; M、还原目标数据库用户表空间状态; N、导入源数据库元数据; O、目标数据库后续处理; P、还原系统默认表空间,无效对象编译; Q、还原源数据库用户表空间状态; R、收集已恢复的目标数据库信息,包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息、日志信息,与源端数据库信息一一对比,生成源端数据库和目标端数据库的一致性检查表,并根据一致性检查表进行检查,确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。8.根据权利要求4所述的方法,其特征在于,根据所述数据泵备份恢复算法执行数据迀移,包括: A、在源数据库导出数据到dump文件,如果从Oracle Ilg迀移到OraclelOg,在导出时,需要制定参数版本; B、移动dump文件到目标库; C、导入dump文件中数据到目标库; D、收集已恢复的目标数据库信息,包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息、日志信息,与源端数据库信息一一对比,生成源端数据库和目标端数据库的一致性检查表,并根据一致性检查表进行检查,确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。9.一种Oracle数据库跨平台迀移系统,其特征在于,包括源端与目标端,通过以太网实现源端与目标端通信,且源端和目标端分别与Oracle数据库交互; 所述源端,用于收集源端平台信息和数据库信息;接收来自目标端的目标端平台信息,对比目标端平台信息和源端平台信息,生成源端和目标端的平台差异分析表;根据平台差异分析表和源端数据库信息,采用预先设置的迀移算法生成迀移向导,根据迀移向导进行数据迀移; 所述目标端,用于收集目标端平台信息和恢复的数据库信息,对比源端数据库信息与目标端恢复的数据库信息,生成源端数据库和目标端数据库的一致性检查表,根据一致性检查表确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。10.根据权利要求9所述的系统,其特征在于,所述源端与目标端架构基于JAVA实现,源端安装于SPARC平台,目标端安装于K-UX平台;11.根据权利要求9所述的系统,其特征在于,所述源端包括:源端通信模块、源端分析模块、源端备份模块与源端控制台模块,其中, 源端控制台模块的第一通信端口与源端通信模块的第一通信端口相连,源端控制台模块的第二通信端口与源端分析模块的第一通信端口相连,源端控制台模块的第三通信端口与备份模块相连,源端通信模块的第二通信端口与源端分析模块的第二通信端口相连,源端通信模块的第三通信端口与源端备份模块的第二通信端口相连,源端通信模块的第四通信端口与目标端通信模块的第四通信端口通过以太网相连。12.根据权利要求11所述的系统,其特征在于,所述目标端包括:目标端通信模块、目标端分析模块、目标端恢复模块与目标端控制台模块,其中, 目标端控制台模块的第一通信端口与目标端通信模块的第一通信端口相连,目标端控制台模块的第二通信端口与目标端分析模块的第一通信端口相连,目标端控制台模块的第三通
信端口与目标端恢复模块相连,目标端通信模块的第二通信端口与目标端分析模块的第二通信端口相连,目标端通信模块的第三通信端口与目标端恢复模块的第二通信端口相连,目标端的通信模块的第四通信端口与源端通信模块的第四端口通过以太网相连。13.根据权利要求12所述的系统,其特征在于,所述源端通信模块通过以太网实现源端与目标端通信,源端通信模块将源端分析模块、源端备份模块、源端控制台模块发送的信息通过以太网发送至目标端通信模块; 所述源端分析模块收集源端平台信息与数据库信息,源端平台信息包括处理器架构信息、指令集信息、字节序信息、编译器信息、操作系统信息、系统变量信息及文件系统信息;数据库信息包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息及日志信息;源端分析模块通过源端通信模块接收目标端分析模块收集的目标端平台信息,对比源端平台信息与目标端平台信息,得出源端和目标端德平台差异分析表输出至源端控制台模块;根据平台差异分析表、收集的源端数据库信息以及迀移算法,制定迀移方案输出至源端控制台模块,根据源端控制台模块反馈的人工干预信息,生成迀移向导指导迀移;将源端平台信息、源端数据库信息、平台差异分析表、迀移方案、迀移向导发送至源端通信模块; 所述源端备份模块根据迀移向导、迀移算法及控制台发送的人工干预执行源端Oracle数据库备份操作,并反馈每步操作的结果至源端控制台模块与源端通信模块。 所述源端控制台模块用于实现人机交互。14.根据权利要求13所述的系统,其特征在于,所述目标端通信模块通过以太网实现目标端与源端通信,目标端通信模块将目标端分析模块、目标端恢复模块、目标端控制台模块发送的信息通过以太网发送至源端通信模块; 所述目标端分析模块收集目标端平台信息与恢复的数据库信息,目标端平台信息包括处理器架构信息、指令集信息、字节序信息、编译器信息、操作系统信息、系统变量信息及文件系统信息;恢复的数据库信息包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息及日志信息;目标端分析模块通过目标端通信模块接收源端分析模块收集的源端数据库信息,对比源端数据库信息与目标端以恢复的数据库信息,得出源端数据库、目标端数据库一致性检查表输出至目标端控制台模块;将目标端平台信息、目标端数据库信息、数据库一致性检查表、发送至目标端通信模块; 所述目标端恢复模块根据迀移向导、迀移算法及控制台发送的人工干预执行源端Oracle数据库恢复操作,并反馈每步操作的结果至目标端控制台模块与目标端通信模块; 目标端控制台模块用于实现人机交互。15.根据权利要求9?14中的任一项所述的系统,其特征在于,所述迀移算法包括迀移向导生成算法、导入导出备份恢复算法、可传输表空间XTTS备份恢复算法和数据泵备份恢复算法。16.根据权利要求15所述的系统,其特征在于,所述迀移向导生成算法,具体为: A、制定源端和目标端的平台差异分析表的格式; B、制定每条差异对应的迀移方案建议; C、确定适合源端数据库版本的迀移方式:若源端数据库版本为Oracle9i,则使用导入/导出方式进行迀移;若源端数据库版本为Oracle 1g或Oracle llg,则根据不同的数据量和时间窗口选择不同的迀移方法和不同的转储文件传输建议:如果数据量〈1T,时间窗口为8h?12h,建议采用XTTS的方式执行数据迀移,并采用FTP传输或NFS中转服务器的方式移动数据文件;如果数据量〈1T,时间窗口为12h?48h,采用数据泵的方式执行数据迀移;如果数据量IT?5T,时间窗口为8h?24h,采用XTTS的方式执行数据迀移,并采用FTP传输或NFS中转服务器的方式移动数据文件;如果数据量IT?5T,时间窗口为24h?48h,采用数据泵的方式执行数据迀移;如果数据量5T?10T,时间窗口为8h?48h,采用XTTS的方式执行数据迀移,并采用NFS中转服务器或存储重新挂载的方式移动数据文件;如果数据量>10T,时间窗口为8h?48h,建议采用XTTS的方式执行数据迀移,并采用存储重新挂载的方式移动数据文件; D、预估迀移时间,该迀移时间包括数据库备份时间、转储文件传输时间和数据库恢复时间; E、源端分析模块根据A?E中的信息生成迀移方案建议,并将迀移方案建议发送至源端控制台模块和源端通信模块,根据对迀移方案建议的决策,生成迀移向导。17.根据权利要求15所述的系统,其特征在于,所述导入导出备份恢复算法,具体为: A、源端备份模块执行源端用户数据库一致性检查; B、源端备份模块备份源端数据库,生成转储文件,反馈结果; C、提示用户传输转储文件; D、通过源端控制台模块或目标端控制台模块确认转储文件传输完毕; E、目标端恢复模块在目标端导入用户库,并反馈结果; F、目标端恢复模块在目标数据库执行一致性检查,反馈检查结果; G、目标端分析模块收集已恢复的目标数据库信息,包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息、日志信息,与源端分析模块收集的源端数据库信息--对比,生成源端数据库和目标端数据库的一致性检查表,并将一致性检查表发送至目标端控制台模块供进行检查,将一致性检查表发送至目标端通信模块以使用户在源端控制台模块能够得到一致性信息;目标端控制台模块根据一致性检查表进行检查,确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。18.根据权利要求15所述的系统,其特征在于,所述XTTS备份恢复算法,具体为: A、创建目标数据库; B、环境验证; C、初始化; D、删除目标数据库用户表空间; E、创建映射用户; F、导出源数据库元数据库; G、用户表空间自包含检查; H、变更源数据库用户表空间状态; 1、导出源数据库用户表空间元数据; G、采用下面的一种移动元数据文件和新格式的数据文件:采用FTP传输的方式、采用NFS做中间服务器的方式,或采用存储重新挂载的方式; K、转换源数据库数据文件字节序; L、导入源数据库用户表空间元数据; M、还原目标数据库用户表空间状态; N、导入源数据库元数据; 0、目标数据库后续处理; P、还原系统默认表空间,无效对象编译; Q、还原源数据库用户表空间状态; R、目标端分析模块收集已恢复的目标数据库信息,包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息、日志信息,与源端分析模块收集的源端数据库信息--对比,生成源端数据库和目标端数据库的一致性检查表,并将一致性检查表发送至目标端控制台模块进行检查,将一致性检查表发送至目标端通信模块以使用户在源端控制台模块能够得到一致性信息;目标端控制台模块根据一致性检查表进行检查,确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。19.根据权利要求15所述的系统,其特征在于,所述数据泵备份恢复算法,具体为: A、在源数据库导出数据到dump文件,如果从OracleIlg迀移到Oracle 10g,在导出时,需要制定参数版本; B、移动dump文件到目标库; C、导入dump文件中数据到目标库; D、目标端分析模块收集已恢复的目标数据库信息,包括数据库版本信息、数据量信息、表信息、索引信息、存储过程信息、用户信息、日志信息,与源端分析模块收集的源端数据库信息--对比,生成源端数据库和目标端数据库的一致性检查表,并将一致性检查表发送至目标端控制台模块进行检查,将一致性检查表发送至目标端通信模块以使用户在源端控制台模块能够得到一致性信息;目标端控制台模块根据一致性检查表进行检查,确定源端数据库和目标端数据库一致,则Oracle数据库跨平台迀移完成。
【专利摘要】本发明公开了一种Oracle数据库跨平台迁移方法和系统,包括:源端收集源端平台信息和数据库信息,目标端收集目标端平台信息;源端对比目标端平台信息和源端平台信息,生成源端和目标端的平台差异分析表;源端根据平台差异分析表和源端数据库信息,采用迁移算法生成迁移向导,根据迁移向导进行数据迁移;目标端收集目标端恢复的数据库信息,对比源端数据库信息与目标端恢复的数据库信息,生成一致性检查表,根据一致性检查表确定源端数据库和目标端数据库一致,则迁移完成。本发明能够降低迁移的工作量,降低迁移难度。
【IPC分类】G06F17/30
【公开号】CN104899333
【申请号】CN201510355802
【发明人】康玉琢
【申请人】浪潮(北京)电子信息产业有限公司
【公开日】2015年9月9日
【申请日】2015年6月24日