control file parallel write事件小記

wei-xh發表於2010-12-04

通過檢視V$CONTROLFILE_RECORD_SECTION可以知道,控制檔案裡都記錄了那些內容。

SQL> select type,records_used from v$controlfile_record_section;

TYPE                         RECORDS_USED
---------------------------- ------------
DATABASE                                1
CKPT PROGRESS                           0
REDO THREAD                             1
REDO LOG                                3
DATAFILE                                4
FILENAME                                8
TABLESPACE                              5
TEMPORARY FILENAME                      1
RMAN CONFIGURATION                      0
LOG HISTORY                            54
OFFLINE RANGE                           0

TYPE                         RECORDS_USED
---------------------------- ------------
ARCHIVED LOG                            0
BACKUP SET                              0
BACKUP PIECE                            0
BACKUP DATAFILE                         0
BACKUP REDOLOG                          0
DATAFILE COPY                           0
BACKUP CORRUPTION                       0
COPY CORRUPTION                         0
DELETED OBJECT                          0
PROXY COPY                              0
BACKUP SPFILE                           0

TYPE                         RECORDS_USED
---------------------------- ------------
DATABASE INCARNATION                    2
FLASHBACK LOG                           0
RECOVERY DESTINATION                    1
INSTANCE SPACE RESERVATION              1
REMOVABLE RECOVERY FILES                0
RMAN STATUS                             0
THREAD INSTANCE NAME MAPPING            8
MTTR                                    1
DATAFILE HISTORY                        0
STANDBY DATABASE MATRIX                10
GUARANTEED RESTORE POINT                0

TYPE                         RECORDS_USED
---------------------------- ------------
RESTORE POINT                           0

已選擇34行。

控制檔案裡記錄了資料庫的SCN資訊,當前日誌號,歸檔日誌資訊,備份集資訊,資料檔案資訊等等。而這些資訊,很多都是需要更新的,更新的頻率視情況而定。更新當前日誌號的資訊,是發生日誌切換的時候需要做的,更新備份集的資訊是在用RMAN備份的時候需要做的。一般來說,大體有一下幾種常見的情況:

1)日誌檔案過小,或者資料庫DML操作太多,導致日誌切換太過頻繁。日誌的切換都是需要更新控制檔案的,此時的表現就是LGWR程式等待control file parallel write事件。

2)MTTR設定的過小,導致檢查點頻繁發生。我們知道控制檔案裡是記錄SCN資訊的,檢查點發生的時候,是需要更新SCN的,特別是10g以後的增量檢查點,當發生增量檢查點的時候,會3秒更新一次控制檔案中記錄的RBA資訊。

3)NOLOGGING 導致的頻繁更新資料檔案。

對資料檔案在nologging選項下執行修改工作時,為了修改unrecoverable scn需要更新控制檔案。這時,伺服器程式將等待crontrol file parallel write事件。

4)i/o系統的效能緩慢時

最好將控制檔案放在獨立的磁碟空間上。

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

相關文章