欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Oracle PDB下的expdp/impdp使用

程序员文章站 2024-03-13 16:34:57
...

PDB的导入导出:

描述:

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

1,需要为pdb添加tansnames

2,导入导出时需要在userid参数内指定其tansnames的值,比如 userid=user/[email protected]

实验流程:

连接至该PDB:

[[email protected] ~]$ sqlplus sys/[email protected] as sysdba

SQL> show pdbs;
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 PDB1                           READ WRITE NO
         
         

创建目录对象:

[[email protected] ~]$ mkdir pdb1_expdp
SQL>create  directory pdb1_dir as  '/home/oracle/pdb1_expdp';
//如果使用PDB下其他用户执行导出的话,需要给该用户授读写权限
SQL> grant read,write on directory pdb1_dir to xxx;
//本次使用system用户导出

配置PDB tnsname:

pdb1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.199.243)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pdb1)
    )
  )

执行导出:

全库导出:
[[email protected] admin]$expdp system/[email protected] directory=pdb1_dir dumpfile=pdb1.dmp logfile=pdb1.log full=y
按用户导出:
[[email protected] admin]$expdp system/[email protected] directory=pdb1_dir dumpfile=pdb1_hr.dmp logfile=pdb1_hr.log schema=hr
按表空间导出:
[[email protected] admin]$expdp system/[email protected] directory=pdb1_dir dumpfile=pdb1.dmp logfile=pdb1.log tablespace=users
...皆与非CDB相同

执行导入:

全库导入:
[[email protected] admin]$impdp system/[email protected] directory=pdb1_dir dumpfile=pdb1.dmp logfile=pdb1.log full=y
按用户导入:
[[email protected] admin]$impdp system/[email protected] directory=pdb1_dir dumpfile=pdb1_hr.dmp logfile=pdb1_hr.log schema=hr
按表空间导入://表空间需事先创建好
[[email protected] admin]$impdp system/[email protected] directory=pdb1_dir dumpfile=pdb1.dmp logfile=pdb1.log tablespace=users
...皆与非CDB相同

CDB的导入导出:

[[email protected] admin]$ sqlplus / as sysdba
SQL> create  directory cdb as  '/home/oracle/cdb';
全库导出:
[[email protected] ~]$ expdp system/oracle directory=cdb dumpfile=cdb.dmp logfile=cdb.log full=y
通过将CDB.DMP与PDB的导出文件进行大小比对发现仅导出了根容器
所以可以得出CDB的导出不包含PDB