Oracle調整redo log日誌大小

梓沐發表於2016-02-15
最近發現資料的庫存在日誌頻繁切換,檢視了才發現redo log日誌太小,進行線上調整。

1.檢視當前日誌組成員

SQL> select member from v$logfile;
MEMBER
------------------------------------------------------
/u01/oracle/oradata/orcl/redo03.log
/u01/oracle/oradata/orcl/redo02.log
/u01/oracle/oradata/orcl/redo01.log

2.檢視當前日誌組狀態

SQL> select group#,members,bytes/1024/1024,status from v$log;
    GROUP#    MEMBERS BYTES/1024/1024 STATUS
---------- ---------- --------------- ----------------
         1          1              50   CURRENT
         2          1              50   INACTIVE
         3          1              50   INACTIVE


a. CURRENT指當前的日誌檔案,在進行例項恢復時是必須的;

b. ACTIVE是指活動的非當前日誌,在進行例項恢復時會被用到。Active狀態意味著,Checkpoint尚未完成,因此該日誌檔案不能被覆蓋。

c. INACTIVE是非活動日誌,在例項恢復時不再需要,但在介質恢復時可能需要。

d. UNUSED表示該日誌從未被寫入,可能是剛新增的,或RESETLOGS後被重置。

 

從如上資訊可以看出,目前資料庫有三個成員,1為CURRENT,2,3為INACTIVE,大小為50m,現在修改成100m

 

3.刪除舊日誌組,增加新的日誌組

SQL>alter database drop logfile group 3;
--刪除物理磁碟中的redo03.log
[oracle@centos ~]# mv /u01/oracle/oradata/orcl/redo03.log /tmp
SQL>alter database add logfile group 3 ('/u01/oracle/oradata/orcl/redo03.log') size 100M;


檢視當前日誌組狀態

SQL> select group#,members,bytes/1024/1024,status from v$log;
    GROUP#    MEMBERS BYTES/1024/1024 STATUS
---------- ---------- --------------- ----------------
         1          1              50   CURRENT
         2          1              50   INACTIVE
         3          1              100  UNUSED


同樣可以繼續刪除日誌組2

SQL>alter database drop logfile group 2;
--刪除物理磁碟中的redo02.log
[oracle@centos ~]# mv /u01/oracle/oradata/orcl/redo02.log /tmp
SQL>alter database add logfile group 2 ('/u01/oracle/oradata/orcl/redo02.log') size 100M;


檢視當前日誌組狀態

SQL> select group#,members,bytes/1024/1024,status from v$log;
    GROUP#    MEMBERS BYTES/1024/1024 STATUS
---------- ---------- --------------- ----------------
         1          1             50    CURRENT
         2          1             100   UNUSED
         3          1             100   UNUSED

4.此時日誌組1仍為CURRENT狀態,使用如下命令來使日誌組1也變成INACTIVE狀態

SQL> alter system switch logfile;


檢視當前日誌組狀態

SQL> select group#,bytes/1024/1024,members,status from v$log;
    GROUP# BYTES/1024/1024    MEMBERS STATUS
---------- --------------- ---------- ----------------
         1             50           1   INACTIVE
         2             100          1   ACTIVE
         3             100          1   CURRENT


同樣可以繼續刪除日誌組1

SQL>alter database drop logfile group 1;
--刪除物理磁碟中的redo01.log
[oracle@centos ~]# mv /u01/oracle/oradata/orcl/redo01.log /tmp
SQL>alter database add logfile group 1 ('/u01/oracle/oradata/orcl/redo01.log') size 100M;


檢視當前日誌組狀態

SQL> select group#,bytes/1024/1024,members,status from v$log;
    GROUP# BYTES/1024/1024    MEMBERS STATUS
---------- --------------- ---------- ----------------
         1             100          1   UNUSED
         2             100          1   ACTIVE
         3             100          1   CURRENT


至此3個日誌檔案全部修改成大小100m。


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

相關文章