12c-nonCDB-linux数据泵impdp导入12c-PDB-win
发布日期:2021-05-08 18:09:38 浏览次数:25 分类:精选文章

本文共 1279 字,大约阅读时间需要 4 分钟。

   ORACLE数据库需要导出,作为备份文件,还原到不定系统上。其中在还原到插接式数据库时,报错ORA-65096:公用用户名或角色无效,造成这个错误的原因是:NON-CDB和CDB的数据库对于用户的处理的不同:CDB数据库创建用户时,用户名前要有C##。

  比如NON-CDB创建用户为:

CREATE USER USER_NAME;

  CDB中创建用户的语句为:

CREATE USER C##USER_NAME;
实验的环境:

源:

OS:LINUX

ORACLE:12.1 NON-CDB

SCHEMA:MATCH

PW:4321

SID:CRMDB

目标:

OS:WIN7

ORACLE:12.1 CDB

SCHEMA:MATCH

EXPDP语句:

EXPDP MATCH/4321@CRMDB DIRECTORY=DATA_PUMP_DIR DUMPFILE=MATCH.DMP LOGFILE=MATCH.LOG SCHEMAS=MATCH
数据泵导入的时候注意事项:

1-先创建表空间

2-执行导入的用户赋予DBA的权限,也可以直接使用system

3-创建路径的名称不要使用已存在的系统路径名称如DATA_PUMP_DIR,可以自己命名名称

4-创建表空间和创建路径在切换到PDB会话下操作

进入oracle命令界面

sqlplus sys/1234 as sysdba

打开插接式数据库

alter pluggable database all open;

修改当前会话

alter session set container=pdborcl;

创建表空间

create tablespace DATA_TB logging datafile 'C:\app\data\DATA_TB.dbf' size 50m autoextend on next 50m maxsize 20480m ;

创建临时表空间

create temporary tablespace DATA_TEMP_TB tempfile 'C:\app\data\DATA_TEMP_TB.dbf' size 50m autoextend on next 50m maxsize 20480m ;

创建路径

create or replace directory MY_DIR as 'C:\app\data';

如果使用的是系统路径名称会报错ORA-65040

给导入用户增加读写路径权限

grant read,write on directory MY_DIR tosystem;

修改tnsnames.ora

查找系统目录下的tnsnames.ora文件

增加红色方框的内容,可以复制ORCL的内容,修改蓝色框内容。保存

验证tns

退出命令行

quit

tnsping pdborcl

数据泵导入

impdp system/1234@PDBORCL DIRECTORY=MY_DIR DUMPFILE=MATCH.dmp logfile=MATCH.log
导入成功

上一篇:sc config
下一篇:oracle循环插入测试数据

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月02日 01时20分39秒