impdp报ORA-39405,手动更新DST v41版本

前言

业务部门使用impdp进行数据加载时报错,错误信息如下所示。

ORA-39405: Oracle Data Pump does not support importing from a source database with TSTZ version 41 into a target database with TSTZ version 32.

错误提示信息已经非常显示,源端数据库的TSTZ版本为41,而目标端数据库为32,所以不支持这个数据导入操作。

检查发现源端数据库版本为19.19,而目标端数据库版本为19.16。要解决这个故障,可以将目标端数据库升级至与源端相同的版本;也可以单独升级目标端的TSTZ版本。

本文简单记录升级TSTZ的步骤。

 

1、查看当前DST的版本

SQL> SELECT version FROM v$timezone_file;

   VERSION

----------

        32

SQL>

 

2、下载补丁

p35099667_190000_Linux-x86-64.zip

 

3、安装补丁

(oracle)$ unzip p35099667_190000_Linux-x86-64.zip -d /software/35099667

(oracle)$ cd /software/35099667/35099667

(oracle)$ opatch apply

(oracle)$ opatch lspatches

所有计算节点都执行。

 

4、更新数据库中DST的版本信息

更新DST信息有两种方式:(1).利用DBMS_DST包进行更新;(2).利用$ORACLE_HOME/rdbms/admin目录下的utltz_*脚本进行更新。推荐使用第二种方式进行更新。

SQL> @?/rdbms/admin/utltz_countstats.sql

SQL> @?/rdbms/admin/utltz_countstar.sql

SQL> exec dbms_scheduler.purge_log;

 

SQL> @?/rdbms/admin/utltz_upg_check.sql

 

SQL> alter system set cluster_database=false scope=spfile sid='*';

(oracle)$ srvctl stop database -d racdb -o immediate

(oracle)$ sqlplus / as sysdba

SQL> startup

 

SQL> @?/rdbms/admin/utltz_upg_check.sql

SQL> @?/rdbms/admin/utltz_upg_apply.sql

 

SQL> alter system set cluster_database=true scope=spfile sid='*';

(oracle)$ srvctl stop database -d racdb -o immediate

(oracle)$ srvctl start database -d racdb

 

5、查看更新后的DST版本

SQL> SELECT version FROM v$timezone_file;

 

   VERSION

----------

        41

SQL>

 

至此,impdp时的ORA-39405报错已经解决。

 

posted @   石云华  阅读(2083)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2018-09-20 Exadata 18.1新特性--计算节点升级增强
2018-09-20 Exadata 18.1新特性--云平台存储节点升级
点击右上角即可分享
微信分享提示