12c推出了可插拔数据库,在一个容器cdb中以多租户的形式同时存在多个数据库pdb。在为pdb做数据泵导入导出时和传统的数据库有少许不同。
1,需要为pdb添加tansnames
2,导入导出时需要在userid参数内指定其tansnames的值,比如 userid=user/pwd@tnsname
数据泵导出
1、查看当前的SID,查看pdb并切换到容器数据库,这里的pluggable数据库是pdborcl[oracle@test admin]$ echo $ORACLE_SID
[oracle@test admin]orcl
登录cdb,查看pdb,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
切换到pdborclSQL> alter session set container=pdborcl;
Session altered.
SQL>
2、查看示例用户scott,以后的schema级别导入导出就使用该用户的数据。SQL> select owner, table_name from dba_tables where owner='SCOTT';
OWNER TABLE_NAME
------------------------------ ----------------------------------------
SCOTT SALGRADE
SCOTT BONUS
SCOTT EMP
SCOTT DEPT
3、单独创建一个dba权限的数据泵用户SQL> grant dba to dp identified by dp;
Grant succeeded.
4、创建一个数据泵目录dp_dir,路径为oracle家目录SQL> create or replace directory dp_dir as '/home/oracle'