impdp导入数据ORA-39142: 版本号 5.1不兼容错误

impdp导入数据ORA-39142: 版本号 5.1不兼容错误

1、错误现象

Import: Release 12.1.0.1.0 - Production on 星期三 6月 26 17:07:49 2024

Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.

连接到: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
ORA-39001: 参数值无效
ORA-39000: 转储文件说明错误
ORA-39142: 版本号 5.1 (在转储文件 "D:\Work\240525\2024052501.dmp" 中) 不兼容

2、错误原因

在服务器上登录:

 sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Fri Jun 28 19:38:06 2024

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


是12.2的版本,导入的目标数据库是12.1数据库:

1	Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production	0
2	PL/SQL Release 12.1.0.1.0 - Production	0
3	"CORE	12.1.0.1.0	Production"	0
4	TNS for 64-bit Windows: Version 12.1.0.1.0 - Production	0
5	NLSRTL Version 12.1.0.1.0 - Production	0

源端数据库版本12.2,目标端版本12.1,根据Oracle官方impdp兼容性文档:

Data Pump file version.
=======================

     Version      Written by     Can be imported into Target:
   Data Pump   database with      10gR1      10gR2      11gR1      11gR2      12cR1      12cR2        18c        19c
Dumpfile Set   compatibility   10.1.0.x   10.2.0.x   11.1.0.x   11.2.0.x   12.1.0.x   12.2.0.x   18.x.y.z   19.x.y.z
------------ --------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
         0.1          10.1.x  supported  supported  supported  supported  supported  supported  supported  supported
         1.1          10.2.x         no  supported  supported  supported  supported  supported  supported  supported
         2.1          11.1.x         no         no  supported  supported  supported  supported  supported  supported
         3.1          11.2.x         no         no         no  supported  supported  supported  supported  supported
         4.1          12.1.x         no         no         no         no  supported  supported  supported  supported
         5.1          12.2.x         no         no         no         no         no  supported  supported  supported
         5.1          18.x.y         no         no         no         no         no         no  supported  supported
         5.1          19.x.y         no         no         no         no         no         no         no  supported

源数据库12.2导出的dmp文件版本是5.1,目标数据库的版本12.1,dmp版本位4.1,因此在导入时出现ORA-39142: 版本号 5.1 不兼容。

解决方法是需要在导出时候加入VERSION=xxx参数,根据MOS文档Export/Import DataPump Parameter VERSION - Compatibility of Data Pump Between Different Oracle Versions (Doc ID 553337.1)中

 Export              Use Export Data Pump parameter VERSION=...
      From                 if dumpfile needs to be imported into a
    Source                Target Database with compatibility level
  Database        (value of init.ora/spfile parameter COMPATIBLE):
      With
COMPATIBLE    10.1.0.x.y    10.2.0.x.y    11.1.0.x.y    11.2.0.x.y    12.1.0.x.y    12.2.0.x.y     18.x.y.z     19.x.y.z
---------- ------------- ------------- ------------- ------------- ------------- ------------- ------------ ------------
10.1.0.x.y             -             -             -             -             -             -            -            -
---------- ------------- ------------- ------------- ------------- ------------- ------------- ------------ ------------
10.2.0.x.y  VERSION=10.1             -             -             -             -             -            -            -
---------- ------------- ------------- ------------- ------------- ------------- ------------- ------------ ------------
11.1.0.x.y  VERSION=10.1  VERSION=10.2             -             -             -             -            -            -
---------- ------------- ------------- ------------- ------------- ------------- ------------- ------------ ------------
11.2.0.x.y  VERSION=10.1  VERSION=10.2  VERSION=11.1             -             -             -            -            -
---------- ------------- ------------- ------------- ------------- ------------- ------------- ------------ ------------
12.1.0.x.y  VERSION=10.1  VERSION=10.2  VERSION=11.1  VERSION=11.2             -             -            -            -
---------- ------------- ------------- ------------- ------------- ------------- ------------- ------------ ------------
12.2.0.x.y  VERSION=10.1  VERSION=10.2  VERSION=11.1  VERSION=11.2  VERSION=12.1             -            -            -
---------- ------------- ------------- ------------- ------------- ------------- ------------- ------------ ------------
18.x.y.z    VERSION=10.1  VERSION=10.2  VERSION=11.1  VERSION=11.2  VERSION=12.1  VERSION=12.2            -            -
---------- ------------- ------------- ------------- ------------- ------------- ------------- ------------ ------------
19.x.y.z    VERSION=10.1  VERSION=10.2  VERSION=11.1  VERSION=11.2  VERSION=12.1  VERSION=12.2 VERSION=18.x            -
---------- ------------- ------------- ------------- ------------- ------------- ------------- ------------ ------------

12.2导出如果需要在12.1导入的话,需要加入参数VERSION=12.1,修改导出语句:

