98-Oracle 11g dmp导入19c 19.26 PDB

记录一次客户端形式oracle11g数据迁移19c操作 因oracle11g数据库官方平台不再负责维护升级,公司总部要求对11g数据迁移至19c数据库中。 阅读详情

Oracle 11g DMP文件导入19c PDB01,需要关注字符集、是否包含BIGFILE,源端和目标的兼容度,需要在expdp时候附加参数。

首选方案​:PDB 字符集 = AL32UTF8 + 国家字符集 = AL16UTF16

​优势​:完美兼容 CDB、支持多语言扩展、符合国家标准,长期维护成本低。

​次选方案​:仅当确定无多语言需求时,PDB 可选 ZHS16GBK(国家字符集仍为 AL16UTF16)。

技术先进性推荐AL32UTF8,而现实部署中ZHS16GBK是很多历史遗留、成本与风险权衡的结果。

实操填坑:

  • 勿直接修改 PDB 字符集(ALTER DATABASE CHARACTER SET可能导致数据损坏),最好通过重建迁移。
  • 客户端 NLS_LANG 需与 PDB 字符集一致(如 AL32UTF8 的 PDB 对应 NLS_LANG=AMERICAN_AMERICA.AL32UTF8)

一、环境检查与准备工作​

  1. ​版本兼容性验证​
  • 检查DMP文件导出方式:
    • 若为exp导出,需使用imp导入(不推荐,可能报版本错误)。
    • 若为expdp导出,需用impdp导入(推荐)。
  • ​关键脚本​:
-- 查看DMP文件头信息(需在服务器执行),提取前 1MB 数据(避免读取大文件)
dd if=etl_mgr_11g.DMP of=header.dmp bs=1M count= 
strings header.dmp | grep -E "Version|EXPORT|Character set"
--查询直接查询兼容性参数
SELECT name, value AS compatible_version 
FROM v$parameter 
WHERE name = 'compatible';
--CDB-PDB
NAME
--------------------------------------------------------------------------------
COMPATIBLE_VERSION
--------------------------------------------------------------------------------
compatible
19.0.0

--确认核心组件(如Catalog)的版本与compatible参数一致,避免功能冲突
SELECT comp_name, version, status 
FROM dba_registry 
WHERE comp_id = 'CATALOG';
若显示V11.02.00则兼容19c;若为更高版本,需用expdp重导并添加version=11.2.0.1.0参数。

字符集与表空间检查

--确认字符集一致(避免乱码):

SELECT value FROM nls_database_parameters WHERE parameter = 'NLS_CHARACTERSET';

--- 检查表空间是否充足:(建议预留1.5倍DMP文件大小空间)

SELECT tablespace_name, sum(bytes)/1024/1024 AS "Size_MB" 
FROM dba_data_files GROUP BY tablespace_name;

二、文件传输与目录设置​

上传DMP文件​
  • 将DMP文件上传至19c服务器目录(如/u01/app/oracle/admin/testcdb/dpdump)。
  • ​权限修正​:
chown oracle:oinstall /u01/app/oracle/admin/testcdb/dpdump/etl_mgr_11g.DMP
chmod 660 /u01/app/oracle/admin/testcdb/dpdump/etl_mgr_11g.DMP
--或者
chmod -x /u01/app/oracle/admin/testcdb/dpdump/etl_mgr_11g.DMP
su -oracle
[oracle@OL10:/u01/app/oracle/admin/testcdb/dpdump]$ ll
总计 27396
drwxr-x--- 2 oracle oinstall        6  6月28日 13:30 389C0CA85DCB2115E0630B14170AF1E6
drwxr-x--- 2 oracle oinstall        6  6月28日 13:38 389C33B592EF2924E0630B14170AAE49
-rw-r----- 1 oracle oinstall      160  6月28日 13:30 dp.log
-rw-r--r-- 1 root   root     28049408  6月28日 16:21 etl_mgr_11g.DMP

创建Directory对象 

