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报错已经解决。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享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新特性--云平台存储节点升级