惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Application and Cybersecurity Blog
Application and Cybersecurity Blog
N
News | PayPal Newsroom
The Last Watchdog
The Last Watchdog
S
Secure Thoughts
Forbes - Security
Forbes - Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
PCI Perspectives
PCI Perspectives
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
Last Week in AI
Last Week in AI
Blog — PlanetScale
Blog — PlanetScale
Hacker News: Ask HN
Hacker News: Ask HN
H
Heimdal Security Blog
D
Docker
Cloudbric
Cloudbric
P
Privacy International News Feed
S
Security Affairs
TaoSecurity Blog
TaoSecurity Blog
博客园 - 聂微东
WordPress大学
WordPress大学
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
Tenable Blog
Scott Helme
Scott Helme
人人都是产品经理
人人都是产品经理
Recent Announcements
Recent Announcements
P
Palo Alto Networks Blog
小众软件
小众软件
L
LINUX DO - 最新话题
美团技术团队
Google Online Security Blog
Google Online Security Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
雷峰网
雷峰网
Microsoft Security Blog
Microsoft Security Blog
The Hacker News
The Hacker News
Webroot Blog
Webroot Blog
T
Tor Project blog
G
Google Developers Blog
A
About on SuperTechFans
Y
Y Combinator Blog
K
Kaspersky official blog
A
Arctic Wolf
量子位
I
InfoQ
V
Visual Studio Blog
T
Troy Hunt's Blog
C
Cybersecurity and Infrastructure Security Agency CISA
J
Java Code Geeks
博客园 - 【当耐特】
GbyAI
GbyAI

博客园 - AlfredZhao

kbot3测试Model报500:一次app_id参数排查记录 一人公司OPC理念探索:如何把Agent业务做成闭环 DB升级 23.26.2:/opt 空间临界导致 OPatch 失败的处理记录 Docker 容器不写代理,临时用 OS 变量解决网络问题 数据乱成一锅粥,还能先做本体吗? SQL*Plus 执行中文 SQL 文件,如何避开乱码坑 Podman 报错:普通用户无法运行 rootless Podman 怎么办 语义层构建:企业级AI落地绕不开的关键 AI时代最扎心的真相:人类在打杂,AI在做决策 Win7老系统登录报错怎么解?PuTTY这次真能救急 Linux 主机防火墙如何同时开启 80 和 443? AI 编程变更记录:知识加工模块与博客工厂模块的状态重新定义 一篇搞定:用 curl 测试私有部署模型联通性 DBA除了修库,还能把经验变成更大的价值 原本3GB+ 的 Docker 镜像直接缩成500M RAG技术从1.0到4.0,系统为何越来越“会想” 生产环境里,为什么不建议把普通端口直接暴露到公网? ORACLE默默地搞了个免费的智能体工厂 GPT 省钱,不是别用最新模型,而是别浪费缓存 Docker 容器时区不对,`timedatectl` 不存在怎么办? AI 编程工作总结:从体验问题到模块能力建设 OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G? vi 删除指定范围的行,不用再反复按 dd AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 AI编程系列01:裸 API 账单场景下,如何自建 LLM 用量可视化看板 氛围编程实战系列:先规划清楚学习路径 入门:我的第一个Vibe Coding实践程序 Linux时区修改为CST 如何在Oracle Agent Factory中配置国内厂商的LLM? Oracle Deep Data Security (Deep Sec) 初体验 APEX实战第13篇:全套开发环境的本地配置与恢复实践 Codex 和 OpenClaw,到底差在哪? 微信对接OpenClaw的常见问题和解决方案 在群晖NAS上配置OpenClaw:一次踩坑后的保姆级教程(完整修订版) 用Docker安全驯服OpenClaw,并打通社交软件 RAG 时代的“破壁人”:为什么你的大模型应用急需 Docling? 为什么 AI 服务器首选 Ubuntu?难道 OEL 和 RHEL 不香吗? APEX实战第12篇:Oracle APEX 工作区密码忘记了怎么办? AI开发者如何无痛部署Oracle AI Database 26ai环境 Oracle 26ai 本地通用版这次是真的来了 Docker 快速入门:手把手教你打包 Python 应用 APEX实战第11篇:图形界面轻松解锁工作区账户 APEX实战第10篇:手把手教你给APEX打补丁 APEX实战第9篇:手把手教你集成RAS轻松实现真正的数据安全 小白学AI开发01:创建第一个示例Agent LangChain、LangFlow、LangGraph:一文讲清三大 LLM 框架的定位与差异 使用 Oracle 官方 HR Demo 快速验证 RAS 功能(小白实战指南) Oracle RAS:AI时代企业数据安全核心 新版MOS(My Oracle Support)主要变化 APEX实战第8篇:ORDS连库报错574?一招根治用户过期问题 为什么 Iceberg 在数据湖领域这么火
impdp 遇到 TSTZ Version 报错:ORA-39405 处理实践
AlfredZhao · 2026-07-17 · via 博客园 - AlfredZhao

