- 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.
ORA-09925 Linux-x86_64 Error: 2: No such file or directory
最新推荐文章于 2023-02-16 16:48:22 发布