首页 > 代码库 > ORA-09925 Linux-x86_64 Error: 2: No such file or directory

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

DBCA***数据库所有实例后,本想用RMAN duplicate方式克隆DB,因此在$ORACLE_BASE目录下创建了相关的目录admin/dupl/adump ,admin/dupl/dpump 

 在使用sqlplus正常连接空闲实例,手贱却执行了startup命令,oracle果断出现ORA-09925错误


[oracle@tips ~]$ sqlplus  / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Mon Nov 26 04:27:58 2012

Connected to an idle instance.

SQL> startup
ORA-09925: Unable to create audit trail file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 9925
SQL> exit


[oracle@tips ~]$ sqlplus  / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Mon Nov 26 04:18:28 2012

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


ERROR: 
ORA-09925: Unable to create audit trail file 
Linux-x86_64 Error: 2: No such file or directory 
Additional information: 9925 
ORA-01075: you are currently logged on

Enter user-name: 
ERROR:
ORA-01017: invalid username/password; logon denied


解决思路
1.首先确定$ORACLE_BASE目录下的adump是否存在,文件名,路径是否正确,权限是否正确
admin下的格式是$ORACLE_SID/adump

[oracle@tips ~]$ cd $ORACLE_BASE
[oracle@tips oracle]$ ls
admin  cfgtoollogs  checkpoints  diag  fast_recovery_area  oradata  product
[oracle@tips oracle]$ cd admin/dupl/
adump/  dpdump/ 
[oracle@tips oracle]$ cd admin/dupl/
[oracle@tips dupl]$ ls -ld adump/
drwxr-xr-x 2 oracle oinstall 4096 Nov 26 04:19 adump

排除adump目录有无问题,排除adump权限问题

2.检查是否空间adump使用的分区是否已经过满
[oracle@tips dupl]$ df -h 
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              34G   24G  8.0G  75% /
/dev/sda2              99M  5.8M   88M   7% /home
tmpfs                 1.0G     0  1.0G   0% /dev/shm
/dev/sdb1              60G  4.6G   52G   9% /u01

排除分区过满问题

3.检查共享内存段是否被stuck,在操作系统级别查看

[oracle@tips ~]$ ipcs -a 

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x00000000 3342337    root      644        80         2                       
0x00000000 3375107    root      644        16384      2                       
0x00000000 3407876    root      644        280        2                       
0x00000000 3506182    oracle    640        33554432   17                      
0x00000000 3538951    oracle    640        5016387584 17                      
0x0d99ce94 3571720    oracle    640        2097152    17                      

------ Semaphore Arrays --------
key        semid      owner      perms      nsems     
0x59451e7c 131073     oracle    640        154       

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages    


尽管没有任何数据文件,参数文件,我们可以在系统中仍可以看到,系统确实分配了共享内存段和信号量,oracle也启动了相关进程
[oracle@tips dupl]$ ps -ef | grep ora_
oracle    4977     1  0 04:28 ?        00:00:00 ora_pmon_dupl
oracle    4979     1  0 04:28 ?        00:00:00 ora_psp0_dupl
oracle    4981     1  0 04:28 ?        00:00:00 ora_vktm_dupl
oracle    4985     1  0 04:28 ?        00:00:00 ora_gen0_dupl
oracle    4987     1  0 04:28 ?        00:00:00 ora_diag_dupl
oracle    4989     1  0 04:28 ?        00:00:00 ora_dbrm_dupl
oracle    4991     1  0 04:28 ?        00:00:00 ora_dia0_dupl
oracle    4993     1  1 04:28 ?        00:00:00 ora_mman_dupl
oracle    4995     1  0 04:28 ?        00:00:00 ora_dbw0_dupl
oracle    4997     1  0 04:28 ?        00:00:00 ora_lgwr_dupl
oracle    4999     1  0 04:28 ?        00:00:00 ora_ckpt_dupl
oracle    5001     1  0 04:28 ?        00:00:00 ora_smon_dupl
oracle    5003     1  0 04:28 ?        00:00:00 ora_reco_dupl
oracle    5005     1  0 04:28 ?        00:00:00 ora_mmon_dupl
oracle    5007     1  0 04:28 ?        00:00:00 ora_mmnl_dupl
oracle    5009     1  0 04:28 ?        00:00:00 ora_d000_dupl
oracle    5011     1  0 04:28 ?        00:00:00 ora_s000_dupl
oracle    5022  4912  0 04:28 pts/2    00:00:00 grep ora_

由以上数据表明,系统分配了共享内存段,所以即使$ORACLE_BASE目录下有adump,权限也正确,
但是共享内存和信号量已经被卡住,仍会导致使用sqlplus时ORA-09925错误

解决方案有两种 
1.重新系统操作系统,释放共享内存段和信号量,(重新启动系统耗时长)

2.在操作系统级别使用ipcsrm  -m ,ipcsrm -s ***共享内存段和信号量即可

[oracle@tips ~]$ ipcrm  -m 3506182 
[oracle@tips ~]$ ipcrm  -m 3538951
[oracle@tips ~]$ ipcrm  -m 3571720
[oracle@tips ~]$ ipcrm  -s 131073
[oracle@tips ~]$ sqlplus  / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Mon Nov 26 04:19:28 2012

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to an idle instance.


本文出自 “O Record” 博客,请务必保留此出处http://evils798.blog.51cto.com/8983296/1420947