ORA-09187、linux-x86_64 Error:28 AND ORA-09945

6520阅读 0评论2014-05-04 jackson198574
分类:Oracle

  


 在网上帮网友解决问题的时候遇到的报错:ORA-09187:write to audit file failed.  、ORA-09945:Unable to initialize the audit trail file和 linux-x86_64 Error:28:No space left on device.



该错误是在执行  conn / as sysdba的时候报出的


使用df -g命令查看的时候,发现他的根分区“/”已经满了,初步判断为空间满导致的问题,经过进一步排查,发现他的 listener.log 特别大,将其mv到其他的位置,然后再次尝试conn /  as sysdba,发现数据库可以正常登陆。

 此问题到此已经解决。

 
 但是,有此问题可以延伸出更多的可能性,我们不妨主动思考一下,自我启发一下,listener.log体积变大导致的系统空间不足的话,比较容易处理,挪走即可,但是如果是数据文件发生了因为体积增长而占满空间时,应该怎么处理呢?是不是我们提前未雨绸缪做一下测试,一旦乌云压顶了,我们的心态上可以更加的从容?

 

Datafile大挪移大法:

 挪动数据文件的步骤一共有4步,操作如下:

1.正常关闭数据库

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。


2. 复制system表空间对应数据文件去新路径

此步根据不同操作系统选择不同的系统移动命令。



3.启动数据库到mount状态


SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。


4. 修改system表空间对应数据文件去新路径
SQL> alter database rename file  '/u01/app/oracle/oradata/orcl/system01.dbf' to '/u01/app/oracle/oradata/orcl/system/system01.dbf';


数据库已更改。


5. 启动数据库


SQL> alter database open;


数据库已更改。

上一篇:RMAN中删除OBSOLETE备份集问题
下一篇:ORA-01017:invalid username/password; logon denied