如何从oracle 12C DB导出.DMP文件

时间:2015-04-21 10:43:26

标签: plsqldeveloper oracle12c

  

用户在可插拔数据库(PDB21)用户名 - ' JEWBDEV'和   PWD-abc123,我无法导出备份.dmp文件请建议   步骤。

1 个答案:

答案 0 :(得分:0)

  
      
  1. 创建datapump目录并向用户授予权限
  2.   
SQL> CREATE or REPLACE DIRECTORY dpump_dir as '/home/user1/dumpfiles';
SQL> GRANT READ, WRITE ON DIRECTORY dpump_dir TO JEWBDEV;
  
      
  1. 设置环境(sqlplus外部):
  2.   
setenv DATA_PUMP_DIR DPUMP_DIR
  
      
  1. 导出表(sqlplus外部):
  2.   
expdp JEWBDEV/abc123@pdb21 tables=TABLE1 dumpfile=table1.dmp logfile=jewbdev_exp.log

请注意,在上面的例子中,例如TABLE1, /home/user1/dumpfiles等一些值被编写,需要根据您的要求进行更改。

  
      
  1. 在架构/用户(sqlplus外部)下导出所有内容:
  2.   

要导出用户下的所有内容,您可以跳过给出表名,以下格式为:

expdp system/manager@<pluggable_database> file=<user>.dmp owner=<user>

示例:

expdp system/manager@pdb21 file=JEWBDEV.dmp owner=JEWBDEV

另外,请检查this SO问题,以便更好地了解expdp。

  
      
  1. 工作示例
  2.   

以下步骤在我的结尾验证:

SQL> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 CDB1_PDB1                      READ WRITE NO

SQL> alter session set container=cdb1_pdb1;             
Session altered.

SQL> CREATE or REPLACE DIRECTORY dpump_dir as '$T_WORK';
Directory created.

以下内容应该在sqlplus外部运行:

expdp system/manager@cdb1_pdb1 file=scott.dmp owner=SCOTT

在你的情况下,它将是:

expdp system/manager@cdb1_pdb21 file=JEWBDEV.dmp owner=JEWBDEV

因此,在查询CDB1_PDB21时,请确保您的pdb名称为show pdbs。如果PDB名称为PDB21,则连接字符串应如下所示更改:

expdp system/manager@pdb21 file=JEWBDEV.dmp owner=JEWBDEV

另请注意,我们正在使用SYSTEM用户导出用户/架构JEWBDEV。