peter/************* directory=exdump240625 dumpfile=20240625%U.dmp parallel=12 job_name=expdpjob logfile=20240625.log FILESIZE=32g version=12.1

然而导出的时候,会有多个错误信息:
由于标识符较长, 无法将 TABLE_STATISTICS 导出到版本12.1


ORA-39373: cannot export INDEX_STATISTICS to version 12.1 due to long identifiers
ORA-39373: cannot export INDEX_STATISTICS to version 12.1 due to long identifiers
ORA-39373: cannot export INDEX_STATISTICS to version 12.1 due to long identifiers

是索引的统计信息,可以暂时不予理会,数据和表结构能够正常导出,就可以了。
索引,可以重建。

从源数据库中重新增加version参数的dump文件,再次导入到12.1的数据库中,开始导入数据正常,不再报错ORA-39142。

但是到导入统计信息的时候,报了致命错误,如下:

处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
处理对象类型 SCHEMA_EXPORT/STATISTICS/MARKER
ORA-39126: 在 KUPW$WORKER.STATS_LOAD [MARKER] 中 Worker 发生意外致命错误
ORA-30091: 未加载次级转换表

ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: 在 "SYS.KUPW$WORKER", line 11014

----- PL/SQL Call Stack -----
  object      line  object
  handle    number  name
00007FFAB557B698     26217  package body SYS.KUPW$WORKER
00007FFAB557B698     11041  package body SYS.KUPW$WORKER
00007FFAB557B698     23568  package body SYS.KUPW$WORKER
00007FFAB557B698     19956  package body SYS.KUPW$WORKER
00007FFAB557B698      4486  package body SYS.KUPW$WORKER
00007FFAB557B698     11765  package body SYS.KUPW$WORKER
00007FFAB557B698      2059  package body SYS.KUPW$WORKER
00007FFAB5583478         2  anonymous block

估计原因是在导出的时候,统计信息就没有能够正常的导出,在导入的时候,就发生了致命错误。
虽然无法解决,但是终于把数据从12.2的数据库中导入到12.1的数据库中。
原来觉得12.1和12.2的小版本差异,不会影响基本的数据库的导入和导出,研究后,发现差异还是比较大的。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ORA-39083是Oracle数据库中的一个错误代码,表示数据导入操作失败。这个错误通常是由于导入数据文件或目录不存在、权限不足、数据文件格式不正确或者数据库对象已经存在等原因引起的。要解决这个问题,可以尝试以下几种方法: 1. 检查导入数据文件或目录是否存在,并且确保有足够的权限访问它们。 2. 检查导入数据文件格式是否正确,例如是否与导出时使用的格式相同。 3. 如果导入数据文件已经存在于目标数据库中,可以尝试使用IGNORE=Y参数来忽略已经存在的对象。 4. 如果导入数据文件中包含了已经存在的对象,可以尝试使用REMAP_SCHEMA参数来重新映射这些对象到一个新的模式中。 5. 如果以上方法都无法解决问题,可以尝试使用TRACE=480300参数来启用详细的跟踪信息,以便更好地诊断问题。 ### 回答2: 在使用impdp进行数据导入时,可能会遇到ORA-39083错误。这个错误通常指的是一个对象导入失败了。 导致导入失败的原因可能包括以下几种: 1. 没有足够的权限:导入数据需要足够的权限,如果用户没有足够的权限,则会导致导入失败并出现ORA-39083错误。 2. 目标表已经存在并且没有被清空:如果导入数据中的表已经存在,而且表中已经包含数据,则导入失败,并出现报错信息。 3. 导入数据文件不存在:如果指定的数据文件不存在,则导入失败,并出现报错信息。 4. 导入数据文件没有足够的空间:如果导入数据文件没有足够的空间容纳导入数据,则导入失败,并出现报错信息。 对于这些问题,可以根据具体的情况采取以下几种方法来解决: 1. 确保用户具有足够的权限:在进行导入数据之前需要确保用户具有足够的权限。如果没有足够的权限,需要联系管理员进行授权。 2. 清空目标表:在导入数据之前需要确保目标表已经被清空,如果表中已经包含数据,则需要进行清空。 3. 确认数据文件存在并可用:在进行导入数据之前需要确认数据文件存在并具有正确的权限设置。如果文件不存在或者权限设置不正确,则需要进行调整。 4. 确认数据文件具备足够的空间:在进行导入数据之前需要确保数据文件具有足够的空间容纳导入数据。可以通过增加数据文件的大小或者增加磁盘空间来解决问题。 总的来说,ORA-39083错误导入数据时经常会遇到的问题,可以通过一些基本的和常用的方法来解决。在出现错误时,需要对问题进行逐一排查,确定具体的原因,并选择相应的解决方法。如果遇到比较复杂的问题,则建议联系专业的技术支持人员进行帮助和解决。 ### 回答3: 对于 Oracle 数据库管理员来说,运用 impdp 工具来备份或迁移数据库是很常见的操作。然而,在实际应用中,也会经常面临 impdp 导入时报错的情况,其中ORA-39083 错误是很常见的一种。下面我将针对该错误进行详细的解析与处理。 ORA-39083 错误的相关描述 在使用 impdp 工具时,若出现类似如下的错误提示: ORA-39083: Object type TABLE failed to create with error: ORA-00959: tablespace 'XXX' does not exist 则说明此次导入失败。其中,ORA-39083 错误的提示信息包括了其失败的对象类型和错误原因等,其中的ORA-00959 错误提示信息则说明了实际导入时的障碍。 ORA-00959 错误的原因分析 ORA-00959 错误的原因由其错误提示信息已经说明了——缺少了相应的表空间。这时,我们需要对其出错的对象进行处理。例如,若我们发现了相应表空间确实没有被创建,或者没有在导入时提前建立好,这时便可以在运用 impdp 工具前,恰当地创建好要导入的表空间。 若已经有相应的表空间且也已经正确创建,但导入仍然失败,这时,我们需要进一步探究导致该错误的具体原因。常见的导致ORA-00959 错误的因素与表空间命名不规范,导致 impdp 工具无法识别相应表空间的情况有关。例如,表空间名称中含有全角字符或者其他特殊字符,均会导致导入失败。 解决豁免: 针对ORA-39083 错误,通常的解决方法是检查表空间是否被正确地创建,确保表空间名称规范、识别正确后再次使用 impdp 工具进行导入。此外,也可以根据错误提示信息中涉及到的具体对象类型,考虑采用更为具体的解决措施,比如说建立其他的 table 或者 view。 最后,防患于未然,不断的学习和掌握 Oracle 工具和技能是重要的,加深自己对数据库系统的理解和管理能力也可以避免此类错误的发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值