在网上帮网友解决问题的时候遇到的报错: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;
数据库已更改。