ORA-09817:Write to audit file failed,Linux-x86_64 Error:28: No space left on device,移动数据文件
问题现象: 数据库无法登陆,报错磁盘空间不足,ORA-09817:Write to audit file failed,同时Linux-x86_64 Error:28: No space left on device处理:1、检查磁盘空间,发现/目录使用100%2、清理数据库审计的日志,因为日志文件太多,使用rm删除的时候报错,结合fin...
问题现象:
数据库无法登陆,报错磁盘空间不足,ORA-09817:Write to audit file failed,同时Linux-x86_64 Error:28: No space left on device
处理:
1、检查磁盘空间,发现/目录使用100%
2、清理数据库审计的日志,因为日志文件太多,使用rm删除的时候报错,结合find找出30天前的aud日志进行清除。
[oracle@ylzora adump]$ cd $ORACLE_BASE/admin/ylz_test/adump/
[oracle@ylzora adump]$ rm -rf *.aud
-bash: /bin/rm: 参数列表过长
[oracle@ylzora adump]$ find . -mtime +30 -name "ylz_test*.aud" -exec rm -rf {} \;
3、清理完日志之后,总算可以登陆数据库了,但是清理的日志空间并不是很大才5G,而根目录有90G的空间,很显然还有其它地方占用了磁盘空间。
4、先检查表空情况,只有system、data和ufgov比较大,查看这三个表空间的路径,确实建立在/目录下,这和规划的不符,之前规划了/data目录用来存放数据文件的,而业务人员还是将表空间建到了数据库安装目录下面,导致根目录空间紧张,和业务上面沟通需要停业务移动表空间。
5、移动数据文件,因为移动系统表空间,需要停库,所以和业务协商选择中午无业务的时间进行
6、移动普通表空间
先将表空间offline,
SQL> alter tablespace data offline;
Tablespace altered.
SQL> alter tablespace ufgov offline;
Tablespace altered.
SQL> select tablespace_name,status,contents from dba_tablespaces;
TABLESPACE_NAME STATUS CONTENTS
------------------------------ --------- ---------
SYSTEM ONLINE PERMANENT
SYSAUX ONLINE PERMANENT
UNDOTBS1 ONLINE UNDO
TEMP ONLINE TEMPORARY
USERS ONLINE PERMANENT
UFGOV OFFLINE PERMANENT
CW_EXCHG ONLINE PERMANENT
DATA OFFLINE PERMANENT
8 rows selected.
SQL> select file#,name,status from v$datafile;
FILE#----------NAME---------------------------------------------------------STATUS-------
1 /u01/app/oracle/oradata/ylz_test/system01.dbf SYSTEM
2 /u01/app/oracle/oradata/ylz_test/sysaux01.dbf ONLINE
3 /u01/app/oracle/oradata/ylz_test/undotbs01.dbf ONLINE
4 /u01/app/oracle/oradata/ylz_test/users01.dbf ONLINE
5 /u01/app/oracle/product/11.2.1/dbhome_1/dbs/D:ufgov.dbf OFFLINE
6 /u01/app/oracle/product/11.2.1/dbhome_1/dbs/D:cw_exchg.dbf ONLINE
7 /u01/app/oracle/product/11.2.1/dbhome_1/dbs/D:data.dbf OFFLINE
7 rows selected.
移动数据文件
SQL> host cp /u01/app/oracle/product/11.2.1/dbhome_1/dbs/D:data.dbf /data/ylz_test/data.dbf
SQL> host cp /u01/app/oracle/product/11.2.1/dbhome_1/dbs/D:ufgov.dbf /data/ylz_test/ufgov.dbf
修改该表空间的数据文件路径
SQL> alter tablespace data rename datafile '/u01/app/oracle/product/11.2.1/dbhome_1/dbs/D:data.dbf' to '/data/ylz_test/data.dbf';
Tablespace altered.
SQL> alter tablespace ufgov rename datafile '/u01/app/oracle/product/11.2.1/dbhome_1/dbs/D:ufgov.dbf' to '/data/ylz_test/ufgov.dbf';
Tablespace altered.
SQL>
SQL> alter tablespace data online;
Tablespace altered.
SQL>alter tablespace ufgov online;
Tablespace altered.
SQL>
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
UFGOV ONLINE
CW_EXCHG ONLINE
DATA ONLINE
8 rows selected.
SQL> select file#,name,status from v$datafile;
FILE#----------NAME-------------------------------------------------------STATUS-------
1 /u01/app/oracle/oradata/ylz_test/system01.dbf' SYSTEM
2 /u01/app/oracle/oradata/ylz_test/sysaux01.dbf ONLINE
3 /u01/app/oracle/oradata/ylz_test/undotbs01.dbf ONLINE
4 /u01/app/oracle/oradata/ylz_test/users01.dbf ONLINE
5 /data/ylz_test/ufgov.dbf ONLINE
6 /u01/app/oracle/product/11.2.1/dbhome_1/dbs/D:cw_exchg.dbf ONLINE
7 /data/ylz_test/data.dbf ONLINE
7 rows selected.
可以看到表空间已经恢复正常且路径已经变成了我们需要的/data/ylz_test路径
7、移动系统表空间
移动系统表空间需要重启数据库,先将数据库启动到MOUNT状态 ,复制数据文件到指定位置,然后重定向数据文件,成功以后打开数据库,检查状态。
将数据库启动mount状态
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> start mount
SP2-0310: unable to open file "mount.sql"
SQL> startup mount
ORACLE instance started.
Total System Global Area 4275781632 bytes
Fixed Size 2235208 bytes
Variable Size 2835350712 bytes
Database Buffers 1426063360 bytes
Redo Buffers 12132352 bytes
Database mounted.
移动system表空间数据文件,从u01/app/oracle/oradata/ylz_test/system01.dbf复制到/data/ylz_test/system01.dbf,然后修改数据库路径。
SQL> host cp /u01/app/oracle/oradata/ylz_test/system01.dbf /data/ylz_test/system01.dbf
SQL> alter database rename file '/u01/app/oracle/oradata/ylz_test/system01.dbf' to '/data/ylz_test/system01.dbf';
启动数据库,检查表空间状态
SQL> alter database open;
Database altered.
SQL> select tablespace_name,status from dba_tablespaces;
select file#,name,status from v$datafile;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
UFGOV ONLINE
CW_EXCHG ONLINE
DATA ONLINE
SQL>select file#,name,status from v$datafile;
FILE#----------NAME-------------------------------------------------------STATUS-------
1 /data/ylz_test/system01.dbf SYSTEM
2 /u01/app/oracle/oradata/ylz_test/sysaux01.dbf ONLINE
3 /u01/app/oracle/oradata/ylz_test/undotbs01.dbf ONLINE
4 /u01/app/oracle/oradata/ylz_test/users01.dbf ONLINE
5 /data/ylz_test/ufgov.dbf ONLINE
6 /u01/app/oracle/product/11.2.1/dbhome_1/dbs/D:cw_exchg.dbf ONLINE
7 /data/ylz_test/data.dbf ONLINE
7 rows selected.
可以看到system的数据文件已经变成/data/ylz_test/system01.dbf了
8、清理旧的表空间数据文件,以免残留影响后面维护。
[oracle@ylzora ~]$ rm -rf /u01/app/oracle/product/11.2.1/dbhome_1/dbs/D:data.dbf
[oracle@ylzora ~]$ rm -rf /u01/app/oracle/product/11.2.1/dbhome_1/dbs/D:ufgov.dbf
[oracle@ylzora ~]$ rm -rf /u01/app/oracle/oradata/ylz_test/system01.dbf
9、可以看到根目录空间已经恢复正常。
更多推荐
所有评论(0)