AWS RDS Oracle hit ORA-39405

报错信息:

复制代码
ORA-39405: Oracle Data Pump does not support importing from a source database with TSTZ version 42 into a target database with TSTZ version 35.

分析过程:

这个报错是由于timezone_file的版本,源端比目标端高,于是impdp不支持。

这个报错是Oracle引擎本身的限制,参考Mos文章 ORA-39405: Oracle Data Pump Does Not Support Importing From A Source Database With TSTZ Version (Doc ID 2793311.1)

在原生Oracle上,将timezone_file的patch应用,完成升级即可解决。

那么如果AWS RDS Oracle 实例上,如果遇到这个报错,应该怎么解决呢?

解决方案:

有个误区,是可能此时大家会检查RDS Oracle的小版本,而后将目标端把版本升级到更高版本。但是timezone_file的版本,不一定会跟着RDS Oracle的升级而升级。

正确的方式是,根据文档[1], 首先将RDS Oracle的选项组,如果是默认选项组,那么需要更改为自建选项组。

而后在自建选项组中,将timezone_file_autoupgrade 这个选项添加上。

需要注意的是,根据文档[1], 打开此选项可能会导致几个小时的停机时间。当实例使用过时的时区文件版本时,可能会发生停机。或者,当引擎版本升级包含新的时区文件版本时,也可能会发生这种情况。

可以通过如下query查询timezone_file的版本:

复制代码
select * from v$timezone_file;

参考文档:

1\] [Downtime during the time zone file update - Amazon Relational Database Service](https://docs.amazonaws.cn/en_us/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.Timezone-file-autoupgrade.considerations.html "Downtime during the time zone file update - Amazon Relational Database Service")

相关推荐
笨蛋不要掉眼泪16 分钟前
SpringAOP
java·数据库·spring·log4j
IvanCodes18 分钟前
九、HQL DQL七大查询子句
大数据·数据库·hive
Channing Lewis27 分钟前
如何判断一个网站后端是用什么语言写的
前端·数据库·python
難釋懷1 小时前
Android开发-数据库SQLite
android·数据库·sqlite
码农捻旧1 小时前
解决Mongoose “Cannot overwrite model once compiled“ 错误的完整指南
javascript·数据库·mongodb·node.js·express
tanyyinyu1 小时前
Python函数返回值的艺术:为何True/False是更优实践及例外情况分析
运维·数据库·python
大新新大浩浩1 小时前
记录一下seata后端数据库由mariadb10切换到mysql8遇到的SQLException问题
数据库
zc.z2 小时前
微服务如何实现服务的高并发
数据库·微服务·架构
怀君2 小时前
Flutter——数据库Drift开发详细教程(六)
数据库·flutter
朝新_2 小时前
【MySQL】第四弹——表的CRUD进阶(二)数据库设计
数据库·mysql