快速解决方法:登录oracle用户,执行chmod 777 /u01/app/oracle/admin/目录下所有文件,然后重试expdp命令。网友实测:远程服务器上直接ssh root执行chmod -R 777 /u01/app/oracle/admin/,然后切换oracle用户运行expdp,立即成功,无需重启数据库。
远程处理步骤
1.远程登录服务器,su - oracle;2.检查目录权限ls -la /u01/app/oracle/admin/;3.如果权限不足,exit退出oracle用户,su root,然后chmod -R 777 /u01/app/oracle/admin/;4.返回oracle用户,重新执行expdp命令。
网友分享一
我遇到ORA-31641: 无法创建转储文件 "expdat.dmp",原因是目录权限问题。在远程环境,直接用putty登录root,找到目录/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/log,chmod 777,然后exp成功了。超级有效!
网友分享二
expdp时报错ORA-31641,远程方案:用winscp上传脚本,脚本内容:find /u01 -name "*.dmp" -exec chmod 777 {} \\\; 然后运行expdp。实测在阿里云服务器上完美解决。
网友分享三
故障现象:Data Pump无法创建dump文件。修复:远程执行sqlplus / as sysdba,然后shutdown immediate; startup; 但权限先改chmod 755 /tmp。网友说改777最保险,快速。
网友分享四
在expdp参数中指定directory=DATA_PUMP_DIR,然后检查该目录权限。远程root用户cd /u01/app/oracle/admin,然后chown -R oracle:oinstall . 再chmod -R 775 . 解决了我的问题。
网友分享五
简单粗暴:远程服务器上mkdir -p /backup/oradata && chmod 777 /backup/oradata,然后expdp directory=backup dumpfile=exp.dmp。实测有效,5分钟搞定。
FAQ
Q: 为什么会出现ORA-31641错误?
A: 通常是转储文件目录权限不足或空间不够。
Q: 远程怎么快速改权限?
A: ssh root,chmod -R 777 /u01/app/oracle/admin/。
Q: 需要重启数据库吗?
A: 不需要,直接改权限重试expdp。
Q: Windows远程怎么操作?
A: 用putty登录root执行chmod命令。