ORA-09925 Linux-x86_64 Error: 2: No such file or directory

来源:互联网 发布:品牌营销咨询公司知乎 编辑:程序博客网 时间:2024/06/07 13:27
原文链接:http://blog.csdn.net/evils798/article/details/8223303
[javascript] view plaincopy
  1. DBCA删除数据库所有实例后,本想用RMAN duplicate方式克隆DB,因此在$ORACLE_BASE目录下创建了相关的目录admin/dupl/adump ,admin/dupl/dpump   
  2.   
  3.  在使用sqlplus正常连接空闲实例,手贱却执行了startup命令,oracle果断出现ORA-09925错误  
  4.   
  5.   
  6. [oracle@tips ~]$ sqlplus  / as sysdba  
  7.   
  8. SQL*Plus: Release 11.2.0.3.0 Production on Mon Nov 26 04:27:58 2012  
  9.   
  10. Connected to an idle instance.  
  11.   
  12. SQL> startup  
  13. ORA-09925: Unable to create audit trail file  
  14. Linux-x86_64 Error: 2: No such file or directory  
  15. Additional information: 9925  
  16. SQL> exit  
  17.   
  18.   
  19. [oracle@tips ~]$ sqlplus  / as sysdba  
  20.   
  21. SQL*Plus: Release 11.2.0.3.0 Production on Mon Nov 26 04:18:28 2012  
  22.   
  23. Copyright (c) 1982, 2011, Oracle.  All rights reserved.  
  24.   
  25.   
  26. ERROR:   
  27. ORA-09925: Unable to create audit trail file   
  28. Linux-x86_64 Error: 2: No such file or directory   
  29. Additional information: 9925   
  30. ORA-01075: you are currently logged on  
  31.   
  32. Enter user-name:   
  33. ERROR:  
  34. ORA-01017: invalid username/password; logon denied  
  35.   
  36.   
  37. 解决思路  
  38. 1.首先确定$ORACLE_BASE目录下的adump是否存在,文件名,路径是否正确,权限是否正确  
  39. admin下的格式是$ORACLE_SID/adump  
  40.   
  41. [oracle@tips ~]$ cd $ORACLE_BASE  
  42. [oracle@tips oracle]$ ls  
  43. admin  cfgtoollogs  checkpoints  diag  fast_recovery_area  oradata  product  
  44. [oracle@tips oracle]$ cd admin/dupl/  
  45. adump/  dpdump/   
  46. [oracle@tips oracle]$ cd admin/dupl/  
  47. [oracle@tips dupl]$ ls -ld adump/  
  48. drwxr-xr-x 2 oracle oinstall 4096 Nov 26 04:19 adump  
  49.   
  50. 排除adump目录有无问题,排除adump权限问题  
  51.   
  52. 2.检查是否空间adump使用的分区是否已经过满  
  53. [oracle@tips dupl]$ df -h   
  54. Filesystem            Size  Used Avail Use% Mounted on  
  55. /dev/sda1              34G   24G  8.0G  75% /  
  56. /dev/sda2              99M  5.8M   88M   7% /home  
  57. tmpfs                 1.0G     0  1.0G   0% /dev/shm  
  58. /dev/sdb1              60G  4.6G   52G   9% /u01  
  59.   
  60. 排除分区过满问题  
  61.   
  62. 3.检查共享内存段是否被stuck,在操作系统级别查看  
  63.   
  64. [oracle@tips ~]$ ipcs -a   
  65.   
  66. ------ Shared Memory Segments --------  
  67. key        shmid      owner      perms      bytes      nattch     status        
  68. 0x00000000 3342337    root      644        80         2                         
  69. 0x00000000 3375107    root      644        16384      2                         
  70. 0x00000000 3407876    root      644        280        2                         
  71. 0x00000000 3506182    oracle    640        33554432   17                        
  72. 0x00000000 3538951    oracle    640        5016387584 17                        
  73. 0x0d99ce94 3571720    oracle    640        2097152    17                        
  74.   
  75. ------ Semaphore Arrays --------  
  76. key        semid      owner      perms      nsems       
  77. 0x59451e7c 131073     oracle    640        154         
  78.   
  79. ------ Message Queues --------  
  80. key        msqid      owner      perms      used-bytes   messages      
  81.   
  82.   
  83. 尽管没有任何数据文件,参数文件,我们可以在系统中仍可以看到,系统确实分配了共享内存段和信号量,oracle也启动了相关进程  
  84. [oracle@tips dupl]$ ps -ef | grep ora_  
  85. oracle    4977     1  0 04:28 ?        00:00:00 ora_pmon_dupl  
  86. oracle    4979     1  0 04:28 ?        00:00:00 ora_psp0_dupl  
  87. oracle    4981     1  0 04:28 ?        00:00:00 ora_vktm_dupl  
  88. oracle    4985     1  0 04:28 ?        00:00:00 ora_gen0_dupl  
  89. oracle    4987     1  0 04:28 ?        00:00:00 ora_diag_dupl  
  90. oracle    4989     1  0 04:28 ?        00:00:00 ora_dbrm_dupl  
  91. oracle    4991     1  0 04:28 ?        00:00:00 ora_dia0_dupl  
  92. oracle    4993     1  1 04:28 ?        00:00:00 ora_mman_dupl  
  93. oracle    4995     1  0 04:28 ?        00:00:00 ora_dbw0_dupl  
  94. oracle    4997     1  0 04:28 ?        00:00:00 ora_lgwr_dupl  
  95. oracle    4999     1  0 04:28 ?        00:00:00 ora_ckpt_dupl  
  96. oracle    5001     1  0 04:28 ?        00:00:00 ora_smon_dupl  
  97. oracle    5003     1  0 04:28 ?        00:00:00 ora_reco_dupl  
  98. oracle    5005     1  0 04:28 ?        00:00:00 ora_mmon_dupl  
  99. oracle    5007     1  0 04:28 ?        00:00:00 ora_mmnl_dupl  
  100. oracle    5009     1  0 04:28 ?        00:00:00 ora_d000_dupl  
  101. oracle    5011     1  0 04:28 ?        00:00:00 ora_s000_dupl  
  102. oracle    5022  4912  0 04:28 pts/2    00:00:00 grep ora_  
  103.   
  104. 由以上数据表明,系统分配了共享内存段,所以即使$ORACLE_BASE目录下有adump,权限也正确,  
  105. 但是共享内存和信号量已经被卡住,仍会导致使用sqlplus时ORA-09925错误  
  106.   
  107. 解决方案有两种   
  108. 1.重新启动操作系统,释放共享内存段和信号量,(重新启动系统耗时长)  
  109.   
  110. 2.在操作系统级别使用ipcsrm  -m ,ipcsrm -s 删除共享内存段和信号量即可  
  111.   
  112. [oracle@tips ~]$ ipcrm  -m 3506182   
  113. [oracle@tips ~]$ ipcrm  -m 3538951  
  114. [oracle@tips ~]$ ipcrm  -m 3571720  
  115. [oracle@tips ~]$ ipcrm  -s 131073  
  116. [oracle@tips ~]$ sqlplus  / as sysdba  
  117.   
  118. SQL*Plus: Release 11.2.0.3.0 Production on Mon Nov 26 04:19:28 2012  
  119.   
  120. Copyright (c) 1982, 2011, Oracle.  All rights reserved.  
  121.   
  122. Connected to an idle instance. 
原创粉丝点击