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刪除的時候報錯,結合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、可以看到根目錄空間已經恢復正常。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章