2026-07-17 18:51  AlfredZhao  阅读(0)  评论()    收藏  举报

最近做 Oracle 数据库迁移时,笔者在 impdp 阶段遇到一个典型报错:源库的 TSTZ Version 比目标库高,导致 Data Pump 直接拒绝导入。这个问题容易被误判成 RU 版本问题,但真正关键点在 Time Zone Version。

01 | 问题现象与原因

迁移环境如下:

  • 源库:Oracle Database 23.26.1(ODA)
  • 目标库:Oracle AI Database 26ai(23.26.2,自建 CDB/PDB)
  • 迁移方式:expdpimpdp

导入时报错:

ORA-39002: invalid operation
ORA-39405: Oracle Data Pump does not support importing from a source database
with TSTZ version 44 into a target database with TSTZ version 43.

一开始容易疑惑:目标库 RU 已经更高,为什么 Time Zone Version 反而更低?

原因是 Database RU 和 Time Zone Version 是两套独立版本体系。升级 RU 或 Oracle Home,并不会自动升级数据库当前使用的 Time Zone Version。

可以在目标库查看当前 Time Zone Version:

SELECT * FROM v$timezone_file;

结果显示目标库仍是:

timezlrg_43.dat 43

再查看 Oracle Home 支持的最新 Time Zone Version:

SELECT dbms_dst.get_latest_timezone_version FROM dual;

结果为:

45

这说明 Oracle Home 已经支持 Version 45,但目标数据库本身仍停留在 Version 43。因此,当导入来自 TSTZ Version 44 的 dump 时,Data Pump 会报 ORA-39405

02 | 只升级目标 PDB 即可解决

本次场景不需要重新建库,也不需要重新导出。只要把目标业务 PDB 的 Time Zone Version 升级到与源库相同或更高即可。

先切换到目标 PDB:

ALTER SESSION SET CONTAINER=DATACLAWPDB;

以 Upgrade 模式打开 PDB:

ALTER DATABASE OPEN UPGRADE;

开始升级窗口,这里使用 Oracle Home 当前支持的最新版本 45

BEGIN
 DBMS_DST.BEGIN_PREPARE(45);
END;
/

BEGIN
 DBMS_DST.END_PREPARE;
END;
/

BEGIN
 DBMS_DST.BEGIN_UPGRADE(45);
END;
/

然后重启 PDB:

SHUTDOWN IMMEDIATE;
STARTUP;

升级所有 TSTZ 数据:

SET SERVEROUTPUT ON;

DECLARE
 l_failures BINARY_INTEGER;
BEGIN
 DBMS_DST.UPGRADE_DATABASE(l_failures);
 DBMS_OUTPUT.PUT_LINE('Failures = ' || l_failures);
END;
/

如果输出中 Failures = 0,说明需要处理的对象已经成功升级。

最后结束升级窗口:

SET SERVEROUTPUT ON;

DECLARE
 l_failures BINARY_INTEGER;
BEGIN
 DBMS_DST.END_UPGRADE(l_failures);
 DBMS_OUTPUT.PUT_LINE('Failures = ' || l_failures);
END;
/

成功后再次确认:

SELECT * FROM v$timezone_file;

目标 PDB 显示为:

timezlrg_45.dat
45

此时重新执行 impdp,不再出现 ORA-39405,导入可以正常通过。

补充一点:在多租户架构中,PDB 的 Time Zone Version 可以独立于 CDB$ROOT。也就是说,CDB$ROOTPDB$SEED 仍为 43,而业务 PDB 升级到 45,是一个可用配置。

从管理角度看,Root、PDB$SEED、业务 PDB 保持一致更方便。但为了完成单个业务 PDB 的导入,只升级目标 PDB 就足够了。

这次问题的核心结论是:RU 版本高不代表 TSTZ Version 高;当目标库 TSTZ Version 低于源库时,Data Pump 会拒绝导入。把目标 PDB 升级到相同或更高的 Time Zone Version 后,即可解决问题。

关注我,和AI一起成长~