今天在做数据库升级 迁移表空间的时候偶然遇到这个错误,网上的结论千篇一律都是权限有问题需要修改权限,直到在stack上找到了解决方案,记录一下。
错误的解决方案:
权限有问题,修改directory指定的路径为oracle:oinstall
例如:
oracle数据库中执行:
CREATE OR REPLACE DIRECTORY dump_file AS '/path'; ---创建directory目录
grant read, write on directory dump_file to system; ---给system用户读写权限
如题,修改/path目录权限为 oracle:oinstall 前提是现有这个目录,没有先创建
root用户下执行
chown -R oracle:oinstall /path
但实际上是有问题的,在数据库中创建directory路径需要写全
比如
CREATE OR REPLACE DIRECTORY dump_file AS '/path/';
注意 /path/ 后面的 / 不写会报 ORA-06512: at "SYS.UTL_FILE", line 536