【IT168 技术】Oracle数据库迁移可以从一个版本迁移到另一个版本(即升级),也可以从一个主版本迁移到另一个主版本(即移植),例如从Oracle7迁移到Oracle8。可以从一个系统平台迁移到另一个系统平台,例如从Windows系统迁移到Linux系统。也可以从非Oracle数据库迁移到Oracle数据库,例如从MS SQL Server迁移到Oracle数据库。
在低版本数据库向高版本数据库转换以及两个不同数据库之间进行转换时,数据库中的数据(包括结构定义)需要被转移并使之正常运行,对于中小型数据库,如FoxPro中的*.dbf,这种迁移非常简单,一般只需通过简单的Copy就能完成。但对于大型数据库系统,如Oracle数据库,数据迁移就不那么简单了,它需要利用一定的技术和经验,有步骤地按计划完成。
Oracle数据库迁移步骤:
1.实施数据迁移前,需要做好以下几个方面工作:进行完全数据备份、确定数据迁移方案、安装和配置软硬件等。
2.按照确定的数据迁移方案,正式实施数据迁移。
3.按照数据迁移测试方案,测试数据迁移效果,并对数据迁移后的数据库参数和性能进行调整,使之满足数据迁移后实际应用系统的需要。
4.将实际应用系统的应用软件移植到数据迁移后的数据库系统上,并使之正常运行。
5.正式实施数据迁移成功并且数据库参数和性能达到要求后,就可以正式运行应用系统,并投入实际使用。
Oracle数据库迁移实例
我校图书馆采用清大新洋公司GLIS 8.0版的图书馆管理系统软件,数据库采用Oracle,操作系统为Windows 2000 Server,数据库服务器采取RAID冗余备份,运行模式是7×24小时制,数据库的数据文件量为2.45GB。服务器的升级需要从Windows 2000 Server 平台把数据库迁移到RedFlag.Linux DC 4.0平台。为了实现数据库的平稳迁移,我们使用了如下两种策略方式。
1.使用导入/导出工具(Export/ Import)
Oracle导入/导出工具(Export/Import)主要是用来对数据库进行逻辑备份,利用Export导出数据库的转储二进制文件作为数据库Import输入,从而达到移植的目的。
当需要从一个非PC的系统平台迁移数据库时,导入/导出方式是一种非常有用的策略。当然,相同系统平台的数据迁移,导入/导出方式同样适用。图书馆数据库系统采用导入/导出方式迁移Oracle8l7 for Windows 2000到Oracle8l7 for Linux数据库的操作步骤如下。
(1)以正常方式关闭Windows 2000系统的Oracle817数据库系统,不要立即终止或者异常终止,然后冷备份数据库。打开数据库,使用导出工具(Export Utility)进行数据库的完全导出。
D:\>exp system/manager full=y inctype=complete constraints=y
file=full_exp_filename.dmp
(2)在RedFlag-Linux DC 4.0系统上安装Oracle8i数据库软件,并创建启动数据库。使用FTP,将文件传输到RedFlag.Linux DC4.0计算机。必须使用FTP的binary传输模式,否则,可能造成读导出转储文件错误。
(3)在RedFlag-Linux DC 4.0中使用安装数据时创建的0racle用户登录,使用导出转储文件,执行到目标数据库完全的导入。
【Oracle@RedFlagDC Oracle】#imp system/manager full=y file=full_exp_filename.dmp
注意:如果导出用户拥有DBA权限,则导入用户也必须拥有DBA权限。查看导入日志文件,确认数据库导入执行成功。
2.使用SQL*Loader工具
SQL*Loader可以将ASCII文件中的数据装入Oracle数据库,采用SQL Loader工具将数据迁到Oracle数据库的一般步骤如下:
(1)在Windows 2000操作系统端,进入SQL*PLUS运行脚本程序,如loaddata.sql sqlplus>@ loaddata.sql
(2)通过loaddata.sql脚本程序建立一个不带换码符、标题、字段名的纯数据文件,便于sql* load使用,基本内容如下:
spool a.txt
(将查询结果存入文件a.txt)
set newpage 0
(发送换页,清屏)
set space 0
(设置输出列间空格数)
set linesize 999
(一行上显示的字符数)
set pagesize 0
(禁止各种格式化信息,如标题、页中断、题目等)
set echo off
(禁止列出命令)
set feedback of
(禁止显示查询结果的记录数信息)
set heading off
(禁止打印列标题)
select * from a:
spool out
(停止假脱机)
(3)安装Oracle8i数据库,并创建一个数据库作为目标数据库。添加所需的表空间和用户到目标数据库中。安装所需的Net8软件,并配置用于连接数据库的别名。
(4)使用文本文件编辑器创建控制文件,如dataload.ctl。在命令行下使用sqlldr命令装载数据文件。
Sqlldr username/password control=dataload.ctl logfile= dataload.1og
验证数据是否正确装载。
小结
利用Oracle的Oracle导入/导出工具(Export/Import),除了可进行数据库逻辑备份、数据库移植,还可以用来提高数据库的性能:对数据库进行一次导入/导出操作能重新组织数据,消除数据库的碎片,从而使数据库的性能有较大的提高。而SQL* Loader是一个Oracle的类属实用程序,几乎能被用来装载任何类型的数据,支持直接路径装载和并行装载能力,因此,在我院图书管数据库迁移实际工作中运用了这两种方法,是非常通用和实用的程序。