在不同数据库版本之间进行导出和导入
在不同数据库版本之间进行导出和导入
数据泵可用于在数据库软件的不同版本之间迁移数据库的全部或任何部分。
VERSION
通常使用“数据泵导出”参数来执行此操作。这将生成与指定版本兼容的数据泵转储文件集。
默认值
VERSION
是
COMPATIBLE,
表示导出的数据库对象定义会与指定的版本兼容
COMPATIBLE
初始化参数。
在升级情况下,当基于数据泵的迁移的目标版本高于源版本时,
VERSION
通常不必指定参数,因为源数据库中的所有对象都将与较高目标版本兼容。当导出整个Oracle数据库11
g
(11.2.0.3版或更高版本)以准备导入到Oracle数据库12
c
版本1(12.1.0.1)或更高版本时,例外。在这种情况下,请明确指定
VERSION=12
与
FULL=YES
,以包括一整套Oracle内部组件元数据。
在降级的情况下,当基于数据泵的迁移的目标版本低于源版本时,
VERSION
应明确指定该参数与目标版本相同。当目标发行版本
COMPATIBLE
与源系统上的初始化参数的值相同时,会发生例外。则
VERSION
无需指定。但是,通常,除非
VERSION
明确指定参数,否则Data Pump导入无法读取由比当前版本新的Oracle版本创建的转储文件集。
在不同数据库版本之间进行导出和导入时,请记住以下信息:
在数据泵导出中,如果您指定的数据库版本早于当前数据库版本,则会创建一个转储文件集,您可以将其导入到该数据库的旧版本中。例如,如果您正在运行Oracle Database 12c第1版(12.1.0.2)并
VERSION=11.2
在导出上指定,则可以将创建的转储文件集导入到Oracle 11.2数据库中。注意:
无法将仅在Oracle Database 12 c 版本1(12.1.0.2)及更高版本中有效的数据库特权(例如,
READ
表,视图,实例化视图和同义词的特权)导入Oracle Database 12 c 版本1(12.1)。 0.1)或更早的版本。如果尝试这样做,则Import会将其报告为错误并继续导入操作。如果您指定的数据库版本早于当前数据库版本,则某些功能可能不可用。例如,
VERSION=10.1
如果还为作业指定了数据压缩,则指定会导致错误,因为Oracle数据库10 g第 1版(10.1)不支持压缩。数据泵导入始终可以读取由较早版本的数据库创建的数据泵转储文件集。
通过网络链接进行操作时,Data Pump要求源数据库和目标数据库之间的差异不得超过两个版本。例如,如果一个数据库是Oracle Database 12c ,则另一个数据库必须是 12c ,11 g 或10 g 。请注意,Data Pump仅检查主版本号(例如10 g ,11 g ,12 c ),而不检查特定发行版号(例如12.1、10.1、10.2、11.1或11.2)。