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

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
AI
AI
S
Security Affairs
S
Secure Thoughts
Attack and Defense Labs
Attack and Defense Labs
Application and Cybersecurity Blog
Application and Cybersecurity Blog
H
Heimdal Security Blog
Forbes - Security
Forbes - Security
Security Archives - TechRepublic
Security Archives - TechRepublic
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Spread Privacy
Spread Privacy
C
Cybersecurity and Infrastructure Security Agency CISA
Latest news
Latest news
T
Tor Project blog
I
Intezer
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Project Zero
Project Zero
V2EX - 技术
V2EX - 技术
V
Vulnerabilities – Threatpost
L
Lohrmann on Cybersecurity
C
CXSECURITY Database RSS Feed - CXSecurity.com
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Hacker News: Ask HN
Hacker News: Ask HN
S
Schneier on Security
T
Threat Research - Cisco Blogs
Webroot Blog
Webroot Blog
T
Threatpost
Help Net Security
Help Net Security
W
WeLiveSecurity
Know Your Adversary
Know Your Adversary
WordPress大学
WordPress大学
L
LINUX DO - 最新话题
月光博客
月光博客
PCI Perspectives
PCI Perspectives
小众软件
小众软件
爱范儿
爱范儿
博客园 - Franky
Security Latest
Security Latest
Microsoft Azure Blog
Microsoft Azure Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Stack Overflow Blog
Stack Overflow Blog
Google DeepMind News
Google DeepMind News
Scott Helme
Scott Helme
P
Privacy International News Feed
Y
Y Combinator Blog
P
Palo Alto Networks Blog
M
MIT News - Artificial intelligence
N
Netflix TechBlog - Medium

博客园 - 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一起成长~