Switch log 掛起的小問題

紅葉DBA發表於2010-12-07
時間:2010-9-30        18:40

問題描述:
        執行alter system logfile;發現資料庫被hang住了,於是檢視alter.log檔案,發現大量的如下資訊:
        Thu Sep 30 18:35:18 2010
        ARC0: Archiving not possible: No primary destinations
        ARC0: Failed to archive thread 1 sequence 41 (4)
        並且這些資訊還在不斷的增加。

解決方案:
先手動中斷alter system命令,檢視archivelog的使用率:
SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE        0                0               0
ONLINELOG        0                0               0
ARCHIVELOG        199.85                0              46
BACKUPPIECE        0                0               0
IMAGECOPY        0                0               0
FLASHBACKLOG        0                0               0

發現archivelog的使用率已經達到200%了,初步估計是恢復區空間不足,於是刪除不必要的歸檔日誌檔案,

SQL> host rman target /

恢復管理器: Release 10.2.0.1.0 - Production on 星期四 9月 30 18:36:57 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

連線到目標資料庫: HONGYE (DBID=2409027571)

RMAN> crosscheck archivelog all;

RMAN> delete expired archivelog all;

RMAN> delete obsolete;

再次檢視歸檔日誌的空間使用率:
SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE                0                         0               0
ONLINELOG                0                         0               0
ARCHIVELOG                43.29                  0              14
BACKUPPIECE                0                         0               0
IMAGECOPY                0                         0               0
FLASHBACKLOG                0                         0               0

空間使用率得到改善,檢視恢復區總大小:
SQL> show parameter db_recover

NAME                                 TYPE                     VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string                F:\oracle\product\10.2.0\flash
                                                                         _recovery_area
db_recovery_file_dest_size         big integer          500M

只有500M,顯然設定的太小了,於是改為10G。
SQL> alter system set db_recovery_file_dest_size=10g scope=both;

再次檢視歸檔日誌的只用率
SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
------------ ------------------ ------------------------- ---------------
CONTROLFILE                0                         0               0
ONLINELOG                0                         0               0
ARCHIVELOG                2.11                    0              14
BACKUPPIECE                0                         0               0
IMAGECOPY                0                         0               0
FLASHBACKLOG                0                         0               0

歸檔檔案的使用率已經降低到了2.11%了,再試試切換日誌檔案
SQL> alter system switch logfile;

系統已更改。

日誌檔案已經可以正常切換了,至此問題得到解決!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24465008/viewspace-681094/,如需轉載,請註明出處,否則將追究法律責任。

相關文章