標籤:oracle redo日誌組 redo日誌群組成員 redo 重做日誌
Oracle線上調整redo日誌組數及群組成員
一、調整redo日誌組大小
操作原因:
redo日誌一般設定讓日誌轉換時間為10-20分鐘,轉換太頻繁會影響效能。通常情況下每小時不要超過6次!如果AWR(Automated Workload Repository 自動負載資訊庫) report中log file switch checkpoint incomplete) 比較大,說明redo log之間的切換過於頻繁。可以通過增加redo log size來降低切換的頻率。但如果redo log size 過大,可能帶來資料庫恢複時遺失資料的風險。所以要折中選擇redo log size, 預設是50M。
Oracle沒有提供直接修改設定檔大小的途徑,但可以採取新增日誌組來代替舊有日誌組的方式。
例子:現在有三個日誌成員,大小為50M,欲更改為100M。
1.查看當前日誌群組成員
SQL> select member from v$logfile;
2.查看當前日誌組狀態
SQL> select group#,members,bytes/1024/1024,status from v$log;
3.增加日誌組
SQL>alter database add logfile group 4 (‘/u01/oracle/oradata/orcl/redo04.log‘) size 100M;
SQL>alter database add logfile group 5 (‘/u01/oracle/oradata/orcl/redo05.log‘) size 100M;
SQL>alter database add logfile group 6 (‘/u01/oracle/oradata/orcl/redo06.log‘) size 100M;
4.切換到新增的日誌組上
SQL> alter system switch logfile;
(可多次執行,直到CURRENT指向建立的日誌組)
5.查看當前日誌組狀態
SQL> select group#,members,bytes/1024/1024,status from v$log;
各種狀態含義:
a.CURRENT指當前的記錄檔,在進行執行個體恢複時是必須的;
b.ACTIVE是指活動的非當前日誌,在進行執行個體恢複時會被用到。Active狀態意味著,Checkpoint尚未完成,因此該記錄檔不能被覆蓋。這時也不能drop掉,應該執行alter system checkpoint; --強制執行檢查點;然後在操作。
c.INACTIVE是非活動紀錄,在執行個體恢複時不再需要,但在介質恢複時可能需要。
d.UNUSED表示該日誌從未被寫入,可能是剛添加的,或RESETLOGS後被重設。
6.刪除舊的日誌組
SQL> alter database drop logfile group 1;
SQL> alter database drop logfile group 2;
SQL> alter database drop logfile group 3;
7.在作業系統下刪除掉redolog 記錄檔
mv /u01/oracle/oradata/orcl/redo0[1-3] /tmp
或直接刪除已經廢棄的記錄檔。
備忘:可以先建立日誌組作為過渡日誌組,然後刪除原有日誌組並修改大小後進行重建。
二、向現有日誌組新增成員
操作原因:重做日誌冗餘,提高資料可恢複性及完整性。
注意:若在生產庫中,則將新建立的成員放到不同的磁碟上。所有日誌成員大小要一致。
1.向指定日誌組新增群組成員
SQL> alter database add logfile member ‘/u01/app/oracle/oradata/ORCL/onlinelog/redo04_b.log‘ to group 4;
2.查看當前日誌群組成員
SQL> select member from v$logfile;
3.查看當前日誌組狀態
SQL> select group#,members,bytes/1024/1024,status from v$log;
參考:
http://www.linuxidc.com/Linux/2014-09/106796.htm
http://biancheng.dnbcw.info/oracle/335747.html
本文出自 “4699096” 部落格,請務必保留此出處http://4709096.blog.51cto.com/4699096/1741983
Oracle線上調整redo日誌組數及群組成員