更多相關資訊,參見Oracle官方文檔: Managing the Online Redo Log 忠告: 在下述操作前進行資料庫完全備份 在下述操作後進行控制檔案(control file)的備份 查詢logfile相關資訊: 查詢記錄檔位置和狀態 SQL> select * from v$logfile; GROUP# STATUS TYPE MEMBER ---------- ------- ------- -------------------------------------------------- 3 ONLINE /u01/app/oracle/oradata/knitter/redo03.log 2 ONLINE /u01/app/oracle/oradata/knitter/redo02.log 1 ONLINE /u01/app/oracle/oradata/knitter/redo01.log 4 ONLINE /u01/app/oracle/oradata/knitter/redo04.rdo 4 INVALID ONLINE /u01/app/oracle/oradata/knitter/redo04_02.rdo 查詢日誌組序號和狀態 SQL> SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG; GROUP# ARC STATUS ---------- --- ---------------- 1 NO CURRENT 2 YES INACTIVE 3 YES INACTIVE 4 YES INACTIVE 查詢日誌曆史 SQL> select * from V$LOG_HISTORY; RECID STAMP THREAD# SEQUENCE# FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# ---------- ---------- ---------- ---------- ------------- --------- ------------ 1 716304893 1 1 158900 01-APR-10 260498 2 716317218 1 2 260498 14-APR-10 296893 3 716317260 1 3 296893 14-APR-10 296990 4 716319163 1 4 296990 14-APR-10 303247 5 716319176 1 5 303247 14-APR-10 303252 6 716384800 1 6 303252 14-APR-10 332583 7 716384854 1 7 332583 15-APR-10 332775 8 716384882 1 8 332775 15-APR-10 332881 9 716384892 1 9 332881 15-APR-10 332889 ============================================================================================ 增加組(同時指定logfile): 不指定組號(將自動使用組號: 當前最大組號+1) ALTER DATABASE ADD LOGFILE ('/oracle/dbs/log1c.rdo', '/oracle/dbs/log2c.rdo') SIZE 500K; 指定組號 ALTER DATABASE ADD LOGFILE GROUP 10 ('/oracle/dbs/log1c.rdo', '/oracle/dbs/log2c.rdo') SIZE 500K; 增加群組成員 指定組號 ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2b.rdo' TO GROUP 2; ALTER DATABASE ADD LOGFILE MEMBER '/u01/app/oracle/oradata/knitter/redo05_3.rdo', '/u01/app/oracle/oradata/knitter/redo05_4.rdo' TO GROUP 5; 不指定組號,指定所有群組成員 ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2c.rdo' TO ('/oracle/dbs/log2a.rdo', '/oracle/dbs/log2b.rdo'); 說明: 在增加群組成員的時候, 不能指定logfile檔案大小,因為同一組(logGroup)中所有member檔案是完全一樣的(大小、內容),Oracle將自動根據已有組員確定其大小。如果指定了大小,將會出錯,如: SQL> alter database add logfile member '/oracle/dbs/log1f.rdo' size 100k to group 5; alter database add logfile member '/oracle/dbs/log1f.rdo' size 100k to group 5 * ERROR at line 1: ORA-00946: missing TO keyword 刪除群組成員 前提條件: 無法刪除群組中的最後一個成員 所在組狀態不能為 active 或 current, 否則必須先進行日誌切換(log switch) 如果資料庫處于歸檔模式,必須(通過強制日誌切換)先確保待刪除群組成員中的資訊已經被歸檔 強制切換日誌 ALTER SYSTEM SWITCH LOGFILE; 然後通過如下語句查詢,確保待操作組不為active或current狀態: SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG; 刪除群組成員 ALTER DATABASE DROP LOGFILE MEMBER '/oracle/dbs/log3c.rdo'; 說明: 上述操作完成後,只是刪除了Oracle中的相關記錄資訊, 還應該使用作業系統刪除指令,刪除硬碟上相應的記錄檔 刪除群組 前提條件: 最起碼要有兩個組 所在組狀態不能為 active 或 current, |