【发布时间】:2015-04-21 10:43:25
【问题描述】:
可插入数据库中的用户(PDB21)用户名 -'JEWBDEV' 和 PWD-abc123,我无法导出备份 .dmp 文件请建议 步骤。
【问题讨论】:
可插入数据库中的用户(PDB21)用户名 -'JEWBDEV' 和 PWD-abc123,我无法导出备份 .dmp 文件请建议 步骤。
【问题讨论】:
- 创建数据泵目录并授予用户权限
SQL> CREATE or REPLACE DIRECTORY dpump_dir as '/home/user1/dumpfiles';
SQL> GRANT READ, WRITE ON DIRECTORY dpump_dir TO JEWBDEV;
- 设置环境(sqlplus外):
setenv DATA_PUMP_DIR DPUMP_DIR
- 导出表(在 sqlplus 之外):
expdp JEWBDEV/abc123@pdb21 tables=TABLE1 dumpfile=table1.dmp logfile=jewbdev_exp.log
注意,在上面的例子中,TABLE1, /home/user1/dumpfiles 之类的一些值是写的,例如,它需要根据您的要求进行更改。
- 导出架构/用户下的所有内容(在 sqlplus 之外):
要导出用户名下的所有内容,您可以跳过提供表名,格式如下:
expdp system/manager@<pluggable_database> file=<user>.dmp owner=<user>
例子:
expdp system/manager@pdb21 file=JEWBDEV.dmp owner=JEWBDEV
另外,请查看this SO 问题以更好地了解 expdp。
- 工作示例
以下步骤在我结束时验证:
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
因此,当您查询 show pdbs 时,请确保您的 pdb 名称为 CDB1_PDB21。如果 PDB 名称为 PDB21,则连接字符串应更改如下:
expdp system/manager@pdb21 file=JEWBDEV.dmp owner=JEWBDEV
另外,请注意,我们正在使用 SYSTEM 用户导出用户/模式 JEWBDEV。
【讨论】: