oracle 修改日誌大小及增加日誌成員
阿新 • • 發佈:2019-02-10
好記性不如爛筆頭,記下方便查閱。
日誌檔案能不能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';