- 浏览: 21219 次
- 性别:
- 来自: 青岛
最新评论
-
tangduDream:
有这么麻烦 直接备份不就好了么
VirtualBox 4.2.8 r83876 vdi复制使用 -
dengli19881102:
根本就不行
<td>之间文字长度限制 -
gladto:
optgroup第一次见
好东西~
IE中Option的disabled无效 Select只读模式
译注: 原文《Compatibility Matrix for Export & Import Between Different Oracle Versions》,来自于Oracle metalink。
部署新的环境时,Oracle数据库导入导出转换工作往往会耗费不少的时间,如果碰到难以解决的问题就更加麻烦了。为了便于更深入地
了解Oracle数据库exp/imp导出导入工具的使用,提高数据库转换的效率,回避简单的常识问题,特翻译了该篇文章,以飨读者。
尽管已仔细修订,或有翻译不妥、疏漏之处,欢迎指正!
本文及英文版下载
By 在路上...http://www.cnblogs.com/midea0978
目的
-------
本文描述了Oracle版本不同之间EXPORT 和 IMPORT工具的兼容性问题.
应用范围
-------------------
本文适用于Oracle7, Oracle8, Oracle8i, Oracle9i, and Oracle10g数据库环境,
应用于使用数据库导出/导入工具将数据从 x 版本导出,然后导入到 y 版本的情形。
本文指出了应该使用什么版本的工具来执行数据的导出/导入,以及在导出数据之前如何准备Oracle数据字典。
对于转换表空间的导出/导入,请参考Note 291024.1 "使用导出/导入工具转换表空间的兼容性和新特性"
摘要
-------
1. 使用低版本的导出工具导出数据的情形.
2. 使用目标数据库的导入工具导入数据.
3. 不再支持使用Oracle7导出工具导出Oracle9i数据库.
不同Oracle版本下Export & Import的兼容性矩阵
--------------------------------------------------------------------------
介绍.
-------------
使用Oracle导出/导入工具,你可以在数据库之间传输数据,即使这些数据库位于不同的软/硬件环境下.
Oracle导出工具从Oracle数据库中提取对象定义、表数据并以二进制的Oracle导出文件格式
保存到文件或磁带上。这些文件可以通过FTP或者物理转换(磁带的情形)传送到不同的地方。
当通过网络传输导出文件的时候,必须使用二进制模式,当使用ASCII模式传输会导致导入
数据时出现错误,类似 IMP-9 或 IMP-10,后面跟着是 IMP-0.
Oracle导入工具从导出文件中读取对象定义和表数据,然后插入到Oracle数据库中.
从Oracle10g Release 1 (10.1.0.x)开始,我们提供新的Export DataPump (expdp) 和
Import DataPump (impdp) 工具.使用Export DataPump导出的文件只能被Import DataPump读取.
并且使用Export DataPump导出的文件也只能被对应版本的Import DataPump客户端读取。
数据字典视图.
----------------------
执行导出/导入工具之前,必须准备好这些工具必须的一些视图。可以通过运行下面的脚本来完成:
UNIX : SQL> @$ORACLE_HOME/rdbms/admin/catexp.sql
Windows: SQL> @%ORACLE_HOME%\rdbms\admin\catexp.sql
脚本 CATEXP.SQL 必须使用 SYS 执行. 该脚本被脚本 CATALOG.SQL 动态调用执行. 对于同一个
数据库,脚本 CATEXP.SQL 和CATALOG.SQL 仅能运行一次。通常,在执行导出/导入前不必再次运行脚本
(错误信息 EXP-24 或 IMP-23 表明这些视图不正确).
脚本 CATEXP.SQL 执行以下任务,为导出/导入做准备:
- 在数据字典中创建必要的导出/导入视图;
- 创建角色 EXP_FULL_DATABASE 和 IMP_FULL_DATABASE ;
- 对角色 EXP_FULL_DATABASE 和 IMP_FULL_DATABASE 授予必要的权限;
- 授予 DBA 角色 EXP_FULL_DATABASE 和 IMP_FULL_DATABASE 的权限;
- 将导出/导入视图的版本更新到表 sys.props$ 中.
当使用Oracle7导出工具从Oracle8/8i数据库(见下面详细)导出Oracle7格式的导出文件时,必须在Oracle8/8i数据库用 SYS 用户
运行 CATEXP7.SQL 脚本:
UNIX : SQL> @$ORACLE_HOME/rdbms/admin/catexp7.sql
Windows: SQL> @%ORACLE_HOME%\rdbms\admin\catexp7.sql
该脚本创建视图使得数据库看起来像是 Oracle7 版本的数据库,也意味着视图中看不到 Oracle8/8i 特定的对象,这样导出文件就
可以在没有错误的情况下导入到 Oracle7 版本的数据库.
注意脚本CATEXP.SQL 和 CATEXP7.SQL 仅仅只需要运行一次:CATEXP.SQL 创建视图供 Oracle8/8i/9i/10g 导出工具使用,CATEXP7.SQL
创建视图供 Oracle7 导出工具使用。
所以如果这些脚本已经用 SYS 用户执行过,就没必要再运行了。
上面提到的过程同样适用于用Oracle6 的导出工具导出 Oracle7 的数据库,此时应该在 Oracle7 数据库中用 SYS 用户执行 CATEXP6.SQL
脚本。
注意使用Oracle7工具从Oracle9i数据库导出数据已经不再被支持:在一份向下支持的路线图中,我们只向后支持一个功能性的版本。这
也意味着在Oracle10g数据库中用 Oracle8 导出工具导出数据不被支持(当前只支持在Oracle10g数据库中使用 Oracle8i 8.1.7 或以上
版本的导出工具)。
完全数据库导出/导入方式移植到Oracle9i / Oracle10g
------------------------------------------------------------------------------
将数据库移植到Oracle9i 或 Oracle10g的情形,采用数据库完全导出/导入的方式被限制了,这种情况仅适用于用完全模式(FULL=Y)导入
采用完全模式导出的文件。
不过还可以采用以下方式:
- 使用用户模式导入数据 (FROMUSER=... TOUSER=...)
- 使用表模式导入数据 (FROMUSER=... TABLES=...)
- 用表空间模式导出/导入数据 (TRANSPORT_TABLESPACE=Y)
注意导入客户端应能读取导出版本5.1.22及更高版本(最高至相同版本)的导出文件。
该移植限制与移植手册中描述的可用的升级路径相关,主要原因是仅支持从主要版本的最终发行版本(例如Oracle8i 8.1.7)直接升级到
一个新的最近的主要版本(例如Oracle9i 9.2.0 ),例如:
- 对 Oracle7, 版本 7.3.4.是最近的主要版本,
- 对 Oracle8, 版本 8.0.6. 是最近的主要版本,
- 对 Oracle8i, 版本 8.1.7. 是最近的主要版本.
在早期的主要版本(象 8.1.5 和 8.1.6)中标识出来的任何已知的问题(包括特定数据字典相关问题)几乎总是在最近的版本(8.1.7) 或
该版本最近的补丁集中被修正。
更多内容请参见下面章节 '基本兼容性' 和 '限制'
1. 移植到 Oracle9i release 2 - 9.2.0.x :
-------------------------------------------
采用数据库完全导出/导入的方式直接移植只支持以下源数据库版本:
- Oracle7 : 7.3.4
- Oracle8 : 8.0.6
- Oracle8i: 8.1.7
- Oracle9i: 9.0.1
2. 移植到 Oracle10g release 1 - 10.1.0.x :
---------------------------------------------
采用数据库完全导出/导入的方式直接移植只支持以下源数据库版本:
- Oracle8 : 8.0.6
- Oracle8i: 8.1.7
- Oracle9i: 9.0.1 or 9.2.0
3. 移植到 Oracle10g release 2 - 10.2.0.x :
---------------------------------------------
注意首先必须打上指定的最小版本补丁集(或者更高版本的补丁集) !
采用数据库完全导出/导入的方式直接移植只支持以下源数据库版本:
- Oracle8i : 8.1.7.4
- Oracle9i : 9.0.1.4 (或更高) or 9.2.0.4 (或更高)
- Oracle10g: 10.1.0.2 (或更高)
示例:
1. 从 8.1.7.4 到 9.2.0.7: 使用 8.1.7.4 导出工具完全导出数据, 然后用9.2.0.7的导入工具完全导入数据是被支持的移植方法.
2. 从 8.0.5.0 到 10.1.0.2: 使用 8.0.5.0 导出工具完全导出数据, 然后用10.1.0.2的导入工具完全导入数据是 *不* 被支持的移植方法
可选办法:
a. 首先升级 8.0.5.0 数据库到 8.0.6.0,应用最近的补丁 8.0.6.3,然后就可以用8.0.6.3导出工具完全导出,然后用10.1.0.2的
导入工具完全导入数据库.
b. 或者用8.0.5.0导出工具完全导出数据库,然后在Oracle10g数据库中预先建立用户,采用10.1.0.2导入工具用用户模式的导入方式导
入数据。
3. 从 9.2.0.1 到 10.2.0.1: 首先应用9.2.0.4补丁集(或更高版本补丁集,例如9.2.0.8),使用9.2.0.4导出工具(显示为9.2.0.8),然后
用10.2.0.1的导入工具完全导入数据是被支持的移植方法.
基本兼容性.
--------------------
定义 源数据库 = 导出数据的数据库.
定义 目标数据库 = 导入数据的数据库.
1) 总是选取导出工具的版本小于或等于源/目标数据库的最低版本。
意思是:
a) 当创建一个导出文件导入到一个更高版本数据库的(例如: 从 Oracle8i 到 Oracle9i), 使用与源数据库相同版本的导出工具
(这个例子中 = 最低版本 = Oracle8i ).
如果使用高版本的导出工具导出会失败。
例如,如果用9.0.1导出工具导出8.1.7的数据库,会得到下面错误:
EXP-56 Oracle error 942 encountered
ORA-942 table or view does not exist
EXP-0 Export terminated unsuccessfully
解决方法: 使用最低版本的导出工具(这个例子中是 8.1.7).
b) 当创建一个导出文件导入到一个更低版本数据库的(例如: 从 Oracle9i 到 Oracle8i),使用与目标数据库相同版本的导出工具
(这个例子中 = 最低版本 = Oracle8i ).
(1) 当运行 Oracle6 导出工具从 Oracle7 数据库创建一个 Oracle6 的导出文件时,首先必须在 Oracle7 数据库中运行 CATEXP6.SQL
脚本,这样导出操作时,使得数据库看起来像是 Oracle6 版本的数据库
(2) 当运行 Oracle7 导出工具从 Oracle8/8i 数据库创建一个 Oracle7 的导出文件时,首先必须在 Oracle8/8i 数据库中运行 CATEXP7.SQL
脚本,这样导出操作时,使得数据库看起来像是 Oracle7 版本的数据库
(3) 当运行 Oracle8/8i 导出工具从 Oracle9i 数据库创建一个 Oracle8/8i 的导出文件时,就不必运行任何特定的操作了.例如,你不必
在 9i 的数据库中运行 8i 版本的 脚本文件 catexp.sql 。你只需要在 9i 数据库上运行 8i 版本的导出工具,注意一些 Oracle9i
特定的特性不支持被导出 (例如 使用DIRECT=YES不会有任何LOBs和对象被导出).参见"Oracle9i Database Utilities"手册查看详细的限制列表。
2) 在应用一些补丁集同时数据字典中的导出视图也会改变,这会导致不能在未打补丁的数据库上运行打过补丁的导出工具,因此相同的基本准则也适用
于补丁集的发布版本:用涉及到的最低数据库版本的导出工具来导出数据。
例如:用9.2.0.5客户端来导出9.2.0.1的数据库会导致以下错误信息
EXP-00008: ORACLE error 942 encountered
ORA-00942: table or view does not exist
EXP-00024: Export views not installed, please notify your DBA
EXP-00000: Export terminated unsuccessfully
为了成功的导出位于9.2.0.1 $ORACLE_HOME(select * from v$version;)的9.2.0.1的数据库(select status, version, comp_id from dba_registry;)
使用9.2.0.1的导出工具而不是9.2.0.2或者更高的版本
否则使用9.2.0.6的导出客户端导出9.2.0.5的数据库情况下,当使用子分区模板导出分区表时会出现下面错误:
EXP-00056: ORACLE error 6550 encountered
ORA-06550: line 1, column 48:
PLS-00302: component 'CHECK_MATCH_TEMPLATE' must be declared
ORA-06550: line 1, column 14:
PL/SQL: Statement ignored
解决方法:使用9.2.0.5的导出客户端工具,如果你想将数据重新导入到9.2.0.5或更高的数据库环境。
3) 总是使用与目标数据库相同版本的导入工具.
限制.
------------
对于导出/导入工具有以下的限制(详见矩阵图):
1. Oracle的导出文件仅能被Oracle的导入工具读取,因为导出文件是以Oracle特定的二进制文件存储的.
2. 任何导出文件可以导入到所有主要版本、补丁及维护发行版本Oracle中.
3. 导出文件不能被先前版本的导入工具读取,所以10gR2 (10.2.0.x)的导出文件不能被10gR1 (10.1.0.x)的工具导入(可能错误:ORA-2248).9版本的导出
文件不能被8i的工具导入(可能错误:IMP-10或IMP-21).
版本8的导出文件不能被版本7的工具导入(可能错误:IMP-69和IMP-21).所有这些情况下,导入会以错误IMP-0 "导入操作不成功地" 终止。
4. 导入客户端应能读取导出版本5.1.22及更高版本(最高至相同版本)导出文件。
5. 导入工具仅能读取一个更高维护版本的导出工具创建的导出文件,所以8.1版本的导出文件不能用8.0版本的工具导入,8版本的导出文件不能用7版本的工具导入
6. Oracle6(或更早期)的导出工具不能在Oracle8或Oracle8i或更高版本的数据库上使用。
7. 当在一个更高版本的数据库上运行低版本的导出工具时,任何在低版本的数据库中不存在的对象将不会被导出,例如:版本7的导出工具不能导出分区表,如果
你需要移动一个版本8的分区表到版本7的数据库中,首先应将它转换为非分区表。
矩阵 1: 导入到Oracle8(或更低版本)数据库时应该使用什么导出工具(总是使用目标数据库的导入工具):
+-----------+--------------------------------------------------------------+
| EXPORT | IMPORT into: |
| from +--------+--------+--------+--------+--------+--------+--------+
| \/ | 5.x | 6.x | 7.0.x | 7.1.x | 7.2.x | 7.3.x | 8.0.x |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 5.x 1) 2)| EXP5x | EXP5x | EXP5x | EXP5x | EXP5x | EXP5x | EXP5x |
| 6.x 2)| N/S | EXP6x | EXP6x | EXP6x | EXP6x | EXP6x | EXP6x |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 7.0.x 3)| N/S | EXP6x | EXP70x | EXP70x | EXP70x | EXP70x | EXP70x |
| 7.1.x 3)| N/S | EXP6x | EXP70x | EXP71x | EXP71x | EXP71x | EXP71x |
| 7.2.x 3)| N/S | EXP6x | EXP70x | EXP71x | EXP72x | EXP72x | EXP72x |
| 7.3.x 3)| N/S | EXP6x | EXP70x | EXP71x | EXP72x | EXP73x | EXP73x |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 8.0.x 4)| Not Supported | EXP70x | EXP71x | EXP72x | EXP73x | EXP80x |
| 8.1.x 4)| Not Supported | EXP70x | EXP71x | EXP72x | EXP73x | EXP80x |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 9.0.1.x | Not Supported | 5) |
| 9.2.0.x | Not Supported | 5) |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 10.1.0.x | Not Supported |
| 10.2.0.x | Not Supported |
+-----------+--------+--------+--------+--------+--------+--------+--------+
备注:
1) 导入工具能读取5.1.22或更高版本的导出工具创建的导出文件(最高至相同版本).
2) 一个Oracle5 或 Oracle6 的导出及一个Oracle7 的导入:
参见oracle工具手册 Chapter 2 "Import" for special considerations to keep in mind.
3) 从Oracle7导出到Oracle6 数据库: 首先必须在Oracle7的数据库上用用SYS 用户运行CATEXP6.SQL(该脚本仅能运行一次以创建版本6的视图)
4) 从Oracle8, Oracle8i 导入到Oracle7 数据库: 首先必须在Oracle8/8i的数据库上用用SYS 用户运行CATEXP7.SQL(该脚本仅能运行一次以创建版本7的视图)
5) 唯一的情形:最终版本Oracle8(8.0.6)支持使用Oracle8的导出工具从Oracle9i数据库导出到8.0.6的数据库环境.
矩阵 2: 导入到Oracle8(或更高版本)数据库时应该使用什么导出工具(总是使用目标数据库的导入工具)::
+-----------+--------------------------------------------------------------+
| EXPORT | IMPORT into: |
| from +--------+--------+--------+--------+--------+--------+--------+
| \/ | 8.1.5 | 8.1.6 | 8.1.7 | 9.0.1 | 9.2.0 | 10.1.0 | 10.2.0 |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 5.x 1) 2)| EXP5x | EXP5x | EXP5x | EXP5x | EXP5x | EXP5x | EXP5x |
| 6.x 2)| EXP6x | EXP6x | EXP6x | EXP6x | EXP6x | EXP6x | EXP6x |
| 7.x 3)| EXP7x | EXP7x | EXP7x | EXP7x | EXP7x | EXP7x | EXP7x |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 8.0.3 | EXP803 | EXP803 | EXP803 | EXP803 | EXP803 | EXP803 | EXP803 |
| 8.0.4 | EXP804 | EXP804 | EXP804 | EXP804 | EXP804 | EXP804 | EXP804 |
| 8.0.5 | EXP805 | EXP805 | EXP805 | EXP805 | EXP805 | EXP805 | EXP805 |
| 8.0.6 | EXP806 | EXP806 | EXP806 | EXP806 | EXP806 | EXP806 | EXP806 |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 8.1.5 | EXP815 | EXP815 | EXP815 | EXP815 | EXP815 | EXP815 | EXP815 |
| 8.1.6 | EXP815 | EXP816 | EXP816 | EXP816 | EXP816 | EXP816 | EXP816 |
| 8.1.7 | EXP815 | EXP816 | EXP817 | EXP817 | EXP817 | EXP817 | EXP817 |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 9.0.1 | N/S | EXP816 | EXP817 | EXP901 | EXP901 | EXP901 | EXP901 |
| 9.2.0 | N/S | N/S | EXP817 | EXP901 | EXP920 | EXP920 | EXP920 |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 10.1.0 4)| Not Supported | EXP817 | EXP901 | EXP920 | 4) | 4) |
| 10.2.0 4)| Not Supported | EXP817 | EXP901 | EXP920 | 4) | 4) |
+-----------+--------+--------+--------+--------+--------+--------+--------+
备注:
1) 导入工具能读取5.1.22或更高版本的导出工具创建的导出文件(最高至相同版本).
2) 一个Oracle5 或 Oracle6 的导出及一个Oracle8,Oracle8i或Oracle9i 的导入:
参见oracle工具手册 Chapter 2 "Import" for special considerations to keep in mind.
3) 一个Oracle7 的导出及一个Oracle8,Oracle8i或Oracle9i 的导入:当TO_DATE函数没有被用在约束上时,DATE日期字段的约束检查将失效(在早期的的oracle版本
中没有该要求)
4) 导入到Oracle10g数据库是,为了获得更高的性能:使用新的oracle数据导出Export Data Pump (expdp)/导入Import DataPump (impdp)工具.
示例.
---------
1. 从 7.3.3 到 8.1.6 => 使用 7.3.3 导出工具从7.3.3数据库导出,用 8.1.6的导入工具导入到 8.1.6的数据库。
2. 从 8.1.7 到 8.1.7 => 使用 8.1.7 导出工具从8.1.7数据库导出,用 8.1.7的导入工具导入到 8.1.7的数据库。
3. 从 9.0.1 到 8.1.7 => 使用 8.1.7 导出工具从9.0.1数据库导出,用 8.1.7的导入工具导入到 8.1.7的数据库。
4. 从 8.1.7 到 9.2.0 => 使用 8.1.7 导出工具从8.1.7数据库导出,用 9.2.0的导入工具导入到 9.2.0的数据库。
5. 从 9.0.1 到 9.2.0 => 使用 9.0.1 导出工具从9.0.1数据库导出,用 9.2.0的导入工具导入到 9.2.0的数据库
6. 从 8.1.7 到 7.3.4 => 如果从未运行,先在 8.1.7数据库上运行CATEXP7.SQL以创建Oracle7数据字典视图,然后使用 7.3.4 导出工具
从8.1.7数据库导出,用 7.3.4的导入工具导入到 7.3.4的数据库
7. 从 10.1.0 到 8.1.7 => 使用 8.1.7 导出工具从10.1.0 数据库导出,用 8.1.7的导入工具导入到 8.1.7的数据库
8. 从 10.1.0 到 10.0.1 => 使用EXPORT DATA PUMP (expdp) 导出数据,然后用 IMPORT DATA PUMP (impdp) 导入数据.
9. 从 9.2.0 到 7.3.4 => 不支持.
10. 从 8.0.5 到 9.0.1 => 不支持使用 FULL=Y 导出& 用 FULL=Y导入
11. 从 8.1.6 到 10.1.0 => 不支持使用 FULL=Y 导出& 用 FULL=Y导入
可能的错误信息.
------------------------
EXP-3 : no storage definition found for segment(%lu, %lu
Cause : Could not find the storage definitions for cluster/index/table.
Action : Record the error messages and report this as Export internal error.
Remarks: See also Note 274076.1 "EXP-00003 When Exporting From 9.2.0.5.0 or
any Higher Release with a Pre-9.2.0.5.0 Export Client"
EXP-24 : Export views not installed, please notify your DBA
Cause : The necessary export views were not installed.
Action : Ask the database administrator to install the required export views.
EXP-37 : Export views not compatible with database version
Cause : The EXPORT utility is at a higher version than the database version
and is thereby incompatible.
Action : Use the same version of EXPORT utility as the database.
IMP-0 : Import terminated unsuccessfully
Cause : Error encountered.
Action : Check the preceding error message and take appropriate actions.
IMP-9 : Abnormal end of export file
Cause : This is usually caused by an export file generated by an aborted
export session.
Action : Check if file was transferred in Binary-mode. If the export file
was generated by an aborted export session, retry the export
followed by the import, else report this as an Import bug.
IMP-10 : Not a valid export file, header failed verification
Cause : Either it is not a file generated by the Export utility or that
the file is corrupted.
Action : Check if file was transferred in Binary-mode. If the file was
indeed generated by the Export utility, and no compatibility issue
is related, report this as an Import bug.
IMP-21 : operating system error - error code (dec %lu, hex 0x%X)
Cause : Operating system error. Can occur together with IMP-10 or IMP-69.
Action : Check the OS manual for the error code and take appropriate action.
Check for compatibility issues when next errors are IMP-10 or IMP-69.
IMP-23 : Import views not installed, please notify your DBA
Cause : Import views not installed.
Action : Notify DBA to install import views.
IMP-69 : Could not convert to environment national character set's handle
Cause : Internal error.
Action : Contact Worldwide support.
注意事项.
------
1. 使用导出工具,必须具有CREATE SESSION的数据库权限。导出其他所有者的表,必须有EXP_FULL_DATABASE角色权限,该角色已经授予所有DBA用户。
2. 在一个更新的数据库版本上使用旧版的导出工具,应该使用SQL*Net 或 Net8访问数据库:
EXP <用户名>/<密码>@<实例别名> ...
3. 当在Oracle8i或更高版本数据库上使用Oracle7或更低版本的导出工具时,你必须使用缺省的惯用路径导出(即:不要指定DIRECT=YES参数),惯用路径导出
使用SELECT语句提取表数据,直接路径的导出将直接读取数据,略过SQL命令处理层(解析缓冲)。同样注意使用Oracle 8.0导出工具指定(DIRECT=Y)从Oracle 8i
或更高版本数据库导出数据库时不能导出包含对象和LOBs的数据行
4. 从Oracle10g Release 1 (10.1.0.x)开始我们推出一种新的数据导出Export DataPump (expdp) 和导入 Import DataPump (impdp)工具。将来的版本中最初的
导出工具(exp)会逐步停止使用,然后被export DataPump utility (expdp)代替。最初的导入工具(imp)仍然会继续提供以便于导入最初导出客户端创建的导出
文件(例如:从Oracle9i导出),停止使用最初版本的导出客户端的准确版本还没有确定。
5. 为了检查导出/导入视图的修订版本,里可以用一下语句查询表 sys.props$ :
SQL> SELECT * FROM sys.props$ WHERE name LIKE 'EXPORT%';
NAME VALUE$ COMMENT$
------------------------- ----------- ------------------------
EXPORT_VIEWS_VERSION 8 Export views revision #
EXPORT_VIEWS_VERSION 的值对应如下含义:
+-------------------------------+
| EXPORT_VIEWS_VERSION |
+-------+-----------------------+
| Value | Introduced in Release |
+-------+-----------------------+
| *)| 7.0.* | *) 不兼容 - 假设0
| 1 | 7.1.3 |
| 2 | 7.2.1 |
| 3 | 7.2.3 |
| 4 | 8.0.1 |
| 5 | 8.0.2 |
| 6 | 8.0.3 |
| 7 | 8.0.4 |
| 8 | 8.1.6 |
+-------+-----------------------+
6. 欲了解导出/导入时环境变量NLS_LANG的详细冲突信息,见下面FAQ:
Note 227332.1 "NLS considerations in Import/Export - Frequently Asked
Questions"
相关文档
-----------------
Note 291024.1 Compatibility and New Features when Transporting Tablespaces
with Export and Import
Note 277650.1 How to Use Export and Import when Transferring Data Across
Platforms or Across 32-bit and 64-bit Servers
Note 61949.1 Overview of Export and Import in Oracle7
Note 76542.1 NT: Exporting from Oracle8, Importing Into Oracle7
Note 1012189.6 Errors trying to Import Transferred Export File
Note 155477.1 Parameter DIRECT: Conventional Path Export Versus Direct Path
Note 227332.1 NLS considerations in Import/Export - FAQ
A32541-01 "Oracle7 Server Utilities Release 7.3"
Chapter 1 "Export" and Chapter 2 "Import"
A58244-01 "Oracle8 Utilities Release 8.0"
Chapter 1 "Export" and Chapter 2 "Import"
A76955-01 "Oracle8i Utilities Release 2 (8.1.6)"
Chapter 1 "Export" and Chapter 2 "Import"
A90192-01 "Oracle9i Database Utilities Release 1 (9.0.1)"
Chapter 1 "Export" and Chapter 2 "Import"
A96652-01 "Oracle9i Database Utilities Release 2 (9.2)"
Chapter 1 "Export" and Chapter 2 "Import"
B10825-01 "Oracle Database Utilities 10g Release 1 (10.1)"
Chapter 2 "Data Pump Export", Chapter 3 "Data Pump Import",
and Chapter 20 "Original Export and Import"
B14215-01 "Oracle Database Utilities 10g Release 2 (10.2)"
Chapter 2 "Data Pump Export", Chapter 3 "Data Pump Import",
and Chapter 20 "Original Export and Import"
A86632-01 "Oracle8i Migration Release 3 (8.1.7)"
Chapter 9 "Compatibility".
A90191-01 "Oracle9i Database Migration Release 1 (9.0.1)"
Chapter 7 "Upgrading from an Older Release of Oracle to
the New Oracle9i Release"
A96530-01 "Oracle9i Database Migration Release 2 (9.2)"
Chapter 2 "Preparing to Upgrade"
B10763-01 "Oracle Database Upgrade Guide 10g Release 1 (10.1)"
Chapter 2 "Preparing to Upgrade"
B14238-01 "Oracle Database Upgrade Guide 10g Release 2 (10.2)"
Chapter 2 "Preparing to Upgrade"
部署新的环境时,Oracle数据库导入导出转换工作往往会耗费不少的时间,如果碰到难以解决的问题就更加麻烦了。为了便于更深入地
了解Oracle数据库exp/imp导出导入工具的使用,提高数据库转换的效率,回避简单的常识问题,特翻译了该篇文章,以飨读者。
尽管已仔细修订,或有翻译不妥、疏漏之处,欢迎指正!
本文及英文版下载
By 在路上...http://www.cnblogs.com/midea0978
目的
-------
本文描述了Oracle版本不同之间EXPORT 和 IMPORT工具的兼容性问题.
应用范围
-------------------
本文适用于Oracle7, Oracle8, Oracle8i, Oracle9i, and Oracle10g数据库环境,
应用于使用数据库导出/导入工具将数据从 x 版本导出,然后导入到 y 版本的情形。
本文指出了应该使用什么版本的工具来执行数据的导出/导入,以及在导出数据之前如何准备Oracle数据字典。
对于转换表空间的导出/导入,请参考Note 291024.1 "使用导出/导入工具转换表空间的兼容性和新特性"
摘要
-------
1. 使用低版本的导出工具导出数据的情形.
2. 使用目标数据库的导入工具导入数据.
3. 不再支持使用Oracle7导出工具导出Oracle9i数据库.
不同Oracle版本下Export & Import的兼容性矩阵
--------------------------------------------------------------------------
介绍.
-------------
使用Oracle导出/导入工具,你可以在数据库之间传输数据,即使这些数据库位于不同的软/硬件环境下.
Oracle导出工具从Oracle数据库中提取对象定义、表数据并以二进制的Oracle导出文件格式
保存到文件或磁带上。这些文件可以通过FTP或者物理转换(磁带的情形)传送到不同的地方。
当通过网络传输导出文件的时候,必须使用二进制模式,当使用ASCII模式传输会导致导入
数据时出现错误,类似 IMP-9 或 IMP-10,后面跟着是 IMP-0.
Oracle导入工具从导出文件中读取对象定义和表数据,然后插入到Oracle数据库中.
从Oracle10g Release 1 (10.1.0.x)开始,我们提供新的Export DataPump (expdp) 和
Import DataPump (impdp) 工具.使用Export DataPump导出的文件只能被Import DataPump读取.
并且使用Export DataPump导出的文件也只能被对应版本的Import DataPump客户端读取。
数据字典视图.
----------------------
执行导出/导入工具之前,必须准备好这些工具必须的一些视图。可以通过运行下面的脚本来完成:
UNIX : SQL> @$ORACLE_HOME/rdbms/admin/catexp.sql
Windows: SQL> @%ORACLE_HOME%\rdbms\admin\catexp.sql
脚本 CATEXP.SQL 必须使用 SYS 执行. 该脚本被脚本 CATALOG.SQL 动态调用执行. 对于同一个
数据库,脚本 CATEXP.SQL 和CATALOG.SQL 仅能运行一次。通常,在执行导出/导入前不必再次运行脚本
(错误信息 EXP-24 或 IMP-23 表明这些视图不正确).
脚本 CATEXP.SQL 执行以下任务,为导出/导入做准备:
- 在数据字典中创建必要的导出/导入视图;
- 创建角色 EXP_FULL_DATABASE 和 IMP_FULL_DATABASE ;
- 对角色 EXP_FULL_DATABASE 和 IMP_FULL_DATABASE 授予必要的权限;
- 授予 DBA 角色 EXP_FULL_DATABASE 和 IMP_FULL_DATABASE 的权限;
- 将导出/导入视图的版本更新到表 sys.props$ 中.
当使用Oracle7导出工具从Oracle8/8i数据库(见下面详细)导出Oracle7格式的导出文件时,必须在Oracle8/8i数据库用 SYS 用户
运行 CATEXP7.SQL 脚本:
UNIX : SQL> @$ORACLE_HOME/rdbms/admin/catexp7.sql
Windows: SQL> @%ORACLE_HOME%\rdbms\admin\catexp7.sql
该脚本创建视图使得数据库看起来像是 Oracle7 版本的数据库,也意味着视图中看不到 Oracle8/8i 特定的对象,这样导出文件就
可以在没有错误的情况下导入到 Oracle7 版本的数据库.
注意脚本CATEXP.SQL 和 CATEXP7.SQL 仅仅只需要运行一次:CATEXP.SQL 创建视图供 Oracle8/8i/9i/10g 导出工具使用,CATEXP7.SQL
创建视图供 Oracle7 导出工具使用。
所以如果这些脚本已经用 SYS 用户执行过,就没必要再运行了。
上面提到的过程同样适用于用Oracle6 的导出工具导出 Oracle7 的数据库,此时应该在 Oracle7 数据库中用 SYS 用户执行 CATEXP6.SQL
脚本。
注意使用Oracle7工具从Oracle9i数据库导出数据已经不再被支持:在一份向下支持的路线图中,我们只向后支持一个功能性的版本。这
也意味着在Oracle10g数据库中用 Oracle8 导出工具导出数据不被支持(当前只支持在Oracle10g数据库中使用 Oracle8i 8.1.7 或以上
版本的导出工具)。
完全数据库导出/导入方式移植到Oracle9i / Oracle10g
------------------------------------------------------------------------------
将数据库移植到Oracle9i 或 Oracle10g的情形,采用数据库完全导出/导入的方式被限制了,这种情况仅适用于用完全模式(FULL=Y)导入
采用完全模式导出的文件。
不过还可以采用以下方式:
- 使用用户模式导入数据 (FROMUSER=... TOUSER=...)
- 使用表模式导入数据 (FROMUSER=... TABLES=...)
- 用表空间模式导出/导入数据 (TRANSPORT_TABLESPACE=Y)
注意导入客户端应能读取导出版本5.1.22及更高版本(最高至相同版本)的导出文件。
该移植限制与移植手册中描述的可用的升级路径相关,主要原因是仅支持从主要版本的最终发行版本(例如Oracle8i 8.1.7)直接升级到
一个新的最近的主要版本(例如Oracle9i 9.2.0 ),例如:
- 对 Oracle7, 版本 7.3.4.是最近的主要版本,
- 对 Oracle8, 版本 8.0.6. 是最近的主要版本,
- 对 Oracle8i, 版本 8.1.7. 是最近的主要版本.
在早期的主要版本(象 8.1.5 和 8.1.6)中标识出来的任何已知的问题(包括特定数据字典相关问题)几乎总是在最近的版本(8.1.7) 或
该版本最近的补丁集中被修正。
更多内容请参见下面章节 '基本兼容性' 和 '限制'
1. 移植到 Oracle9i release 2 - 9.2.0.x :
-------------------------------------------
采用数据库完全导出/导入的方式直接移植只支持以下源数据库版本:
- Oracle7 : 7.3.4
- Oracle8 : 8.0.6
- Oracle8i: 8.1.7
- Oracle9i: 9.0.1
2. 移植到 Oracle10g release 1 - 10.1.0.x :
---------------------------------------------
采用数据库完全导出/导入的方式直接移植只支持以下源数据库版本:
- Oracle8 : 8.0.6
- Oracle8i: 8.1.7
- Oracle9i: 9.0.1 or 9.2.0
3. 移植到 Oracle10g release 2 - 10.2.0.x :
---------------------------------------------
注意首先必须打上指定的最小版本补丁集(或者更高版本的补丁集) !
采用数据库完全导出/导入的方式直接移植只支持以下源数据库版本:
- Oracle8i : 8.1.7.4
- Oracle9i : 9.0.1.4 (或更高) or 9.2.0.4 (或更高)
- Oracle10g: 10.1.0.2 (或更高)
示例:
1. 从 8.1.7.4 到 9.2.0.7: 使用 8.1.7.4 导出工具完全导出数据, 然后用9.2.0.7的导入工具完全导入数据是被支持的移植方法.
2. 从 8.0.5.0 到 10.1.0.2: 使用 8.0.5.0 导出工具完全导出数据, 然后用10.1.0.2的导入工具完全导入数据是 *不* 被支持的移植方法
可选办法:
a. 首先升级 8.0.5.0 数据库到 8.0.6.0,应用最近的补丁 8.0.6.3,然后就可以用8.0.6.3导出工具完全导出,然后用10.1.0.2的
导入工具完全导入数据库.
b. 或者用8.0.5.0导出工具完全导出数据库,然后在Oracle10g数据库中预先建立用户,采用10.1.0.2导入工具用用户模式的导入方式导
入数据。
3. 从 9.2.0.1 到 10.2.0.1: 首先应用9.2.0.4补丁集(或更高版本补丁集,例如9.2.0.8),使用9.2.0.4导出工具(显示为9.2.0.8),然后
用10.2.0.1的导入工具完全导入数据是被支持的移植方法.
基本兼容性.
--------------------
定义 源数据库 = 导出数据的数据库.
定义 目标数据库 = 导入数据的数据库.
1) 总是选取导出工具的版本小于或等于源/目标数据库的最低版本。
意思是:
a) 当创建一个导出文件导入到一个更高版本数据库的(例如: 从 Oracle8i 到 Oracle9i), 使用与源数据库相同版本的导出工具
(这个例子中 = 最低版本 = Oracle8i ).
如果使用高版本的导出工具导出会失败。
例如,如果用9.0.1导出工具导出8.1.7的数据库,会得到下面错误:
EXP-56 Oracle error 942 encountered
ORA-942 table or view does not exist
EXP-0 Export terminated unsuccessfully
解决方法: 使用最低版本的导出工具(这个例子中是 8.1.7).
b) 当创建一个导出文件导入到一个更低版本数据库的(例如: 从 Oracle9i 到 Oracle8i),使用与目标数据库相同版本的导出工具
(这个例子中 = 最低版本 = Oracle8i ).
(1) 当运行 Oracle6 导出工具从 Oracle7 数据库创建一个 Oracle6 的导出文件时,首先必须在 Oracle7 数据库中运行 CATEXP6.SQL
脚本,这样导出操作时,使得数据库看起来像是 Oracle6 版本的数据库
(2) 当运行 Oracle7 导出工具从 Oracle8/8i 数据库创建一个 Oracle7 的导出文件时,首先必须在 Oracle8/8i 数据库中运行 CATEXP7.SQL
脚本,这样导出操作时,使得数据库看起来像是 Oracle7 版本的数据库
(3) 当运行 Oracle8/8i 导出工具从 Oracle9i 数据库创建一个 Oracle8/8i 的导出文件时,就不必运行任何特定的操作了.例如,你不必
在 9i 的数据库中运行 8i 版本的 脚本文件 catexp.sql 。你只需要在 9i 数据库上运行 8i 版本的导出工具,注意一些 Oracle9i
特定的特性不支持被导出 (例如 使用DIRECT=YES不会有任何LOBs和对象被导出).参见"Oracle9i Database Utilities"手册查看详细的限制列表。
2) 在应用一些补丁集同时数据字典中的导出视图也会改变,这会导致不能在未打补丁的数据库上运行打过补丁的导出工具,因此相同的基本准则也适用
于补丁集的发布版本:用涉及到的最低数据库版本的导出工具来导出数据。
例如:用9.2.0.5客户端来导出9.2.0.1的数据库会导致以下错误信息
EXP-00008: ORACLE error 942 encountered
ORA-00942: table or view does not exist
EXP-00024: Export views not installed, please notify your DBA
EXP-00000: Export terminated unsuccessfully
为了成功的导出位于9.2.0.1 $ORACLE_HOME(select * from v$version;)的9.2.0.1的数据库(select status, version, comp_id from dba_registry;)
使用9.2.0.1的导出工具而不是9.2.0.2或者更高的版本
否则使用9.2.0.6的导出客户端导出9.2.0.5的数据库情况下,当使用子分区模板导出分区表时会出现下面错误:
EXP-00056: ORACLE error 6550 encountered
ORA-06550: line 1, column 48:
PLS-00302: component 'CHECK_MATCH_TEMPLATE' must be declared
ORA-06550: line 1, column 14:
PL/SQL: Statement ignored
解决方法:使用9.2.0.5的导出客户端工具,如果你想将数据重新导入到9.2.0.5或更高的数据库环境。
3) 总是使用与目标数据库相同版本的导入工具.
限制.
------------
对于导出/导入工具有以下的限制(详见矩阵图):
1. Oracle的导出文件仅能被Oracle的导入工具读取,因为导出文件是以Oracle特定的二进制文件存储的.
2. 任何导出文件可以导入到所有主要版本、补丁及维护发行版本Oracle中.
3. 导出文件不能被先前版本的导入工具读取,所以10gR2 (10.2.0.x)的导出文件不能被10gR1 (10.1.0.x)的工具导入(可能错误:ORA-2248).9版本的导出
文件不能被8i的工具导入(可能错误:IMP-10或IMP-21).
版本8的导出文件不能被版本7的工具导入(可能错误:IMP-69和IMP-21).所有这些情况下,导入会以错误IMP-0 "导入操作不成功地" 终止。
4. 导入客户端应能读取导出版本5.1.22及更高版本(最高至相同版本)导出文件。
5. 导入工具仅能读取一个更高维护版本的导出工具创建的导出文件,所以8.1版本的导出文件不能用8.0版本的工具导入,8版本的导出文件不能用7版本的工具导入
6. Oracle6(或更早期)的导出工具不能在Oracle8或Oracle8i或更高版本的数据库上使用。
7. 当在一个更高版本的数据库上运行低版本的导出工具时,任何在低版本的数据库中不存在的对象将不会被导出,例如:版本7的导出工具不能导出分区表,如果
你需要移动一个版本8的分区表到版本7的数据库中,首先应将它转换为非分区表。
矩阵 1: 导入到Oracle8(或更低版本)数据库时应该使用什么导出工具(总是使用目标数据库的导入工具):
+-----------+--------------------------------------------------------------+
| EXPORT | IMPORT into: |
| from +--------+--------+--------+--------+--------+--------+--------+
| \/ | 5.x | 6.x | 7.0.x | 7.1.x | 7.2.x | 7.3.x | 8.0.x |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 5.x 1) 2)| EXP5x | EXP5x | EXP5x | EXP5x | EXP5x | EXP5x | EXP5x |
| 6.x 2)| N/S | EXP6x | EXP6x | EXP6x | EXP6x | EXP6x | EXP6x |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 7.0.x 3)| N/S | EXP6x | EXP70x | EXP70x | EXP70x | EXP70x | EXP70x |
| 7.1.x 3)| N/S | EXP6x | EXP70x | EXP71x | EXP71x | EXP71x | EXP71x |
| 7.2.x 3)| N/S | EXP6x | EXP70x | EXP71x | EXP72x | EXP72x | EXP72x |
| 7.3.x 3)| N/S | EXP6x | EXP70x | EXP71x | EXP72x | EXP73x | EXP73x |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 8.0.x 4)| Not Supported | EXP70x | EXP71x | EXP72x | EXP73x | EXP80x |
| 8.1.x 4)| Not Supported | EXP70x | EXP71x | EXP72x | EXP73x | EXP80x |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 9.0.1.x | Not Supported | 5) |
| 9.2.0.x | Not Supported | 5) |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 10.1.0.x | Not Supported |
| 10.2.0.x | Not Supported |
+-----------+--------+--------+--------+--------+--------+--------+--------+
备注:
1) 导入工具能读取5.1.22或更高版本的导出工具创建的导出文件(最高至相同版本).
2) 一个Oracle5 或 Oracle6 的导出及一个Oracle7 的导入:
参见oracle工具手册 Chapter 2 "Import" for special considerations to keep in mind.
3) 从Oracle7导出到Oracle6 数据库: 首先必须在Oracle7的数据库上用用SYS 用户运行CATEXP6.SQL(该脚本仅能运行一次以创建版本6的视图)
4) 从Oracle8, Oracle8i 导入到Oracle7 数据库: 首先必须在Oracle8/8i的数据库上用用SYS 用户运行CATEXP7.SQL(该脚本仅能运行一次以创建版本7的视图)
5) 唯一的情形:最终版本Oracle8(8.0.6)支持使用Oracle8的导出工具从Oracle9i数据库导出到8.0.6的数据库环境.
矩阵 2: 导入到Oracle8(或更高版本)数据库时应该使用什么导出工具(总是使用目标数据库的导入工具)::
+-----------+--------------------------------------------------------------+
| EXPORT | IMPORT into: |
| from +--------+--------+--------+--------+--------+--------+--------+
| \/ | 8.1.5 | 8.1.6 | 8.1.7 | 9.0.1 | 9.2.0 | 10.1.0 | 10.2.0 |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 5.x 1) 2)| EXP5x | EXP5x | EXP5x | EXP5x | EXP5x | EXP5x | EXP5x |
| 6.x 2)| EXP6x | EXP6x | EXP6x | EXP6x | EXP6x | EXP6x | EXP6x |
| 7.x 3)| EXP7x | EXP7x | EXP7x | EXP7x | EXP7x | EXP7x | EXP7x |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 8.0.3 | EXP803 | EXP803 | EXP803 | EXP803 | EXP803 | EXP803 | EXP803 |
| 8.0.4 | EXP804 | EXP804 | EXP804 | EXP804 | EXP804 | EXP804 | EXP804 |
| 8.0.5 | EXP805 | EXP805 | EXP805 | EXP805 | EXP805 | EXP805 | EXP805 |
| 8.0.6 | EXP806 | EXP806 | EXP806 | EXP806 | EXP806 | EXP806 | EXP806 |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 8.1.5 | EXP815 | EXP815 | EXP815 | EXP815 | EXP815 | EXP815 | EXP815 |
| 8.1.6 | EXP815 | EXP816 | EXP816 | EXP816 | EXP816 | EXP816 | EXP816 |
| 8.1.7 | EXP815 | EXP816 | EXP817 | EXP817 | EXP817 | EXP817 | EXP817 |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 9.0.1 | N/S | EXP816 | EXP817 | EXP901 | EXP901 | EXP901 | EXP901 |
| 9.2.0 | N/S | N/S | EXP817 | EXP901 | EXP920 | EXP920 | EXP920 |
+-----------+--------+--------+--------+--------+--------+--------+--------+
| 10.1.0 4)| Not Supported | EXP817 | EXP901 | EXP920 | 4) | 4) |
| 10.2.0 4)| Not Supported | EXP817 | EXP901 | EXP920 | 4) | 4) |
+-----------+--------+--------+--------+--------+--------+--------+--------+
备注:
1) 导入工具能读取5.1.22或更高版本的导出工具创建的导出文件(最高至相同版本).
2) 一个Oracle5 或 Oracle6 的导出及一个Oracle8,Oracle8i或Oracle9i 的导入:
参见oracle工具手册 Chapter 2 "Import" for special considerations to keep in mind.
3) 一个Oracle7 的导出及一个Oracle8,Oracle8i或Oracle9i 的导入:当TO_DATE函数没有被用在约束上时,DATE日期字段的约束检查将失效(在早期的的oracle版本
中没有该要求)
4) 导入到Oracle10g数据库是,为了获得更高的性能:使用新的oracle数据导出Export Data Pump (expdp)/导入Import DataPump (impdp)工具.
示例.
---------
1. 从 7.3.3 到 8.1.6 => 使用 7.3.3 导出工具从7.3.3数据库导出,用 8.1.6的导入工具导入到 8.1.6的数据库。
2. 从 8.1.7 到 8.1.7 => 使用 8.1.7 导出工具从8.1.7数据库导出,用 8.1.7的导入工具导入到 8.1.7的数据库。
3. 从 9.0.1 到 8.1.7 => 使用 8.1.7 导出工具从9.0.1数据库导出,用 8.1.7的导入工具导入到 8.1.7的数据库。
4. 从 8.1.7 到 9.2.0 => 使用 8.1.7 导出工具从8.1.7数据库导出,用 9.2.0的导入工具导入到 9.2.0的数据库。
5. 从 9.0.1 到 9.2.0 => 使用 9.0.1 导出工具从9.0.1数据库导出,用 9.2.0的导入工具导入到 9.2.0的数据库
6. 从 8.1.7 到 7.3.4 => 如果从未运行,先在 8.1.7数据库上运行CATEXP7.SQL以创建Oracle7数据字典视图,然后使用 7.3.4 导出工具
从8.1.7数据库导出,用 7.3.4的导入工具导入到 7.3.4的数据库
7. 从 10.1.0 到 8.1.7 => 使用 8.1.7 导出工具从10.1.0 数据库导出,用 8.1.7的导入工具导入到 8.1.7的数据库
8. 从 10.1.0 到 10.0.1 => 使用EXPORT DATA PUMP (expdp) 导出数据,然后用 IMPORT DATA PUMP (impdp) 导入数据.
9. 从 9.2.0 到 7.3.4 => 不支持.
10. 从 8.0.5 到 9.0.1 => 不支持使用 FULL=Y 导出& 用 FULL=Y导入
11. 从 8.1.6 到 10.1.0 => 不支持使用 FULL=Y 导出& 用 FULL=Y导入
可能的错误信息.
------------------------
EXP-3 : no storage definition found for segment(%lu, %lu
Cause : Could not find the storage definitions for cluster/index/table.
Action : Record the error messages and report this as Export internal error.
Remarks: See also Note 274076.1 "EXP-00003 When Exporting From 9.2.0.5.0 or
any Higher Release with a Pre-9.2.0.5.0 Export Client"
EXP-24 : Export views not installed, please notify your DBA
Cause : The necessary export views were not installed.
Action : Ask the database administrator to install the required export views.
EXP-37 : Export views not compatible with database version
Cause : The EXPORT utility is at a higher version than the database version
and is thereby incompatible.
Action : Use the same version of EXPORT utility as the database.
IMP-0 : Import terminated unsuccessfully
Cause : Error encountered.
Action : Check the preceding error message and take appropriate actions.
IMP-9 : Abnormal end of export file
Cause : This is usually caused by an export file generated by an aborted
export session.
Action : Check if file was transferred in Binary-mode. If the export file
was generated by an aborted export session, retry the export
followed by the import, else report this as an Import bug.
IMP-10 : Not a valid export file, header failed verification
Cause : Either it is not a file generated by the Export utility or that
the file is corrupted.
Action : Check if file was transferred in Binary-mode. If the file was
indeed generated by the Export utility, and no compatibility issue
is related, report this as an Import bug.
IMP-21 : operating system error - error code (dec %lu, hex 0x%X)
Cause : Operating system error. Can occur together with IMP-10 or IMP-69.
Action : Check the OS manual for the error code and take appropriate action.
Check for compatibility issues when next errors are IMP-10 or IMP-69.
IMP-23 : Import views not installed, please notify your DBA
Cause : Import views not installed.
Action : Notify DBA to install import views.
IMP-69 : Could not convert to environment national character set's handle
Cause : Internal error.
Action : Contact Worldwide support.
注意事项.
------
1. 使用导出工具,必须具有CREATE SESSION的数据库权限。导出其他所有者的表,必须有EXP_FULL_DATABASE角色权限,该角色已经授予所有DBA用户。
2. 在一个更新的数据库版本上使用旧版的导出工具,应该使用SQL*Net 或 Net8访问数据库:
EXP <用户名>/<密码>@<实例别名> ...
3. 当在Oracle8i或更高版本数据库上使用Oracle7或更低版本的导出工具时,你必须使用缺省的惯用路径导出(即:不要指定DIRECT=YES参数),惯用路径导出
使用SELECT语句提取表数据,直接路径的导出将直接读取数据,略过SQL命令处理层(解析缓冲)。同样注意使用Oracle 8.0导出工具指定(DIRECT=Y)从Oracle 8i
或更高版本数据库导出数据库时不能导出包含对象和LOBs的数据行
4. 从Oracle10g Release 1 (10.1.0.x)开始我们推出一种新的数据导出Export DataPump (expdp) 和导入 Import DataPump (impdp)工具。将来的版本中最初的
导出工具(exp)会逐步停止使用,然后被export DataPump utility (expdp)代替。最初的导入工具(imp)仍然会继续提供以便于导入最初导出客户端创建的导出
文件(例如:从Oracle9i导出),停止使用最初版本的导出客户端的准确版本还没有确定。
5. 为了检查导出/导入视图的修订版本,里可以用一下语句查询表 sys.props$ :
SQL> SELECT * FROM sys.props$ WHERE name LIKE 'EXPORT%';
NAME VALUE$ COMMENT$
------------------------- ----------- ------------------------
EXPORT_VIEWS_VERSION 8 Export views revision #
EXPORT_VIEWS_VERSION 的值对应如下含义:
+-------------------------------+
| EXPORT_VIEWS_VERSION |
+-------+-----------------------+
| Value | Introduced in Release |
+-------+-----------------------+
| *)| 7.0.* | *) 不兼容 - 假设0
| 1 | 7.1.3 |
| 2 | 7.2.1 |
| 3 | 7.2.3 |
| 4 | 8.0.1 |
| 5 | 8.0.2 |
| 6 | 8.0.3 |
| 7 | 8.0.4 |
| 8 | 8.1.6 |
+-------+-----------------------+
6. 欲了解导出/导入时环境变量NLS_LANG的详细冲突信息,见下面FAQ:
Note 227332.1 "NLS considerations in Import/Export - Frequently Asked
Questions"
相关文档
-----------------
Note 291024.1 Compatibility and New Features when Transporting Tablespaces
with Export and Import
Note 277650.1 How to Use Export and Import when Transferring Data Across
Platforms or Across 32-bit and 64-bit Servers
Note 61949.1 Overview of Export and Import in Oracle7
Note 76542.1 NT: Exporting from Oracle8, Importing Into Oracle7
Note 1012189.6 Errors trying to Import Transferred Export File
Note 155477.1 Parameter DIRECT: Conventional Path Export Versus Direct Path
Note 227332.1 NLS considerations in Import/Export - FAQ
A32541-01 "Oracle7 Server Utilities Release 7.3"
Chapter 1 "Export" and Chapter 2 "Import"
A58244-01 "Oracle8 Utilities Release 8.0"
Chapter 1 "Export" and Chapter 2 "Import"
A76955-01 "Oracle8i Utilities Release 2 (8.1.6)"
Chapter 1 "Export" and Chapter 2 "Import"
A90192-01 "Oracle9i Database Utilities Release 1 (9.0.1)"
Chapter 1 "Export" and Chapter 2 "Import"
A96652-01 "Oracle9i Database Utilities Release 2 (9.2)"
Chapter 1 "Export" and Chapter 2 "Import"
B10825-01 "Oracle Database Utilities 10g Release 1 (10.1)"
Chapter 2 "Data Pump Export", Chapter 3 "Data Pump Import",
and Chapter 20 "Original Export and Import"
B14215-01 "Oracle Database Utilities 10g Release 2 (10.2)"
Chapter 2 "Data Pump Export", Chapter 3 "Data Pump Import",
and Chapter 20 "Original Export and Import"
A86632-01 "Oracle8i Migration Release 3 (8.1.7)"
Chapter 9 "Compatibility".
A90191-01 "Oracle9i Database Migration Release 1 (9.0.1)"
Chapter 7 "Upgrading from an Older Release of Oracle to
the New Oracle9i Release"
A96530-01 "Oracle9i Database Migration Release 2 (9.2)"
Chapter 2 "Preparing to Upgrade"
B10763-01 "Oracle Database Upgrade Guide 10g Release 1 (10.1)"
Chapter 2 "Preparing to Upgrade"
B14238-01 "Oracle Database Upgrade Guide 10g Release 2 (10.2)"
Chapter 2 "Preparing to Upgrade"
- Oracle_EXP_IMP_Compatibility_Matrix.rar (16.9 KB)
- 下载次数: 10
相关推荐
### Oracle不同版本之间Export & Import的兼容性矩阵 #### 知识点概览 - **兼容性矩阵**:本文档提供了Oracle不同版本间使用Export与Import工具时的兼容性指导。 - **适用版本**:Oracle7、Oracle8、Oracle8i、...
这篇文档"【Askerain技术分享-HmasterBG】Oracle平台版本兼容性列表.docx"很可能包含了关于Oracle不同版本在不同操作系统平台上的适用性和相互兼容性的详细信息。 Oracle数据库的版本通常按照主要版本号、次要版本...
"OracleDB_Export_Import.rar"这个压缩包文件显然包含了关于Oracle数据库导出(Export)和导入(Import)的资源,这通常是用于在不同环境之间迁移数据库或者备份恢复的重要手段。下面我们将详细探讨Oracle数据库的...
官方资料:白皮书[英文]Oracle Database 12c: Full Transportable Export/Import Full Transportable Export/lmport Support for Pluggable Databases ;Internals of Full Transportable Export/lmport;Full ...
Oracle兼容性列表2016主要关注的是Oracle数据库在不同Windows操作系统版本上的支持情况,以及升级至Oracle 12c的兼容性路径。这个列表详细列出了从7.3.4到12.1.0的各个Oracle版本与Windows操作系统(如Win2000、...
关于Oracle各版本服务器端、客户端连接兼容性,详细说明。从7.3-11.2。
目前,大多数应用程序使用的是Oracle数据库,而用户或多或少的使用了Oracle的...Oracle兼容性方面实现的功能包括:ROWNUM表达式、多列IN语法、层次查询、外连接语法“(+)”、INSTEADOF触发器、%TYPE以及记录类型等
11-19版本的OGG兼容性列表.zip中的文件详细列出了不同版本的OGG与数据库之间的兼容性情况,这对于理解和规划OGG在不同环境下的部署至关重要。以下是对这些文件内容的详细解读: 1. **ogg-12-3-x-兼容性列表.xls**:...
总的来说,AntDB_Oracle兼容性开发者手册v31是为帮助开发者充分利用AntDB的Oracle兼容特性,简化从Oracle到AntDB的迁移过程,并在两者之间实现平滑过渡的宝贵资源。手册详细阐述了各项兼容功能,提供了一系列的使用...
在不同版本的Oracle数据库之间进行数据迁移时,可能会遇到版本兼容性问题,比如高版本的DMP文件无法直接导入到低版本的数据库中。这时,就需要了解如何“修改Oracle DMP文件版本”。 首先,我们得明白Oracle Data ...
ojdbc的不同版本对应于Oracle数据库的不同版本,确保了兼容性和最佳性能。 - ojdbc5适用于Java 5和Oracle 10g/11g,ojdbc6对应Java 6和Oracle 11g/12c,ojdbc7适用于Java 7和Oracle 11g/12c,ojdbc8则匹配Java 8及...
Oracle各版本驱动包,有需要的可以下载使用,支持目前常用的不同版本oracle和JDK,根据自己需要调整和使用 主要包括的jar有: ojdbc5.jar 适用JDK版本:JDK 1.5 对应Oracle数据库版本:Oracle数据库版本(如Oracle ...
Oracle数据库的迁移涉及到不同版本之间的兼容性问题,这是在数据库管理中常见的挑战。本文主要讨论了从Oracle7到Oracle11g版本之间的导入/导出操作,并提供了相关的准备工作和注意事项。 首先,数据库迁移的核心...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其稳定性和功能强大深受企业青睐。...不同版本的驱动在性能、功能和兼容性上都有所差异,因此,根据项目需求和环境选择最合适的版本是提高系统效率的关键。
信息适用于Oracle Database Server 9.2.0 及更高版本,为DBA以及负责数据库升级的相关人员提供帮助。
这个工具可能简化了这些步骤,使得对于Oracle 10g和11g这两个版本之间的转换更加高效。Oracle 10g是2003年发布的一个版本,而11g则在2007年推出,两者在功能、性能和安全性上都有所提升,但同时也可能需要适应新的...
64位的机器不用严格按照oracle 在下载时候对版本的要求去挑选合适的oracl版本 在 64位windows7 中 直接安装oracle官网的 oracle 10g R2 for Microsoft windows 64bit 即可 直接面向windows 64位 不具体到那个版本的...
本文将详细介绍Oracle各版本的JDBC连接JAR包,并讨论其与Oracle数据库及Java开发工具包(JDK)的兼容性。 在Java编程中,JDBC驱动程序是连接Java应用程序与数据库的关键组件。Oracle JDBC驱动分为多个版本,以适应...
3. **兼容性检查**:使用Oracle提供的兼容性矩阵工具检查应用程序、操作系统、硬件等是否与目标版本兼容。 4. **性能基线建立**:记录当前系统的性能指标,以便升级后对比分析。 #### 三、Oracle数据库升级方法 1....