用户在可插拔数据库(PDB21)用户名 - ' JEWBDEV'和 PWD-abc123,我无法导出备份.dmp文件请建议 步骤。
答案 0 :(得分:0)
- 创建datapump目录并向用户授予权限
醇>
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
因此,在查询CDB1_PDB21
时,请确保您的pdb名称为show pdbs
。如果PDB名称为PDB21
,则连接字符串应如下所示更改:
expdp system/manager@pdb21 file=JEWBDEV.dmp owner=JEWBDEV
另请注意,我们正在使用SYSTEM用户导出用户/架构JEWBDEV。