当我在 Oracle 12c SE2 中运行此命令时:
impdp system/Oracle_1@pdborcl directory=DATA_PUMP_DIR dumpfile=mydb.dmp nologfile=Y
我明白了:
ORA-39001: 无效的参数值
ORA-39000: 错误的转储文件规范
ORA-39088: 目录名称 DATA_PUMP_DIR 无效
我们过去一直将其导入 11g。
我该如何解决这些错误?
使用 Data Pump 将数据移动到 CDB 时,请注意以下要求:
...
- 默认数据泵目录对象 DATA_PUMP_DIR 不适用于 PDB。您必须在要导出或导入的 PDB 中定义一个显式目录对象。
您需要在 PDB 中定义自己的目录对象,您的用户(此处为系统)对其具有读/写权限。
create directory my_data_pump_dir as 'C:\app\OracleHomeUser1\admin\orcl\dpdump';
grant read, write on directory my_data_pump_dir to system;
它可以是 DATA_PUMP_DIR 指向的同一个操作系统目录,你只需要一个单独的目录对象。但我已经使用了你说你喜欢的路径,来自对上一个问题的评论。
然后将导入修改为:
... DIRECTORY=my_data_pump_dir DUMPFILE=mydb.dmp