解决方案:检查并设置正确的目录权限,确保Oracle进程能访问远程工作目录。执行以下SQL:ALTER SESSION SET workarea_size_policy=manual; 然后设置pga_aggregate_target=0; 重启数据库后,远程访问路径添加共享目录权限。网友推荐:用symlink创建本地链接到远程目录,chmod 755 /opt/oracle/workdir,chown oracle:oinstall /opt/oracle/workdir。
网友分享1
我遇到ORA-15560是因为远程服务器工作目录权限不足,修复方法是登录远程服务器,执行mkdir -p /u01/app/oracle/admin,chmod 777 /u01/app/oracle/admin,然后在数据库中创建目录对象:CREATE OR REPLACE DIRECTORY WORK_DIR AS '/u01/app/oracle/admin'; GRANT READ,WRITE ON DIRECTORY WORK_DIR TO PUBLIC; 测试后问题解决。
网友分享2
高效方案:使用Oracle Data Pump时,确保dmp文件路径在utl_file_dir参数中注册。sqlplus下:ALTER SYSTEM SET utl_file_dir='/tmp,/u01' SCOPE=SPFILE; 然后重启实例。远程处理就用NFS挂载共享目录,避免权限问题。
网友分享3
报错原因是外部表或Data Pump工作目录访问失败。解决方案在dbms_scheduler.set_attribute中指定job_action路径,确保路径存在且oracle用户可读写。测试代码:BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'test_job', job_type => 'EXECUTABLE', job_action => '/bin/ls', number_of_arguments => 1, enabled => FALSE); END; / 调整路径权限后OK。
网友分享4
远程环境修复:配置ssh无密码登录oracle用户,脚本中用scp复制文件到远程workdir,然后在job中调用。或者直接用Oracle Wallet配置远程连接,避免目录访问问题。很多人推荐这个,简单高效。
网友分享5
我的经验:ORA-15560多因SELinux阻挡,临时关闭selinux:setenforce 0,然后永久编辑/etc/selinux/config SELINUX=disabled。重启后检查目录:ls -ld /oracle/work,重设owner为oracle:dba。
网友分享6
用expdp/impdp时加DIRECTORY参数指定已授权目录:expdp user/pass DIRECTORY=DATA_PUMP_DIR DUMPFILE=exp.dmp LOGFILE=exp.log。创建目录:CREATE DIRECTORY DATA_PUMP_DIR AS '/backup'; GRANT READ,WRITE ON DIRECTORY DATA_PUMP_DIR TO user; 远程共享目录用smb或nfs mount。
网友分享7
FAQ:
Q: ORA-15560是什么原因?
A: 通常是工作目录权限不足或路径不存在,特别是远程访问时。
Q: 如何快速检查权限?
A: su - oracle,然后ls -la /path/to/workdir,看是否可读写。
Q: 重启数据库必须吗?
A: 不必须,动态参数改后生效,但SPFILE需重启。
Q: NFS远程怎么配?
A: 在远程服务器exportfs -a,本地mount -t nfs server:/share /mnt。
Q: 还有其他报错类似吗?
A: ORA-29280类似,也是UTL_FILE访问问题。