Oracle在線調整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

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