oracle12c在一个容器cdb中以多租户的形式同时存在多个数据库pdb,所以跟12c之前的导出略有不同
源库与目标库必须有针对导入导出pdb的tns配置
源库操作
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SYS@shgxdb>alter session set container=esb;
Session altered.
SYS@shgxdb>select owner, table_name from dba_tables where owner='ESBDB';
OWNER
--------------------------------------------------------------------------------
TABLE_NAME
--------------------------------------------------------------------------------
ESBDB
EOS_QRTZ_TRIGGERS
ESBDB
EOS_QRTZ_JOB_DETAILS
ESBDB
EOS_QRTZ_CALENDARS
OWNER
--------------------------------------------------------------------------------
TABLE_NAME
--------------------------------------------------------------------------------
ESBDB
EOS_QRTZ_BLOB_TRIGGERS
ESBDB
DI_PROCESS_MODEL
ESBDB
COMP_WIN7_CONFIG
OWNER
--------------------------------------------------------------------------------
TABLE_NAME
--------------------------------------------------------------------------------
ESBDB
CAP_RULE
118 rows selected.
创立一个dba权限用户用于导出
grant dba to jason identified by jason;
创建逻辑目录
SQL> create or replace directory dp_dir as '/home/oracle';
Directory created.
SQL> exit
授权对逻辑目录的读写权限,如果用户为dba权限可以忽略
SQL> grant read,write on directory dp_dir to dp;
Grant succeeded.
源库添加pdb tns
esb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle12c-70)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = esb)