主要介绍了Oracle数据库的数据迁移方法详细内容请大家参考下文 随着数据库管理系统和操作系统平台的更新换代的速度的加快数据库管理员经常需要在两个不同的数据库之间或在两种不同的系统平台之间进行数据迁移本文介绍了数据库数据迁移的一般步骤以及实现向Oraclei数据库进行数据迁移的几种方法并对它们的优缺点做了对比分析 在开发环境向运行环境转换低版本数据库向高版本数据库转换以及两个不同数据库之间进行转换时数据库中的数据(包括结构定义)需要被转移并使之正常运行这就是数据库中的数据迁移对于中小型数据库如Foxpro中的*dbf这种迁移非常简单一般只需通过简单的Copy就能完成但对于大型数据库系统如Oracle 数据库数据迁移就不那么简单了它需要利用一定的技术和经验有步骤按计划地完成
数据迁移的一般步骤 对数据库管理人员来说数据库数据迁移极具挑战性一旦措施不当珍贵的数据资源将面临丢失的危险要成功地实现数据库数据平滑迁移需要周密计划和充分准备并按照一定的步骤来完成
设计数据迁移方案 设计数据迁移方案主要包括以下几个方面工作研究与数据迁移相关的资料或在网站上查询相关内容评估和选择数据迁移的软硬件平台选择数据迁移方法选择数据备份和恢复策略设计数据迁移和测试方案等
进行数据模拟迁移 根据设计的数据迁移方案建立一个模拟的数据迁移环境它既能仿真实际环境又不影响实际数据然后在数据模拟迁移环境中测试数据迁移的效果数据模拟迁移前也应按备份策略备份模拟数据以便数据迁移后能按恢复策略进行恢复测试
测试数据模拟迁移 根据设计的数据迁移测试方案测试数据模拟迁移也就是检查数据模拟迁移后数据和应用软件是否正常主要包括数据一致性测试应用软件执行功能测试性能测试数据备份和恢复测试等
准备实施数据迁移 数据模拟迁移测试成功后在正式实施数据迁移前还需要做好以下几个方面工作进行完全数据备份确定数据迁移方案安装和配置软硬件等
正式实施数据迁移 按照确定的数据迁移方案正式实施数据迁移
测试数据迁移效果 按照数据迁移测试方案测试数据迁移效果并对数据迁移后的数据库参数和性能进行调整使之满足数据迁移后实际应用系统的需要
移植系统应用软件 将实际应用系统的应用软件移植到数据迁移后的数据库系统上并使之正常运行
正式运行应用系统 在正式实施数据迁移成功并且数据库参数和性能达到要求后就可以正式运行应用系统并投入实际使用
实现向Oraclei数据迁移 Oracle数据库数据迁移可以从一个版本迁移到另一个版本(即升级)也可以从一个主版本迁移到另一个主版本(即移植)例如从Oracle迁移到Oracle可以从一个系统平台迁移到另一个系统平台例如从Unix系统迁移到Windows NT系统也可以从非Oracle数据库迁移到Oracle数据库例如从MS SQL Server迁移到 Oracle数据库在实现Oracle数据库数据迁移前需要了解以下几个方面的问题对数据库系统的要求对 Oracle数据库DB_Block_Size的要求对Oracle使用字符集的要求对SQL*NET版本的要求对操作系统平台的要求等 Oracle数据库系统本身提供了实现Oracle数据库数据迁移的多种工具我们还可以利用PowerBuilder的数据管道功能实现Oracle数据库数据迁移
当前Oracle数据库的较旧版本是Oraclei以下介绍可以实现数据库数据迁移到Oraclei的几种方法
方法移植实用程序(Migration Utility)
MIG是Oracle提供的用于Oracle数据库之间数据迁移的命令行方式实用程序使用MIG迁移Oracle的数据到Oraclei的一般步骤为
设置 Oracle数据库环境变量包括运行注册表编辑器(regeditexe)和控制面板设置Oracle主目录字符集和可执行文件路径等并在DOS 命令提示符下设置Oracle_sid=Oracle_sid并正常关闭Oracle数据库
运行Oraclei的MIG应用程序生成一个转换文件用于数据库转换
从Windows NT控制面板终止Oracle数据库服务并使用实例管理器删除Oracle数据库服务
设置Oraclei数据库环境变量包括运行注册表编辑器(regeditexe)和控制面板设置Oraclei主目录字符集和可执行文件路径等由oradim 命令使用Oracle_sid和initora文件创建Oraclei服务重新命名数据库控制文件编辑initora文件设置compatible为删除initora文件中不再使用的参数在DOS命令提示符下设置Oracle_Sid=Oracle_sid
实现数据迁移以内部用户账号连接服务器管理器以非登录方式启动Oraclei数据库由alter database covert命令生成新的控制文件并把文件头转换为Oraclei数据库文件格式由alter database open resetlog命令打开数据库并且重新设置日志文件由spool migscriptslog命令创建输出目标文件该文件保存前面命令脚本文件的运行结果运行usql当使用数据库高级复制功能选项时运行Catrepsql当使用Oracle Parallel Server选项时运行catparrsql由spool out命令结束结果输出并关闭数据库和备份数据库
方法Oracle 数据移植助理(Oracle data Migration Assistant)
Oracle数据移植助手用于将Oracle数据库移植到 Oracle数据库升级Oracle数据库较早版本到Oracle数据库新版本Oracle数据移植助手不用于升级较低版本Oracle数据库到较高版本Oracle数据库使用Oracle数据移植助手迁移Oracle数据库数据到Oraclei的一般步骤是
关闭Oracle数据库终止所有Oracle数据库服务编辑initora文件设置compatible为删除initora文件中不再使用的参数
运行Oracle数据移植助手在Database Instance页选择移植的数据库实例输人internal用户账号密码并提供initora文件位置在Moving the Database页指定数据库移植的新位置如果用户还没有进行备份在Backup the Database 页允许用户进行数据库备份在Character Set页指定移植后的数据库使用的字符集
开始移植过程移植过程需要的时间取决于系统内存容量硬盘速度CPU速度等因素
移植完成后可以查看Migration Report页检查移植是否成功执行如果移植没有成功应当把数据库系统返回到备份的Oracle数据库
编辑initora文件添加在Oraclei数据库中会用到的参数删除在移植过程中用到的旧的控制文件
当使用数据库高级复制功能选项时运行catrepsql当使用Oracle Parallel Server选项时运行catparrsql方法导入/导出工具(Export/Import)
当需要从一个非PC的系统平台(例如Unix系统)迁移数据库时导人/导出方式是一种非常有用的策略当然相同系统平台的数据迁移导人/导出方式同样适用采用导入/导出方式迁移Oracle Database on Unix到 Oraclei Database on Windows NT数据库的一般步骤是
以正常方式关闭Unix系统的 Oracle数据库系统不要立即终止或者异常终止然后冷备份数据库打开数据库使用导出工具(Export Utility)进行数据库的完全导出
在Windows NT系统安装Oraclei数据库软件并创建启动数据库
使用FTP将文件传输到Windows NT计算机必须使用FTP的binary传输模式否则可能造成读导出转储文件错误
确认目标数据库在运行并在DOS命令提示符下设置oracle_sid=Oraclei_SID
使用导出转储文件执行到目标数据库完全的导人
查看导入日志文件确认数据库导入执行成功
方法SQl*Loader工具
SQL*Loader可以将ASCII文件中的数据装入Oracle数据库ASCII文件中的信息可以来自不同的数据源例如其他Oracle数据库非Oracle数据库以及电子表格等
采用SQl*Loader工具将数据迁移到Oracle数据库的一般步骤有
使用文本文件编辑器创建控制文件
在DOS命令行下使用sqlldr命令装载数据文件
验证数据是否正确装载方法SQL*PLUS COPY 命令
使用SQL*PLUS COPY命令迁移Oracle数据库到 Oraclei与导人/导出方式相似但是此时需要两个数据库都在线其一般步骤是
首先安装Oraclei数据库并创建一个数据库作为目标数据库
添加所需的表空间和用户到目标数据库中安装所需的SQL*Net或者Net软件并配置用于连接数据库的别名
在DOS命令提示符下设置oracle_sid=Oracle_sid
以Internal用户账号连接SQL*PLUS
创建一个从Oracle数据库到Oraclei数据库的数据库链接使用SQL*PLUS COPY命令从Oracle数据库复制表和表内容到Oraclei数据库
将视图同义词存储过程等添加到目标数据库
方法PowerBuilder数据管道工具(Pipeline)
PowerBuilder数据管道工具是PowerBuilder提供的一个用于转换数据的智能对象它可以在图形方式下实现不同类型数据库间的数据迁移而无需SQL 编程PowerBuilder数据管道的操作是在图形方式下实现的因此比较简单其一般步骤是
启动PowerBuilder
点击工具栏上的DBProfile按钮通过ODBC或专用接口配置源和目标数据库连接同时连接到源和目标数据库
单击工具栏上的Pipeline按钮建一个新的数据管道确定好源和目标数据库
选择要传输数据的表并根据需要选中想传输的列
选择数据迁移方式Create-AddTable(在目标库中建立一个新表并复制数据)Replace-Drop/AddTable(删除旧表并复制数据)Refresh -DeleteRows(删除表中的现有数据并复制数据)Append-InsertRows(在现有数据基础上增加新数据)Update-Update/InsertRows(新增数据的键值如果与现有数据某行的键值一样则覆盖现有数据否则插入新数据)
单击Execute按钮运行定义好的数据管道完成数据迁移