CREATE OR REPLACE DIRECTORY dp_pdb01_dir AS '/u01/app/oracle/admin/testcdb/dpdump/';
GRANT READ, WRITE ON DIRECTORY dp_pdb01_dir TO system; -- 授权给操作用户
--
SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 PDB01                          READ WRITE NO
SQL> CREATE OR REPLACE DIRECTORY dp_pdb01_dir AS '/u01/app/oracle/admin/testcdb/dpdump/';
GRANT READ, WRITE ON DIRECTORY dp_pdb01_dir TO system;

Directory created.
SQL>
Grant succeeded.

三、用户与表空间配置​

创建目标用户

CREATE USER etl_mgr IDENTIFIED BY "Oracle_4U" 
DEFAULT TABLESPACE users QUOTA UNLIMITED ON users;
GRANT CONNECT, RESOURCE TO etl_mgr;
--
SQL> CREATE OR REPLACE DIRECTORY dp_pdb01_dir AS '/u01/app/oracle/admin/testcdb/dpdump/';
GRANT READ, WRITE ON DIRECTORY dp_pdb01_dir TO system;
Directory created.
SQL>
Grant succeeded.
SQL> CREATE USER etl_mgr IDENTIFIED BY "Oracle_4U"
    DEFAULT TABLESPACE users QUOTA UNLIMITED ON users;
GRANT CONNECT, RESOURCE TO etl_mgr;
User created.
SQL>
Grant succeeded.

​四、执行数据泵导入​

基础导入命令

impdp system/oracle@localhost:1521/PDB01 \
  DIRECTORY=dp_pdb01_dir \
  DUMPFILE=etl_mgr_11g.DMP \
  SCHEMAS=etl_mgr \
  REMAP_SCHEMA=etl_mgr:etl_mgr \


----
  --
