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

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

[javascript] view plaincopy
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.


你可能感兴趣的:(error,File,create,ORA-09925)