问题现象:
     数据库无法登陆,报错磁盘空间不足,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目录用来存放数据文件的,而业务人员还是将表空间建到了数据库安装目录下面,导致根目录空间紧张,和业务上面沟通需要停业务移动表空间。
oracle日志一直报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、可以看到根目录空间已经恢复正常。
在这里插入图片描述

Logo

鸿蒙生态一站式服务平台。

更多推荐