Import: Release 19.0.0.0.0 - Production on Sat Jun 28 16:33:12 2025
Version 19.26.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Master table "SYSTEM"."SYS_IMPORT_SCHEMA_01" successfully loaded/unloaded
import done in AL32UTF8 character set and AL16UTF16 NCHAR character set
export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
Warning: possible data loss in character set conversions
Starting "SYSTEM"."SYS_IMPORT_SCHEMA_01":  system/********@localhost:1521/PDB01 DIRECTORY=dp_pdb01_dir DUMPFILE=etl_mgr_11g.DMP SCHEMAS=etl_mgr REMAP_SCHEMA=etl_mgr:etl_mgr
Processing object type SCHEMA_EXPORT/USER
ORA-31684: Object type USER:"ETL_MGR" already exists

Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TYPE/TYPE_SPEC
Processing object type SCHEMA_EXPORT/TYPE/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE
Processing object type SCHEMA_EXPORT/TABLE/TABLE

参数说明 

​参数​

作用​

TABLE_EXISTS_ACTION=REPLACE

覆盖已存在的表(慎用)

VERSION=11.2

兼容低版本导出文件

EXCLUDE=STATISTICS

跳过统计信息(加速导入)

​五、常见错误与解决方案​

  1. ​ORA-39142:版本不兼容​​方案​:导出时添加version=11.2.0.1.0
  2. ​ORA-02374:表空间不足​​方案​:扩展表空间或启用AUTOEXTEND
  3. ORA-00959:表空间不存在​​方案​:按DMP文件中的表空间名重建(参考导出日志)
  4. ​字符集冲突​​方案​:强制转换字符集(谨慎) 

附-重建PDB字符集的选择:

--
CREATE PLUGGABLE DATABASE pdb_name 
  ADMIN USER pdbadmin IDENTIFIED BY password
  DEFAULT TABLESPACE users DATAFILE '/path/to/users01.dbf' SIZE 1G
  -- 主字符集(二选一)
  CHARACTER SET = AL32UTF8     -- 推荐多语言场景
  -- CHARACTER SET = ZHS16GBK   -- 仅纯中文场景
  -- 国家字符集(固定选择)
  NATIONAL CHARACTER SET AL16UTF16; 
--验证字符集
-- 在 PDB 中执行
SELECT parameter, value 
FROM nls_database_parameters 
WHERE parameter IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
--
 SELECT parameter, value
    FROM nls_database_parameters
    WHERE parameter IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');

PARAMETER
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
NLS_NCHAR_CHARACTERSET
AL16UTF16

NLS_CHARACTERSET
AL32UTF8

AL16UTF16 ​不是​ PDB 的主字符集选项,而是国家字符集,专用于 NCHAR 等数据类型,与主字符集独立共存。

ZHS16GBK 与 AL32UTF8 ​不兼容​:存储越南语“ế”等字符时,ZHS16GBK 会丢失数据(替换为 ?),而 AL32UTF8 可完整存储。

11.2.0.4如何升级到19c 11.2.0.4一直以来都是最稳定,应用最广方的oracle数据库版本,但是官方对其的支持仅仅到2018年12月31日就结束了,如果想要获得11.2.0.4之后的补丁,则必须和Oracle签订扩展服务协议,而且需要另外收费。随着稳定且强大的19c出现,这里建议大家可以考虑将11g升级到19c,获得更好的数据库服务以及体验 今天,就为大家介绍如何基于Linux6原地升级11g到19c 一 备份 使用rman备份源库 使用rman备份源库,做好回退准备 rman target / run { alloc 阅读详情

相关推荐

oracle11g数据库迁移到oracle19G总结和步骤

目录参考:/u01/app/oracle/product/19.2.0/db_1/network/admin。方案3:给/home/oracle/impdp文件授权每个层级都加上:chmod 777 文件名。报错:ORA-65096: 公用用户名或角色名无效 -》oracle要C##开头。第一个路径:是pdbseed的存放文件目录。多加一个实例:原来基础,复制一个,改名称即可。第二个路径:是新建pdb数据库存放文件目录。方案1:查询当前容器是否有该路径。方案2:确定路径是否正确:/和\。

qq_45216691的博客 2160

Oracle数据库迁移11g到19c

1.逻辑目录创建 --登陆数据库 sqlplus as sysdba --创建目录,用于把数据库文件导出到目录下,目录需要提前创建好 create directory dir_dump as 'D:\hbdata'; --把权限赋予你导出时用的账号 grant read,write on directory dir_dump to hb; --推出 exit 2.数据库导出 下面是几种导出方式,一般选择导出用户即可。 1)导出用户 expdp scott/tiger@orcl schema

qq_31613985的博客 1万+

Linux下Oracle 11g升级19c实录

Linux下Oracle 11g升级19c实录

听雪楼主 1777

数据库管理-第126期 如何将数据从11g弄到19c上(202301223)

如何将数据从11g弄到19c上

yhw1809的博客 2370

把oracle11g数据导入19c,oracle11g2oracle11g && oracle11g2oracle19c

最近在搞oracle 数据库迁移,全量增量。好久没有搞oracle了,东西忘的差不多,感觉还是整理一下,以后可以直接使用。oralce 11g 全量增量到 异地oralce 11g 和 oralce 19c 脚本。使用三种方式,exp,expdp,rman。oracle11g2oracle11g11g211g-环境如下本来想两边都2G 内存,奈何没钱买好电脑。11g211g-创建用户两边同时创建o...

weixin_36272622的博客 3051

Oracle 9i 11g历史库升级迁移数据至19c CDB.docx

Oracle 9i 11g历史库升级迁移数据至19c CDB

oracle数据泵从11g迁移数据库到19c的PDB(expdp/impdp)

create or replace directory expdp as '目录';并将导出的DMP文件存放到该目录下。1、oracle11g数据导出。2、数据导入Oracle19C。–使用impdp导入数据。--统计表空间文件大小。–查询容器中所有pdb。–切换到pdb数据库。

snakeeys的博客 2173

THB6128步进电机驱动芯片介绍

THB6128芯片也称为步进电机驱动芯片,采用BiCDMOS工艺,IC管脚间距为1mm的小型MFP30KR封装而成。

weichen_78的博客 7182

ORACLE-11G-RAC至ORACLE-19C-RAC升级实战

本次升级为 Linux 异机同平台跨版本,由Oracle 11G 两节点RAC集群迁移并升级至Oracle 19C 两节点RAC集群。从 19c 的 Oracle Home 下拷贝以下脚本到源库的 Oracle Home(11.2) 下。从 19c 的 Oracle Home 下拷贝以下脚本到源库的 Oracle Home(11.2) 下。从 19c 的 Oracle Home 下拷贝以下脚本到源库的 Oracle Home(11.2) 下。接下来就是升级数据字典----- @?

gaoda00136的博客 4435

python sci sci-hub 爬论文

sci-hub 爬虫 后续加入对于时间的排序,下载最新文献 参考: https://www.guanjihuan.com/archives/6846 https://blog.csdn.net/czh2637750821/article/details/115508922

weixin_42783619的博客 3542

Windows应急响应实战:灰鸽子木马检测与清除全流程解析

远程控制木马(RAT)是一种基于客户端/服务器(C/S)架构的恶意软件,攻击者通过它能够远程操控受害主机,实现屏幕监控、文件窃取、键盘记录等操作,对个人隐私与企业数据安全构成严重威胁。其技术原理通常涉及进程注入、网络通信、持久化机制等核心环节,在应急响应中具有极高的分析价值。掌握此类木马的检测与清除方法,是Windows系统安全防护与事件处置的基本功。本文以经典的灰鸽子木马为例,结合进程分析、网络排查、注册表检查等实战技术,系统讲解从行为识别、痕迹取证到彻底清除的完整操作流程,并涵盖Rootkit对抗、无文

weixin_30521161的博客 415

Oracle 11g 升级到 19c 需要关注的几个问题

作者 | JiekeXu来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT)如需转载请联系授权 |(个人微信 ID:JiekeXu_DBA)大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 Oracle 11g 升级到 19c 需要关注的几个问题,欢迎点击上方蓝字“JiekeXu DBA之路”关注我的公众号,标星或置顶,更多干货第一时间到达!今天是 ...

JiekeXu的博客 4010

华为OD机试双机位C卷-流浪地球(Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷【流浪地球】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,并提供在线OJ模拟做题。华为OD机试真题【流浪地球】。

qq_45776114的博客 3140

Golengate管理--OGG|利用 OGG 迁移 Oracle11g 到 19C

核心思想:利用数据泵导入导出功能初始化数据,然后通过 OGG 同步增量数据。源 端:192.168.217.86 数据库为Oracle 11204 版本,端口1521 服务名:test目标端:192.168.217.87 数据库为Oracle 19.3 版本,端口1521 服务名:testogg测试数据导出。

oradbm的博客 2135

(三十九)Flask 多应用架构(Multiple Apps)与 DispatcherMiddleware 实战解析

(三十九)Flask 多应用架构(Multiple Apps)与 DispatcherMiddleware 实战解析

孤寒者的博客 1万+

RK3588网卡出现丢包或者带宽不足的问题验证排查

注意除了有最大的TCP数据接收缓冲,还有/proc/sys/net/core/wmem_max — 最大的TCP数据发送缓冲可以调整,这里暂时没用到,针对具体需要可适当调整。比如把ethx接口中断从默认的cpu0迁移到其它cpu,例如将eth0中断234移到cpu7 (10是16进制, cpu0 =3588的cpu有8个核,4个A55(小核)+4个A76(大核),可以找到对应中断 将中断从默认cpu0核切到cpu7。tcp_rmem:单位是字节,接收缓存区大小,缓存从对端接收的数据,后续会被应用程序读取。

Android/Linux驱动开发传帮带学习,让驱动入门门槛更低! 2028

OGG|使用 OGG19c 迁移 Oracle11g 到 19C(第二版)

作者 | JiekeXu来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT)如需转载请联系授权 |(个人微信 ID:JiekeXu_DBA)大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看使用 OGG19c 迁移 Oracle11g 到 19C(第二版),欢迎点击上方蓝字“JiekeXu DBA之路”关注我的公众号,标星或置顶,更多干货第一时间到达!...

JiekeXu的博客 2314

从0入门LocoTrack:6倍加速的SLAM追踪新范式实战指南

传统点追踪方法(如CorrTracker、TAPIR)在处理大规模场景或实时任务时,要么精度不足,要么速度太慢。而LocoTrack通过“局部4D相关性”和“Transformer全局关联”的创新设计,实现了精度与速度的双重突破速度:比现有SOTA方法快6倍,吞吐量高达数万点/秒;精度:在Kinetics、DAVIS等数据集上,定位误差显著低于传统方法;鲁棒性:能应对低纹理、动态场景等复杂环境,这是传统方法的“噩梦场景”。

m0_71589036的博客 95

Oracle数据泵跨大版本迁移数据库

🦈:将测试环境中一台Oracle 11g数据库迁移到另一台新搭建的19c数据库中。🤔:由于是跨数据库大版本,无法通过RMAN进行备份恢复来迁移数据库。数据库整体数据量较小,约1T左右,source库有充足的停机时间,因此可以采用数据泵技术来迁移数据库。

Sebastien23的博客 3417

华为OD机试真题-查找单入口空闲区域(Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【查找单入口空闲区域】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 查找单入口空闲区域。

qq_45776114的博客 1268

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

OGG|利用 OGG 迁移 Oracle11g 到 19C

作者 | JiekeXu来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT)大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来学习利用 OGG 迁移 Oracle11g 到 19c,欢迎点击上方蓝字关注我,标星或置顶,更多干货第一时间到达!由于篇幅问题,这里拆开来写,上篇 OGG 基础知识可点此查看,本篇正式介绍 OGG 部署以及数...

JiekeXu的博客 5365

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

12c向19c迁移:使用数据泵(impdp)+dblink做全量迁移

这可能是因为源数据库导出表时,同时有数据更新,此时被导出的表的数据会放到undo表空间里,如果导出时间过长,undo空间的数据得不到释放,undo空间不够用,就会有这个错误。数据泵默认会迁移表的统计数据,但是在测试中发现,迁移统计数据会出错(可能是权限原因),由于统计数据不需要完全与源数据库相同,迁移时可以不迁移统计数据,而是在迁移后,在目标数据库重新收集统计数据,使用impdp选项exclude=statistics排除导出统计数据。实际上,先导入所有被外键引用的主表,再导入引用它们的子表,这样也可以。

howard_shooter的博客 4039

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

一个升级迁移11g到19c使用xtts遇到的小问题

xtts

sqlora的专栏 923

Oracle导入导出 exp命令和imp命令 expdp命令和impdp命令 19c导出兼容11g版本的dmp然后使用11g导入dmp

Oracle导入导出 exp命令和imp命令 expdp命令和impdp命令 19c导出兼容11g版本的dmp然后使用11g导入dmp

道友 1003

Oracle数据库升级__数据移植步骤

1.数据移植前置条件oracle11g源库 ip 服务器root用户 登录操作权限 数据库dba权限用户 登录操作权限oracle19c目标库: 主库/备库 ip服务器root用户 登录操作权限 数据库dba权限用户 登录操作权限2.移植前服务停止将相关服务停止3.从旧生产数据库导出数据3.1 新库19c数据库服务器#切换oracle用户$su - oracle#创建移植数据存储目录$mkdir -p /oradata/dmpData3.2 源库1

footbridge的博客 585

Oracle-expdp方式升级19c问题合集

最近在帮客户进行Oracle11g到19c版本的升级,使用expdp导用户的方式进行迁移,在升级过程中遇到了些错误问题,把当时的问题分析过程记录了下来,分享给大家。

sinat_36757755的博客 6122
上一篇: 97-OracleLinux 10安装-DB 19c 19.26单实例
下一篇: 99-Oracle APEX-ORDS安装准备
远方1609
博客等级 码龄22年 577粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值