您的位置:首页 > 运维架构 > Linux

12c-nonCDB-linux数据泵impdp导入12c-PDB-win

2017-10-16 10:11 232 查看
   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

导入成功

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  NON-CDB PDB impdp 12c