Oracle数据库的数据迁移方法
2007-09-09 15:43
507 查看
Oracle数据库的数据迁移方法
----在开发环境向运行环境转换、低版本数据库向高版本数据库转换以及两个不同数据 库之间进行转换时,数据库中的数据(包括结构定义)需要被转移并使之正常运行,这就是数据库中的数据迁移。对于中小型数据库,如Foxpro中的 *.dbf,这种迁移非常简单,一般只需通过简单的Copy就能完成。但对于大型数据库系统,如Oracle 数据库,数据迁移就不那么简单了,它需要利用一定的技术和经验,有步骤按计划地完成。
数据迁移的一般步骤
----对数据库管理人员来说,数据库数据迁移极具挑战性,一旦措施不当,珍贵的数据资源将面临丢失的危险,要成功地实现数据库数据平滑迁移,需要周密计划和充分准备,并按照一定的步骤来完成。----设计数据迁移方案
----设计数据迁移方案主要包括以下几个方面工作:研究与数据迁移相关的资料,或在网站上查询相关内容、评估和选择数据迁移的软硬件平台、选择数据迁移方法、选择数据备份和恢复策略、设计数据迁移和测试方案等。
----进行数据模拟迁移
----根据设计的数据迁移方案,建立一个模拟的数据迁移环境,它既能仿真实际环境又不影响实际数据,然后在数据模拟迁移环境中测试数据迁移的效果。数据模拟迁移前也应按备份策略备份模拟数据,以便数据迁移后能按恢复策略进行恢复测试。
----测试数据模拟迁移
----根据设计的数据迁移测试方案测试数据模拟迁移,也就是检查数据模拟迁移后数据和应用软件是否正常,主要包括:数据一致性测试、应用软件执行功能测试、性能测试、数据备份和恢复测试等。
----准备实施数据迁移
----数据模拟迁移测试成功后,在正式实施数据迁移前还需要做好以下几个方面工作:进行完全数据备份、确定数据迁移方案、安装和配置软硬件等。
----正式实施数据迁移
----按照确定的数据迁移方案,正式实施数据迁移。
----测试数据迁移效果
----按照数据迁移测试方案测试数据迁移效果,并对数据迁移后的数据库参数和性能进行调整,使之满足数据迁移后实际应用系统的需要。
----移植系统应用软件
----将实际应用系统的应用软件移植到数据迁移后的数据库系统上,并使之正常运行。
----正式运行应用系统
----在正式实施数据迁移成功并且数据库参数和性能达到要求后,就可以正式运行应用系统,并投入实际使用。
实现向Oracle8i数据迁移
----Oracle数据库数据迁移可以从一个版本迁移到另一个版本(即升级),也可以从一个主版本迁移到另一个主版本(即移植),例如从Oracle7迁移到Oracle8;可以从一个系统平台迁移到另一个系统平台,例如从Unix系统迁移到Windows NT系统;也可以从非Oracle数据库迁移到Oracle数据库,例如从MS SQL Server迁移到 Oracle数据库。在实现Oracle数据库数据迁移前,需要了解以下几个方面的问题:对数据库系统的要求、对 Oracle数据库DB_Block_Size的要求、对Oracle使用字符集的要求、对SQL*NET版本的要求、对操作系统平台的要求等。----Oracle数据库系统本身提供了实现Oracle数据库数据迁移的多种工 具,我们还可以利用PowerBuilder的数据管道功能实现Oracle数据库数据迁移。当前Oracle数据库的较新版本是Oracle8i,以下 介绍可以实现数据库数据迁移到Oracle8i的几种方法:
----方法1:移植实用程序(Migration Utility)
----MIG是Oracle提供的用于Oracle数据库之间数据迁移的命令行方式实用程序。使用MIG迁移Oracle7的数据到Oracle8i的一般步骤为:
----☆ 设置 Oracle7数据库环境变量,包括运行注册表编辑器(regedit.exe)和控制面板,设置Oracle7主目录、字符集和可执行文件路径等,并在DOS 命令提示符下设置Oracle_sid=Oracle7_sid,并正常关闭Oracle7数据库。
----☆ 运行Oracle8i的MIG应用程序,生成一个转换文件,用于数据库转换。
----☆ 从Windows NT控制面板终止Oracle7数据库服务,并使用实例管理器删除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。
----☆ 实现数据迁移,以内部用户账号连接服务器管理器;以非登录方式启动Oracle8i数据库;由alter database covert命令生成新的控制文件,并把文件头转换为Oracle8i数据库文件格式;由alter database open resetlog命令打开数据库并且重新设置日志文件;由spool migscripts.log命令创建输出目标文件,该文件保存前面命令脚本文件的运行结果;运行u0703030.sql,当使用数据库高级复制功能选项时,运行Catrep.sql,当使用Oracle Parallel Server选项时,运行catparr.sql;由spool out命令结束结果输出,并关闭数据库和备份数据库。
----☆ 查看migscripts.out spool文件,确认脚本文件执行成功,如果脚本文件没有成功执行,返回到脚本文件,检查可能出现的问题。
----方法2:Oracle 数据移植助理(Oracle data Migration Assistant)
----Oracle数据移植助手用于将Oracle7数据库移植到 Oracle8数据库。升级Oracle8数据库较早版本到Oracle8数据库新版本。Oracle数据移植助手不用于升级较低版本Oracle7数据 库到较高版本Oracle7数据库。使用Oracle数据移植助手迁移Oracle7数据库数据到Oracle8i的一般步骤是:
----☆ 关闭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页,指定移植后的数据库使用的字符集。
----☆ 开始移植过程。移植过程需要的时间取决于系统内存容量、硬盘速度、CPU速度等因素。
----☆ 移植完成后,可以查看Migration Report页,检查移植是否成功执行。如果移植没有成功,应当把数据库系统返回到备份的Oracle7数据库。
----☆ 编辑init.ora文件,添加在Oracle8i数据库中会用到的参数。删除在移植过程中用到的旧的控制文件。
----☆ 当使用数据库高级复制功能选项时,运行catrep.sql;当使用Oracle Parallel Server选项时,运行catparr.sql。
----方法3:导入/导出工具(Export/Import)
----当需要从一个非PC的系统平台(例如,Unix系统)迁移数据库时,导人/导出方式是一种非常有用的策略,当然相同系统平台的数据迁移导人/导出方式同样适用。采用导入/导出方式迁移Oracle7 Database on Unix到 Oracle8i Database on Windows NT数据库的一般步骤是:
----☆ 以正常方式关闭Unix系统的 Oracle7数据库系统,不要立即终止或者异常终止,然后冷备份数据库。打开数据库,使用导出工具(Export Utility)进行数据库的完全导出。
----☆ 在Windows NT系统安装Oracle8i数据库软件并创建启动数据库。
----☆ 使用FTP,将文件传输到Windows NT计算机。必须使用FTP的binary传输模式,否则,可能造成读导出转储文件错误。
----☆ 确认目标数据库在运行,并在DOS命令提示符下设置oracle_sid=Oracle8i_SID。
----☆ 使用导出转储文件,执行到目标数据库完全的导人。
----☆ 查看导入日志文件,确认数据库导入执行成功。
----方法4:SQl*Loader工具
----SQL*Loader可以将ASCII文件中的数据装入Oracle数据库。ASCII文件中的信息可以来自不同的数据源,例如其他Oracle数据库、非Oracle数据库以及电子表格等。
----采用SQl*Loader工具将数据迁移到Oracle数据库的一般步骤有:
----☆ 使用文本文件编辑器创建控制文件。
----☆ 在DOS命令行下使用sqlldr命令装载数据文件。
----☆ 验证数据是否正确装载。
----方法5:SQL*PLUS COPY 命令
----使用SQL*PLUS COPY命令,迁移Oracle7数据库到 Oracle8i与导人/导出方式相似,但是,此时需要两个数据库都在线,其一般步骤是:
----☆ 首先安装Oracle8i数据库,并创建一个数据库作为目标数据库。
----☆ 添加所需的表空间和用户到目标数据库中;安装所需的SQL*Net2或者Net8软件,并配置用于连接数据库的别名。
----☆ 在DOS命令提示符下设置oracle_sid=Oracle7_sid。
----☆ 以Internal用户账号连接SQL*PLUS。
----☆ 创建一个从Oracle7数据库到Oracle8i数据库的数据库链接;使用SQL*PLUS COPY命令从Oracle7数据库复制表和表内容到Oracle8i数据库。
----☆ 将视图、同义词、存储过程等添加到目标数据库。
----方法6:PowerBuilder数据管道工具(Pipeline)
----PowerBuilder数据管道工具是PowerBuilder提供的一个用于转换数据的智能对象,它可以在图形方式下实现不同类型数据库间的数据迁移而无需SQL 编程。PowerBuilder数据管道的操作是在图形方式下实现的,因此比较简单,其一般步骤是:
----☆ 启动PowerBuilder。
----☆ 点击工具栏上的“DBProfile"按钮,通过ODBC或专用接口配置源和目标数据库连接,同时连接到源和目标数据库。
----☆ 单击工具栏上的“Pipeline"按钮,建一个新的数据管道,确定好源和目标数据库。
----☆ 选择要传输数据的表,并根据需要选中想传输的列。
----☆ 选择数据迁移方式,Create-AddTable(在目标库中建立一个新表并复制数据)、Replace-Drop/AddTable(删除旧表并复制数据)、Refresh -DeleteRows(删除表中的现有数据并复制数据)、Append-InsertRows(在现有数据基础上增加新数据)、Update-Update/InsertRows(新增数据的键值如果与现有数据某行的键值一样则覆盖现有数据,否则插入新数据)。
----☆ 单击“Execute"按钮运行定义好的数据管道完成数据迁移。
几种数据迁移方法的比较
----以上介绍了几种Oracle数据迁移的方法,它们各有特点,下表给出了它们的适用场合以及优缺点的对比分析,仅供参考。![](http://www2.ccw.com.cn/2000/0042/pics/0594100.jpg)
文章引用自:
评论(0) 引用 阅读(119) 圈子 编辑 打印 有奖
相关文章推荐
- Oracle数据库升级或数据迁移方法研究
- 使用Navicat Premium将Oracle数据库中的表和数据迁移到MySQL数据库中,遇到的Date类型出现精度问题及解决方法
- 详细讲解Oracle数据库的数据迁移方法
- Oracle数据库删除两表中相同数据的方法
- oracle数据迁移到db2数据库的实现方法(分享)
- Python中MySQL数据迁移到MongoDB脚本的方法
- [Oracle] 探讨ORACLE数据库的数据导入方法
- FreeBSD 数据备份和迁移方法
- Oracle数据库的数据迁移方法
- 查询Oracle数据库表空间和数据文件方法
- 两种方法将oracle数据库中的一张表的数据导入到另外一个oracle数据库中
- Oracle数据库日常管理之数据备份,恢复及迁移 (第四讲 )
- 在Oracle数据库中移动数据文件的具体方法
- Oracle数据库实现获取前几条数据的方法
- Oracle数据库升级或数据迁移方法研究
- Hbase集群间数据迁移方法总结
- c#将Excel数据传入Oracle数据库的方法和Oracle的传参规范
- 如何将本地sqlserver的2000万数据迁移到虚拟机中的Oracle数据库里面
- csv文件中的数据导入到oracle数据库中的方法
- discuz X2.5论坛数据搬家完美方法无缝迁移