1. 程式人生 > >oracle 修改日誌大小及增加日誌成員

oracle 修改日誌大小及增加日誌成員

好記性不如爛筆頭,記下方便查閱。

日誌檔案能不能resize,直接擴大日誌檔案的大小?10g是不能的。

一般方法就是新建兩個臨時日誌組(oracle至少要求兩個日誌組),切換到這兩個臨時日誌組後,刪掉重建擴大或縮小,再新增日誌組成員。用在操作過程中

用alter system checkpoint 來使日誌狀態active轉inactive

用alter system switch logfile切換日誌組

1. 在原有的日誌組上建立新的日誌組,增大日誌檔案大小,我是通過新建立大的日誌組然後進行切換實現的

alter database add logfile group 4 ('/u01/oracle/product/10.0.2/oradata/ORCL/redo41.log') size 100m;
alter database add logfile group 5 ('/u01/oracle/product/10.0.2/oradata/ORCL/redo51.log') size 100m;
alter database add logfile group 6 ('/u01/oracle/product/10.0.2/oradata/ORCL/redo61.log') size 100m;

2. 切換日誌到新建的日誌組

alter system switch logfile;

3. 檢視日誌狀態

select * from v$log;

注意:只有status為inactive並且archived為YES時方可刪除日誌組(這個的意思為該重做日誌己經歸檔,否則會報ora-01624)

4. 刪除日誌組

alter database drop logfile group 1;

5. 作業系統級別刪除資料檔案

rm -rf redo01.log

6.增加日誌成員(最好把成員放到不同的磁碟上做到多功,避免一個組的日誌檔案全部損壞資料庫宕機)

alter database add logfile member '/u01/oracle/product/10.0.2/oradata/ORCL/redo42.log' to group 4;
alter database add logfile member '/u01/oracle/product/10.0.2/oradata/ORCL/redo52.log' to group 5;
alter database add logfile member '/u01/oracle/product/10.0.2/oradata/ORCL/redo42.log' to group 3;

7.刪除日誌組成員

alter database drop logfile member '/u01/oracle/product/10.0.2/oradata/ORCL/redo42.log';

下面介紹關於刪除日誌一些原則:

     1. 在刪除日誌操作前,確保每個例項必須至少有兩個日誌組

     2. 當一個組處於ACTIVE 或者CURRENT的狀態時不可刪除,刪除日誌組的操作只對資料庫進行更改,作業系統的檔案尚未刪除

     3. 當刪除時適用DROP LOGFILE GROUP N語句時,此時GROUP N內的所有成員都將被刪除

  alter database drop logfile group 1;

     4. 刪除日誌成員的時,當你刪除一個是該組中最後一個成員的時候,你不能刪除此成員

     5. 當組處於current的狀態時,不能刪除組成員;在歸檔模式下,必須得歸檔之後才能刪除

     6. 刪除日誌組成員的操作只對資料庫進行更改,作業系統的檔案尚未刪除

  alter database drop logfile member '/location_dust/redo01_1.log';