1、Oracle 数据迁移技术与方案姓 名: 学 号: 指导老师: 系 名: 软件学院 专 业: 计算机科学与技术 班 级: 11 级 12 班 2012 年 5 月 21 日Oracle 数据迁移技术与方案I目录摘要 .- 1 -第 1 章 ORACLE 数据迁移技术 .- 1 -1.1 数据迁移技术 .- 1 -1.2 数据迁移的一般步骤 .- 1 -1.3 ORACLE 数据迁移方法 .- 3 -第 2 章 ORACLE 数据迁移方案 .- 6 -2.1 使用可移动表空间 .- 6 -2.2 数据泵导出与导入工具 .- 6 -2.3 拖出表空间 .- 7 -第 3 章 总结 .- 8 -Or
2、acle 数据迁移技术与方案- 1 -摘要在企业级应用系统中,新系统的开发,新旧系统的升级换代,以及正常的系统维护,不可避免地涉及到大量的迁移工作。而在一个以数据为核心的业务系统中,数据的迁移更是无处不在。比如:在以数据仓库为架构原型的系统设计中,ETL(抽取,转换,装载)部分的实现就是一种数据迁移;对大型数据系统的分布式实施,数据迁移就是整个实施过程的主要部分。而在实践中,渐进式的数据库开发,更是涉及到大量的数据迁移和同步工作。Oracle 数据库是当今世界上应用访问最为广泛的数据库之一,是关系型数据库的创作者,也是客户/服务器结构、分布式数据库和网格计算的倡导者和领导者。基于Oracle
3、数据库平台的商品化应用软件包,已经广泛应用于国内的政府部门、电信、邮政、公安、金融、保险、能源电力、交通、科教、石化、航空航天、民航等各行各业,当这些系统进行系统升级时,不可避免的要进行数据迁移,因此研究 Oracle 环境的数据迁移很有价值。第 1 章 Oracle 数据迁移技术1.1 数据迁移技术数据迁移(又称分级存储管理,hierarchical storage management,hsm)是一种将离线存储与在线存储融合的技术。它将高速、高容量的非在线存储设备作为磁盘设备的下一级设备,然后将磁盘中常用的数据按指定的策略自动迁移到磁带库(简称带库)等二级大容量存储设备上。当需要使用这些数
4、据时,分级存储系统会自动将这些数据从下一级存储设备调回到上一级磁盘上。对于用户来说,上述数据迁移技术操作完全是透明的,只是在访问磁盘的速度上略有怠慢,而在逻辑磁盘的容量上明显感觉大大提高了。通俗地讲,数据迁移技术是一种可以把大量不经常访问的数据存放在带库、盘库等离线介质上,只在盘阵上保存少量访问频率高的数据的技术。当那些磁带等介质上数据被访问时,系统自动的把这些数据回迁到盘阵中;同样,盘阵中很久未访问的数据被自动迁移到磁带介质上,从而大大降低投入和管理成本。 1.2 数据迁移的一般步骤 在开发环境向运行环境转换、低版本数据库向高版本数据库转换以及两个不同数据库之间进行转换时,数据库中的数据(包
5、括结构定义)需要被转移并使之正常运行,这就是数据库中的数据迁移。对于中小型数据库,如 Foxpro 中的.dbf,这种迁移非Oracle 数据迁移技术与方案- 2 -常简单,一般只需通过简单的 Copy 就能完成。但对于大型数据库系统,如 Oracle 数据库,数据迁移就不那么简单了,它需要利用一定的技术和经验,有步骤按计划地完成。 对数据库管理人员来说,数据库数据迁移极具挑战性,一旦措施不当,珍贵的数据资源将面临丢失的危险,要成功地实现数据库数据平滑迁移,需要周密计划和充分准备,并按照一定的步骤来完成。 1.设计数据迁移方案 设计数据迁移方案主要包括以下几个方面工作:研究与数据迁移相关的资料
6、,或在网站上查询相关内容、评估和选择数据迁移的软硬件平台、选择数据迁移方法、选择数据备份和恢复策略、设计数据迁移和测试方案等。 2.进行数据模拟迁移 根据设计的数据迁移方案,建立一个模拟的数据迁移环境,它既能仿真实际环境又不影响实际数据,然后在数据模拟迁移环境中测试数据迁移的效果。数据模拟迁移前也应按备份策略备份模拟数据,以便数据迁移后能按恢复策略进行恢复测试。 3.测试数据模拟迁移 根据设计的数据迁移测试方案测试数据模拟迁移,也就是检查数据模拟迁移后数据和应用软件是否正常,主要包括:数据一致性测试、应用软件执行功能测试、性能测试、数据备份和恢复测试等。 4.准备实施数据迁移 数据模拟迁移测试
7、成功后,在正式实施数据迁移前还需要做好以下几个方面工作:进行完全数据备份、确定数据迁移方案、安装和配置软硬件等。 5.正式实施数据迁移 按照确定的数据迁移方案,正式实施数据迁移。 6.测试数据迁移效果 按照数据迁移测试方案测试数据迁移效果,并对数据迁移后的数据库参数和性能进行调整,使之满足数据迁移后实际应用系统的需要。 7.移植系统应用软件 将实际应用系统的应用软件移植到数据迁移后的数据库系统上,并使之正常运行。8.正式运行应用系统 Oracle 数据迁移技术与方案- 3 -在正式实施数据迁移成功并且数据库参数和性能达到要求后,就可以正式运行应用系统,并投入实际使用。 1.3 Oracle 数
8、据迁移方法 Oracle 数据库系统本身提供了实现 Oracle 数据库数据迁移的多种工具,我们还可以利用 PowerBuilder 的数据管道功能实现 Oracle 数据库数据迁移。 ,以下介绍可以实现数据库数据迁移的几种方法:移植实用程序(Migration Utility) ,Oracle 数据移植助理(Oracle data Migration Assistant),导入/导出工具(Export/Import) ,SQlLoader 工具,SQLPLUS COPY 命令,PowerBuilder 数据管道工具(Pipeline) 。1:移植实用程序(Migration Utility)
9、 MIG 是 Oracle 提供的用于 Oracle 数据库之间数据迁移的命令行方式实用程序。使用 MIG 迁移 Oracle7 的数据到 Oracle8i 的一般步骤为: 设置 Oracle7 数据库环境变量,包括运行注册表编辑器(regedit.exe)和控制面板,设置 Oracle7 主目录、字符集和可执行文件路径等,并在 DOS 命令提示符下设置Oracle_sid=Oracle7_sid,并正常关闭 Oracle7 数据库。 运行 Oracle8i 的 MIG 应用程序,生成一个转换文件,用于数据库转换。 从 Windows NT 控制面板终止 Oracle7 数据库服务,并使用实例
10、管理器删除 Oracle7数据库服务。设置 Oracle8i 数据库环境变量,包括运行注册表编辑器(regedit.exe)和控制面板,设置 Oracle8i 主目录、字符集和可执行文件路径等;由 oradim 命令使用Oracle7_sid 和 init.ora 文件创建 Oracle8i 服务;重新命名数据库控制文件;编辑init.ora 文件,设置 compatible 为 8.1.5.0.0;删除 init.ora 文件中不再使用的参数;在 DOS 命令提示符下设置 Oracle_Sid=Oracle8_sid。 实现数据迁移,以内部用户账号连接服务器管理器;以非登录方式启动 Orac
11、le8i数据库;由 alter database covert 命令生成新的控制文件,并把文件头转换为Oracle8i 数据库文件格式;由 alter database open resetlog 命令打开数据库并且重新设置日志文件;由 spool migscripts.log 命令创建输出目标文件,该文件保存前面命令脚本文件的运行结果;运行 u0703030.sql,当使用数据库高级复制功能选项时,Oracle 数据迁移技术与方案- 4 -运行 Catrep.sql,当使用 Oracle Parallel Server 选项时,运行 catparr.sql;由spool out 命令结束结果
12、输出,并关闭数据库和备份数据库。查看 migscripts.out spool 文件,确认脚本文件执行成功,如果脚本文件没有成功执行,返回到脚本文件,检查可能出现的问题。 2:Oracle 数据移植助理(Oracle data Migration Assistant) Oracle 数据移植助手用于将 Oracle7 数据库移植到 Oracle8 数据库。升级Oracle8 数据库较早版本到 Oracle8 数据库新版本。Oracle 数据移植助手不用于升级较低版本 Oracle7 数据库到较高版本 Oracle7 数据库。使用 Oracle 数据移植助手迁移Oracle7 数据库数据到 Or
13、acle8i 的一般步骤是: 关闭 Oracle7 数据库,终止所有 Oracle 数据库服务;编辑 init.ora 文件,设置compatible 为 8.1.5.0.0;删除 init.ora 文件中不再使用的参数。 运行 Oracle 数据移植助手,在 Database Instance 页,选择移植的数据库实例,输人 internal 用户账号密码,并提供 init.ora 文件位置;在 Moving the Database页,指定数据库移植的新位置;如果用户还没有进行备份,在 Backup the Database 页,允许用户进行数据库备份;在 Character Set 页,
14、指定移植后的数据库使用的字符集。开始移植过程。移植过程需要的时间取决于系统内存容量、硬盘速度、CPU 速度等因素。 移植完成后,可以查看 Migration Report 页,检查移植是否成功执行。如果移植没有成功,应当把数据库系统返回到备份的 Oracle7 数据库。 编辑 init.ora 文件,添加在 Oracle8i 数据库中会用到的参数。删除在移植过程中用到的旧的控制文件。 当使用数据库高级复制功能选项时,运行 catrep.sql;当使用 Oracle Parallel Server 选项时,运行 catparr.sql。 3:导入/导出工具(Export/Import) 当需要从
15、一个非 PC 的系统平台(例如,Unix 系统)迁移数据库时,导人导出方式是一种非常有用的策略,当然相同系统平台的数据迁移导人导出方式同样适用。采用导入导出方式迁移 Oracle7 Database on Unix 到 Oracle8i Database on Windows NT 数据库的一般步骤是: Oracle 数据迁移技术与方案- 5 -以正常方式关闭 Unix 系统的 Oracle7 数据库系统,不要立即终止或者异常终止,然后冷备份数据库。打开数据库,使用导出工具(Export Utility)进行数据库的完全导出。 在 Windows NT 系统安装 Oracle8i 数据库软件并
16、创建启动数据库。 使用 FTP,将文件传输到 Windows NT 计算机。必须使用 FTP 的 binary 传输模式,否则,可能造成读导出转储文件错误。 确认目标数据库在运行,并在 DOS 命令提示符下设置 oracle_sid=Oracle8i_SID。 使用导出转储文件,执行到目标数据库完全的导人。 查看导入日志文件,确认数据库导入执行成功。 4:SQlLoader 工具 SQLLoader 可以将 ASCII 文件中的数据装入 Oracle 数据库。ASCII 文件中的信息可以来自不同的数据源,例如其他 Oracle 数据库、非 Oracle 数据库以及电子表格等。 采用 SQlLo
17、ader 工具将数据迁移到 Oracle 数据库的一般步骤有: 使用文本文件编辑器创建控制文件。 在 DOS 命令行下使用 sqlldr 命令装载数据文件。 验证数据是否正确装载。 5:SQLPLUS COPY 命令 使用 SQLPLUS COPY 命令,迁移 Oracle7 数据库到 Oracle8i 与导人导出方式相似,但是,此时需要两个数据库都在线,其一般步骤是: 首先安装 Oracle8i 数据库,并创建一个数据库作为目标数据库。 添加所需的表空间和用户到目标数据库中;安装所需的 SQLNet2 或者 Net8 软件,并配置用于连接数据库的别名。 在 DOS 命令提示符下设置 orac
18、le_sid=Oracle7_sid。 以 Internal 用户账号连接 SQLPLUS。 创建一个从 Oracle7 数据库到 Oracle8i 数据库的数据库链接;使用 SQLPLUS COPY 命令从 Oracle7 数据库复制表和表内容到 Oracle8i 数据库。 将视图、同义词、存储过程等添加到目标数据库。 6:PowerBuilder 数据管道工具(Pipeline) Oracle 数据迁移技术与方案- 6 -PowerBuilder 数据管道工具是 PowerBuilder 提供的一个用于转换数据的智能对象,它可以在图形方式下实现不同类型数据库间的数据迁移而无需 SQL 编程
19、。PowerBuilder 数据管道的操作是在图形方式下实现的,因此比较简单,其一般步骤是:启动 PowerBuilder。 点击工具栏上的“DBProfile“按钮,通过 ODBC 或专用接口配置源和目标数据库连接,同时连接到源和目标数据库。 单击工具栏上的“Pipeline“按钮,建一个新的数据管道,确定好源和目标数据库。选择要传输数据的表,并根据需要选中想传输的列。 选择数据迁移方式,CreateAddTable(在目标库中建立一个新表并复制数据) 、ReplaceDrop/AddTable(删除旧表并复制数据) 、Refresh DeleteRows(删除表中的现有数据并复制数据) 、
20、AppendInsertRows(在现有数据基础上增加新数据) 、UpdateUpdate/InsertRows(新增数据的键值如果与现有数据某行的键值一样则覆盖现有数据,否则插入新数据) 。 单击“Execute“按钮运行定义好的数据管道完成数据迁移。第 2 章 Oracle 数据迁移方案为了有效地实现数据集市的方法,数据专家必须能将数据快速、有效地放入数据集市中。如何用数据仓库中的数据快速刷新数据集市中的数据,而这些数据集市又运行在各个结构不同的平台上。以下是 Oracle 数据迁移技术的几种方案。2.1 使用可移动表空间把整个表空间移动到目标系统的最快速方法是用 FTP(文件传输协议)或
21、 rcp(远程复制)来简单地转移表空间的基本文件。但是,仅仅复制 Oracle 数据文件还不够,目标数据库必须识别出并导入文件以及相应的表空间,最终用户才能使用表空间数据。使用可移动表空间包括复制表空间文件和使它们中的数据在目标数据库中可用。 要移动表空间,使用 Oracle 数据库 10g 中的数据泵导出(Data Pump Export)工具。数据泵是 Oracle 的新一代数据转移工具,它替换了早期的 Oracle Export (EXP)和Import (IMP)工具。这些老的工具使用正则 SQL 来提取和插入数据,而数据泵则与它们不同,它使用能绕过 SQL 缓冲区的专用 API,从而使操作过程速度变得极快。此外,数据泵可以提取特定的对象,如特定的存储过程或特定表空间的表集合。 数据泵的导出和导入可以由作业控制,数据库管理员可以随时暂停、重启或终止这些作业。