ORA-20100为FND_FILE创建文件o0003167.tmp失败

问题描述:由于ORA-20100:为FND_FILE创建文件o0003167.tmp失败。

 

出问题的原因总结:

1.查看$APPLPTMP系统环境变量的值,一般是/usr/tmp,需要保证该文件夹是存在的。

2.查看utl_file_dir数据库参数,其第一个值也应该为/usr/tmp;

SELECT * FROM V$PARAMETER V WHERE v.NAME='utl_file_dir';

SQL> SHOW PARAMETER UTL_FILE

3.查看该文件夹的权限,该文件夹必须为应用用户和数据库用户都具有读写权限。

4.通过exec FND_FILE.PUT_LINE(FND_FILE.LOG, 'THIS IS A TEST');进行测试,查看是否能输入文件。

5.若以上四个步骤正常,一台服务器上运行了多套环境时,没有修改$APPLPTMP的值,导致两个环境都往/usr/tmp写东西,在第一个环境的序列比较超前时,它已经在该目录里面创建了o0003167.tmp,第二个环境发起请求的时候,它再创建o0003167.tmp的时候就 会创建失败。

当一台服务器上运行了多套环境时,不能使用/usr/tmp作为$APPLPTMP,须定义成各自的目录。且该目录须在数据库参数utl_file_dir中。

解决办法:

1.$APPLPTMP系统环境变量若不正确,或路径不存在:

去建立相应的目录,或者修改$APPLPTMP;

因为 $APPLPTMP 变量是存在于环境变量文件 .bash_profile中,其中指向 .env 文件,而 .env 文件是由 $CONTEXT_FILE 而来, 为避免adautocfg.sh 之后被还原, 我们修改 $CONTEXT_FILE 中的 s_applptmp 变量的值为某个目录,并确保目录是存在的且有权限的。

2.utl_file_dir参数值不正确,或路径不存在:

去建立相应的目录,或者修改utl_file_dir参数;

数据库的 utl_file_dir 第一个值也需要修改为与$APPLPTMP系统环境变量一样的目录,并确保在数据库服务器中存在且有权限读写。

utl_file_dir参数一般会有好几个值,需要对每个值都做检查(是否有读写权限,目录是否有效)。

 

若数据库使用spfile,则用以下步骤修改utl_file_dir:

① 以管理员用户(sys/password@sid as sysdba)登录数据库服务器

② SQL> alter system set utl_file_dir='…', '…' scope=spfile;

System altered.

SQL> shutdown immediate;

SQL> startup;

SQL> show parameter utl_file

 

(笔者原创文章,转载请注明出处:https://blog.csdn.net/LFCuiYs)谢谢!

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值