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.