oracle dumpdir目录查看,Oracle 12c pdb使用expdp/impdp导入导出

本文详细介绍了在Oracle 12c的多租户环境中,如何为pdb添加tnsnames,进行数据泵导出和导入操作。包括创建数据泵用户、设置数据泵目录、配置tnsnames.ora,以及通过expdp和impdp命令导出和导入数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

12c推出了可插拔数据库,在一个容器cdb中以多租户的形式同时存在多个数据库pdb。在为pdb作数据泵导入导出时和传统的数据库有少量不一样。sql

1,须要为pdb添加tansnames数据库

2,导入导出时须要在userid参数内指定其tansnames的值,好比 userid=user/pwd@tnsnamebash

数据泵导出session

一、查看当前的SID,查看pdb并切换到容器数据库,这里的pluggable数据库是pdborcl

[oracle@test admin]$ echo $ORACLE_SID

[oracle@test admin]orcl

登陆cdb,查看pdb,oracle

SQL> show con_name

CON_NAME

------------------------------

CDB$ROOT

SQL> show pdbs

CON_ID CON_NAME              OPEN MODE  RESTRICTED

---------- ------------------------------ ---------- ----------

PDB$SEED                      READ ONLY    NO

PDBORCL                       MOUNTED

SQL> alter pluggable database all open;

Pluggable database altered.

SQL> show pdbs

CON_ID CON_NAME              OPEN MODE  RESTRICTED

---------- ------------------------------ ---------- ----------

PDB$SEED                      READ ONLY  NO

PDBORCL                       READ WRITE NO

切换到pdborclapp

SQL> alter session set container=pdborcl;

Session altered.

SQL>

二、查看示例用户scott,之后的schema级别导入导出就使用该用户的数据。

SQL> select owner, table_name from dba_tables where owner='SCOTT';

OWNER                   TABLE_NAME

------------------------------ ----------------------------------------

SCOTT                   SALGRADE

SCOTT                   BONUS

SCOTT                   EMP

SCOTT                   DEPT

三、单首创建一个dba权限的数据泵用户

SQL> grant dba to dp identified by dp;

Grant succeeded.

四、建立一个数据泵目录dp_dir,路径为oracle家目录

SQL> create or re

<think>嗯,用户的问题是关于如何在Oracle 19c中导入来自12c的DMP备份文件,同时需要考虑兼容性问题。我需要结合提供的引用资料来整理出步骤和注意事项。 首先,用户提到了Oracle12c升级到19c并同步数据,引用[1]中的URL格式和引用[3]、[4]中的导入命令可能有帮助。需要确认DMP文件的导出方式,是使用传统的exp还是数据泵expdp。根据引用[3]和[4],imp和impdp的命令都有出现,可能用户有不同情况需要处理。 然后,需要考虑版本兼容性。Oracle的导出导入工具通常有版本限制,比如低版本的exp导出的DMP文件可能无法直接导入到高版本的数据库中。例如,12c的exp导出的文件可能需要使用19c的imp工具,但需要检查是否支持。或者用户可能使用的是数据泵,这时expdpimpdp的版本兼容性更好,因为数据泵的服务器端和客户端版本需要匹配,但可能需要处理元数据的问题。 接下来,步骤方面,可能需要先准备目标数据库,如创建用户、表空间,设置目录对象等。引用[2]提到在CentOS7上安装Oracle19c并使用docker容器,可能需要指导用户如何配置环境,比如目录路径和权限。同时,引用[4]中的impdp命令示例展示了如何导入DMP文件,可能需要详细说明参数的使用,如directory、dumpfile、remap_schema等。 兼容性考虑方面,字符集是否一致,引用[2]中设置了AL32UTF8,需要确保源库和目标库字符集相同。另外,PDB使用,引用[1]中的URL格式使用了orclpdb,可能需要用户确认是否在PDB中操作。还有对象类型的变化,比如12c和19c之间是否有废弃的特性或语法变化,需要提醒用户检查日志。 可能还需要注意数据泵的版本,如果用户使用expdp12c导出,impdp在19c导入,通常可以兼容,但需要注意转换问题。如果用户使用的是传统导出工具exp,则可能需要使用19c的imp工具,并且可能存在不兼容的情况,需要测试。 最后,生成相关问题时要围绕导入DMP文件的步骤、常见错误、性能优化、迁移后的验证等,确保覆盖用户可能遇到的后续问题。</think>### Oracle 19c导入12c DMP文件的方法及兼容性注意事项 #### 1. **版本兼容性验证** - Oracle 19c支持直接导入12c(12.2.0.1及以上版本)生成的DMP文件,但需注意以下情况: - **传统导出工具(`exp`)**:若DMP文件由12c的`exp`生成,需使用19c的`imp`工具导入,但需确保目标库字符集与源库一致[^2][^4]。 - **数据泵(`expdp`)**:推荐使用数据泵工具(`expdp`/`impdp`),因其支持跨版本迁移(需目标库版本≥源库)[^3][^4]。 #### 2. **导入步骤** **方法一:使用`impdp`(推荐)** ```sql -- 在19c中创建目录对象 CREATE DIRECTORY dpdata1 AS '/home/oracle/dumps'; -- 执行导入(需文件已传输到服务器) impdp user/pwd@orclpdb directory=dpdata1 dumpfile=12c_backup.dmp remap_schema=SOURCE_USER:TARGET_USER transform=oid:n ``` - **关键参数**: - `remap_schema`:映射源用户到目标用户。 - `transform=oid:n`:避免对象OID冲突[^4]。 **方法二:使用传统`imp`** ```sql imp user/pwd@orclpdb file=/path/12c_backup.dmp full=y ignore=y ``` - **注意**:传统方式可能不支持某些新特性(如PDB元数据)。 #### 3. **兼容性注意事项** - **字符集**:确保目标库字符集(如`AL32UTF8`)与源库一致[^2]。 - **PDB/CDB架构**:若源库为12c非容器数据库(CDB),需在19c的PDB中导入[^1]。 - **对象类型**:检查LOB字段、分区表等是否兼容。 - **日志分析**:导入后检查`impdp.log`或`imp.log`中的错误,例如: ``` ORA-39142: 不兼容的版本号 5.1 ``` 需通过`expdp`重新导出或升级源库版本。 #### 4. **性能优化** - 使用并行导入:`impdp ... parallel=4` - 调整PGA内存:`ALTER SYSTEM SET PGA_AGGREGATE_TARGET=4G;` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值