http://blog.csdn.net/leshami/article/details/5749556
一、Oracle中的幾類日志文件
- Redo log files -->聯機重做日志
- Archive log files -->歸檔日志
- Alert log files -->告警日志
- Trace files -->跟蹤日志
- user_dump_dest -->用戶跟蹤日志
- backupground_dump_dest -->進程跟蹤日志
二、聯機重做日志的規划管理
1.聯機重做日志
記錄了數據的所有變化(DML,DDL或管理員對數據所作的結構性更改等)提供恢復機制(對於意外刪除或宕機利用日志文件實現數據恢復)可以被分組管理
2.聯機重做日志組
由一個或多個相同的聯機日志文件組成一個聯機重做日志組至少兩個日志組,每組一個成員(建議每組兩個成員,分散放開到不同的磁盤),由LGWR后台進程同時將日志內容寫入到一個組的所有成員
LGWR的觸發條件
- 在事務提交的時候(COMMIT)
- Redo Log Buffer 三分之一滿
- Redo Log Buffer 多於一兆的變化記錄
- 在DBWn寫入數據文件之前
3.聯機重做日志成員
重做日志組內的每一個聯機日志文件稱為一個成員
一個組內的每一個成員具有相同的日志序列號(log sequence number),且成員的大小相同
每次日志切換時,Oracle服務器分配一個新的LSN號給即將寫入日志的日志文件組
LSN號用於唯一區分每一個聯機日志組和歸檔日志
處於歸檔模式的聯機日志,LSN號在歸檔時也被寫入到歸檔日志之中
4.日志文件的工作方式
日志文件采用按順序循環寫的方式
當一組聯機日志組寫滿,LGWR則將日志寫入到下一組,當最后一組寫滿則從第一組開始寫入
寫入下一組的過程稱為日志切換
切換時發生檢查點過程
檢查點的信息同時寫入到控制文件
5.聯機日志文件的規划
總原則
分散放開,多路復用
日志所在的磁盤應當具有較高的I/O
一般日志組大小應滿足自動切換間隔至少15-20分鍾左右業務需求
建議使用rdo結尾的日志文件名,避免誤刪日志文件。如redo1.rdo,redo2.rdo
規划樣例
Redo Log Group1 Redo Log Group2 Redo Log Group3
Member1 Member1 Member1 -->Physical Disk 1
Member2 Member2 Member2 -->Physical Disk 2
Member3 Member3 Member3 -->Physical Disk 3
6.日志切換和檢查點切換
ALTER SYSTEM SWITCH LOGFILE; --強制手動切換
ALTER SYSTEM CHECKPOINT;
強制設置檢查點間隔
ALTER SYSTEM SET FAST_START_MTTR_TARGET = n
7.添加日志文件組
ALTER DATABASE ADD LOGFILE [GROUP n]
('$ORACLE_BASE/oradata/u01/logn1.rdo',
'$ORACLE_BASE/oradata/u01/logn2.rdo')
SIZE mM;
8.添加日志成員
ALTER DATABASE ADD LOGFILE MEMBER
'$ORACLE_BASE/oradata/u01/logn1.rdo' TO GROUP 1,
'$ORACLE_BASE/oradata/u01/logn2.rdo' TO GROUP 2;
9.刪除日志成員
不能刪除組內的唯一一個成員
不能刪除處於active 和current 狀態組內的成員
刪除處於active 和current 狀態組內的成員,應使用日志切換使其處於INACTIVE狀態后再刪除
對於組內如果一個成員為NULL 值,一個為INVALID,且組處入INACTIVE,僅能刪除INVALID狀態成員
刪除日志成員,物理文件並沒有真正刪除,需要手動刪除
刪除日志文件后,控制文件被更新
對於處於歸檔模式下的數據庫,刪除成員時確保日志已被歸檔,查看v$log視圖獲得歸檔信息
ALTER DATABASE DROP LOGFILE MEMBER '$ORACLE_BASE/oradata/u01/logn1.rdo'
10.刪除日志組
一個實例至少需要兩個聯機日志文件組
活動或當前的日志組不能被刪除
組內成員狀態有NULL 值或INVALID狀態並存,組不可刪除
日志組被刪除后,物理文件需要手動刪除(對於非OMF)
ALTER DATABASE DROP LOGFILE GROUP n
11.日志的重定位及重命名
所需權限
ALTER DATABASE 系統權限
復制文件到目的位置操作系統權限(寫權限)
CURRENT狀態組內的成員不能被重命名
建議該行為之前備份數據庫
重命名或重定位之后建議立即備份控制文件
重定位及重命名的兩種方法
添加一個新成員到日志組,然后刪除一個舊的成員
使用ALTER DATABASE RENAME FILE 命令(不區分歸檔與非歸檔模式)
復制聯機日志文件到新路徑:ho cp <oldfile> <newfile>
執行ALTER DATABASE RENAME FILE '<oldfile>' TO '<newfile>'
對於處於CURRENT狀態的需要改名且不切換的情況下
辦法是切換到MOUNT狀態下再執行上述操作
12.清空日志文件組
ALTER DATABASE CLEAR LOGIFLE GROUP n
ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP n --使用unarchived 避免歸檔
13. 查看Oracle日志切換頻率
column h0 format 999 column h1 format 999 column h2 format 999 column h3 format 999 column h4 format 999 column h5 format 999 column h6 format 999 column h7 format 999 column h8 format 999 column h9 format 999 column h10 format 999 column h11 format 999 column h12 format 999 column h13 format 999 column h14 format 999 column h15 format 999 column h16 format 999 column h17 format 999 column h18 format 999 column h19 format 999 column h20 format 999 column h21 format 999 column h22 format 999 column h23 format 999 column avg format 999.99 column day format a6 SELECT TRUNC (first_time) "Date", TO_CHAR (first_time, 'Dy') "Day", COUNT (1) "Total", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '00', 1, 0)) h0, SUM (DECODE (TO_CHAR (first_time, 'hh24'), '01', 1, 0)) "h1", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '02', 1, 0)) "h2", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '03', 1, 0)) "h3", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '04', 1, 0)) "h4", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '05', 1, 0)) "h5", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '06', 1, 0)) "h6", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '07', 1, 0)) "h7", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '08', 1, 0)) "h8", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '09', 1, 0)) "h9", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '10', 1, 0)) "h10", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '11', 1, 0)) "h11", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '12', 1, 0)) "h12", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '13', 1, 0)) "h13", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '14', 1, 0)) "h14", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '15', 1, 0)) "h15", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '16', 1, 0)) "h16", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '17', 1, 0)) "h17", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '18', 1, 0)) "h18", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '19', 1, 0)) "h19", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '20', 1, 0)) "h20", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '21', 1, 0)) "h21", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '22', 1, 0)) "h22", SUM (DECODE (TO_CHAR (first_time, 'hh24'), '23', 1, 0)) "h23", to_char(ROUND (COUNT (1) / 24, 2),'fm99999999990.00') "Avg" FROM gv$log_history WHERE first_time >= trunc(SYSDATE) - 30 and thread# = inst_id GROUP BY TRUNC (first_time), TO_CHAR (first_time, 'Dy') ORDER BY 1 DESC; Date Day Total H0 h1 h2 h3 h4 h5 h6 h7 h8 h9 h10 h11 h12 h13 h14 h15 h16 h17 h18 h19 h20 h21 h22 h23 Avg ------------------- ------ ---------- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- --------------------------------------------- 2017-09-14 00:00:00 Thu 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 2017-09-13 00:00:00 Wed 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0.17
SYS@userdata>select to_char(first_time,'yyyy-mm-dd hh24:mi:ss'),group# from v$log; TO_CHAR(FIRST_TIME,'YYYY-MM-DDHH24:MI:SS') GROUP# --------------------------------------------------------- ---------- 2017-09-14 10:02:55 1 2017-09-14 10:03:01 2 2017-09-14 10:02:28 3
14. 查看與日志有關的動態性能視圖
V$LOG
V$LOGFILE
V$LOG中STATUS的狀態值
UNUSED: 從未對該聯機日志寫入任何內容,一般為新增加聯機日志文件或是使用resetlog后的狀態
CURRENT:當前重做日志文件,表示該重做日志文件為活動狀態,能夠被打開和關閉
ACTIVE:處於活動狀態,不屬於當前日志,崩潰恢復需要該狀態,可用於塊恢復,可能歸檔,也可能未歸檔
CLEARING:表示在執行alter database clear logfile命令后正將該日志重建為一個空日志,重建后狀態變為unused
CLEARING_CURRENT:當前日志處於關閉線程的清除狀態。如日志某些故障或寫入新日志標頭時發生I/O錯誤
INACTIVE:實例恢復不在需要聯機重做文件日志組,可能歸檔也可能未歸檔
V$LOGFILE中STATUS的狀態值
INVALID :表明該文件不可訪問
STALE :表明文件內容不完全
DELETED : 表明該文件不再使用
NULL :表明文件正在使用
三、redo log實驗
1.添加日志組成員
SYS@userdata>select GROUP#,BYTES/1024/1024 as MB,MEMBERS from v$log; GROUP# MB MEMBERS ---------- ---------- ---------- 1 100 1 2 100 1 3 100 1 SYS@userdata>select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_RECOVE ---------- --------------------- --------------------- -------------------------------------------------- --------- 3 ONLINE /u01/app/oracle/oradata/userdata/redo03.log NO 2 ONLINE /u01/app/oracle/oradata/userdata/redo02.log NO 1 ONLINE /u01/app/oracle/oradata/userdata/redo01.log NO SYS@userdata>alter database add logfile member '/u01/app/oracle/oradata/userdata/redo0102.log' to group 1; Database altered. SYS@userdata>alter database add logfile member '/u01/app/oracle/oradata/userdata/redo0202.log' to group 2; Database altered. SYS@userdata>alter database add logfile member '/u01/app/oracle/oradata/userdata/redo0302.log' to group 3; Database altered. SYS@userdata>select GROUP#,BYTES/1024/1024 as MB,MEMBERS from v$log; GROUP# MB MEMBERS ---------- ---------- ---------- 1 100 2 2 100 2 3 100 2 SYS@userdata>select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_RECOVE ---------- --------------------- --------------------- -------------------------------------------------- --------- 3 ONLINE /u01/app/oracle/oradata/userdata/redo03.log NO 2 ONLINE /u01/app/oracle/oradata/userdata/redo02.log NO 1 ONLINE /u01/app/oracle/oradata/userdata/redo01.log NO 1 INVALID ONLINE /u01/app/oracle/oradata/userdata/redo0102.log NO 2 INVALID ONLINE /u01/app/oracle/oradata/userdata/redo0202.log NO 3 INVALID ONLINE /u01/app/oracle/oradata/userdata/redo0302.log NO 6 rows selected.
2.添加日志組
SYS@userdata>alter database add logfile group 4 ('/u01/app/oracle/oradata/userdata/redo04.log','/u01/app/oracle/oradata/userdata/redo0402.log') size 100m; Database altered. SYS@userdata>select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_RECOVE ---------- --------------------- --------------------- -------------------------------------------------- --------- 3 ONLINE /u01/app/oracle/oradata/userdata/redo03.log NO 2 ONLINE /u01/app/oracle/oradata/userdata/redo02.log NO 1 ONLINE /u01/app/oracle/oradata/userdata/redo01.log NO 1 INVALID ONLINE /u01/app/oracle/oradata/userdata/redo0102.log NO 2 INVALID ONLINE /u01/app/oracle/oradata/userdata/redo0202.log NO 3 INVALID ONLINE /u01/app/oracle/oradata/userdata/redo0302.log NO 4 ONLINE /u01/app/oracle/oradata/userdata/redo04.log NO 4 ONLINE /u01/app/oracle/oradata/userdata/redo0402.log NO 8 rows selected. SYS@userdata>select GROUP#,BYTES/1024/1024 as MB,MEMBERS from v$log; GROUP# MB MEMBERS ---------- ---------- ---------- 1 100 2 2 100 2 3 100 2 4 100 2
3.刪除日志組成員
SYS@userdata>select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- ------------------- 1 1 7 104857600 2 YES INACTIVE 1232950 2017-09-14 00:59:10 2 1 8 104857600 2 YES INACTIVE 1232952 2017-09-14 00:59:10 3 1 9 104857600 2 NO CURRENT 1232954 2017-09-14 00:59:12 4 1 0 104857600 2 YES UNUSED 0 SYS@userdata>select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_RECOVE ---------- --------------------- --------------------- -------------------------------------------------- --------- 3 ONLINE /u01/app/oracle/oradata/userdata/redo03.log NO 2 ONLINE /u01/app/oracle/oradata/userdata/redo02.log NO 1 ONLINE /u01/app/oracle/oradata/userdata/redo01.log NO 1 INVALID ONLINE /u01/app/oracle/oradata/userdata/redo0102.log NO 2 INVALID ONLINE /u01/app/oracle/oradata/userdata/redo0202.log NO 3 INVALID ONLINE /u01/app/oracle/oradata/userdata/redo0302.log NO 4 ONLINE /u01/app/oracle/oradata/userdata/redo04.log NO 4 ONLINE /u01/app/oracle/oradata/userdata/redo0402.log NO 8 rows selected. SYS@userdata>alter database drop logfile member '/u01/app/oracle/oradata/userdata/redo0102.log'; Database altered. SYS@userdata>alter database drop logfile member '/u01/app/oracle/oradata/userdata/redo0202.log'; Database altered. SYS@userdata>alter database drop logfile member '/u01/app/oracle/oradata/userdata/redo0402.log'; Database altered. SYS@userdata>alter database drop logfile member '/u01/app/oracle/oradata/userdata/redo0302.log'; alter database drop logfile member '/u01/app/oracle/oradata/userdata/redo0302.log' * ERROR at line 1: ORA-01609: log 3 is the current log for thread 1 - cannot drop members ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/userdata/redo03.log' ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/userdata/redo0302.log' SYS@userdata>alter system switch logfile; System altered. SYS@userdata>select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- ------------------- 1 1 7 104857600 1 YES INACTIVE 1232950 2017-09-14 00:59:10 2 1 8 104857600 1 YES INACTIVE 1232952 2017-09-14 00:59:10 3 1 9 104857600 2 YES ACTIVE 1232954 2017-09-14 00:59:12 4 1 10 104857600 1 NO CURRENT 1234365 2017-09-14 09:58:56 SYS@userdata>alter database drop logfile member '/u01/app/oracle/oradata/userdata/redo0302.log'; Database altered. SYS@userdata>select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- ------------------- 1 1 7 104857600 1 YES INACTIVE 1232950 2017-09-14 00:59:10 2 1 8 104857600 1 YES INACTIVE 1232952 2017-09-14 00:59:10 3 1 9 104857600 1 YES ACTIVE 1232954 2017-09-14 00:59:12 4 1 10 104857600 1 NO CURRENT 1234365 2017-09-14 09:58:56 SYS@userdata>select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_RECOVE ---------- --------------------- --------------------- -------------------------------------------------- --------- 3 ONLINE /u01/app/oracle/oradata/userdata/redo03.log NO 2 ONLINE /u01/app/oracle/oradata/userdata/redo02.log NO 1 ONLINE /u01/app/oracle/oradata/userdata/redo01.log NO 4 ONLINE /u01/app/oracle/oradata/userdata/redo04.log NO
4.刪除日志組
SYS@userdata>select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- ------------------- 1 1 11 104857600 1 YES ACTIVE 1234551 2017-09-14 10:01:57 2 1 12 104857600 1 YES ACTIVE 1234564 2017-09-14 10:02:17 3 1 13 104857600 1 NO CURRENT 1234569 2017-09-14 10:02:28 4 1 10 104857600 1 YES ACTIVE 1234365 2017-09-14 09:58:56 SYS@userdata>alter database drop logfile group 4; alter database drop logfile group 4 * ERROR at line 1: ORA-01624: log 4 needed for crash recovery of instance userdata (thread 1) ORA-00312: online log 4 thread 1: '/u01/app/oracle/oradata/userdata/redo04.log' SYS@userdata>alter system switch logfile; System altered. SYS@userdata>select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- ------------------- 1 1 11 104857600 1 YES ACTIVE 1234551 2017-09-14 10:01:57 2 1 12 104857600 1 YES ACTIVE 1234564 2017-09-14 10:02:17 3 1 13 104857600 1 YES ACTIVE 1234569 2017-09-14 10:02:28 4 1 14 104857600 1 NO CURRENT 1234576 2017-09-14 10:02:46 SYS@userdata>alter system switch logfile; System altered. SYS@userdata>select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- ------------------- 1 1 15 104857600 1 NO CURRENT 1234580 2017-09-14 10:02:55 2 1 12 104857600 1 YES INACTIVE 1234564 2017-09-14 10:02:17 3 1 13 104857600 1 YES INACTIVE 1234569 2017-09-14 10:02:28 4 1 14 104857600 1 YES ACTIVE 1234576 2017-09-14 10:02:46 SYS@userdata>alter system switch logfile; System altered. SYS@userdata>select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- ------------------- 1 1 15 104857600 1 YES INACTIVE 1234580 2017-09-14 10:02:55 2 1 16 104857600 1 NO CURRENT 1234582 2017-09-14 10:03:01 3 1 13 104857600 1 YES INACTIVE 1234569 2017-09-14 10:02:28 4 1 14 104857600 1 YES INACTIVE 1234576 2017-09-14 10:02:46 SYS@userdata>alter database drop logfile group 4; Database altered. SYS@userdata>select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- ------------------- 1 1 15 104857600 1 YES INACTIVE 1234580 2017-09-14 10:02:55 2 1 16 104857600 1 NO CURRENT 1234582 2017-09-14 10:03:01 3 1 13 104857600 1 YES INACTIVE 1234569 2017-09-14 10:02:28
CURRENT和ACTIVE狀態的不能被刪除,且刪除組或者刪除成員redo log的物理文件並不會被刪除.
5.日志文件重命名
這種方式需要重命名的redo log一定是inactive狀態
SYS@userdata>select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- ------------------- 1 1 15 104857600 1 YES INACTIVE 1234580 2017-09-14 10:02:55 2 1 16 104857600 1 NO CURRENT 1234582 2017-09-14 10:03:01 3 1 13 104857600 1 YES INACTIVE 1234569 2017-09-14 10:02:28 SYS@userdata>select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_RECOVE ---------- --------------------- --------------------- -------------------------------------------------- --------- 3 ONLINE /u01/app/oracle/oradata/userdata/redo03.log NO 2 ONLINE /u01/app/oracle/oradata/userdata/redo02.log NO 1 ONLINE /u01/app/oracle/oradata/userdata/redo01.log NO SYS@userdata>host cp /u01/app/oracle/oradata/userdata/redo03.log /u01/app/oracle/oradata/userdata/redo0301.log SYS@userdata>alter database rename file '/u01/app/oracle/oradata/userdata/redo03.log' to '/u01/app/oracle/oradata/userdata/redo0301.log'; Database altered. SYS@userdata>select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_RECOVE ---------- --------------------- --------------------- -------------------------------------------------- --------- 3 ONLINE /u01/app/oracle/oradata/userdata/redo0301.log NO 2 ONLINE /u01/app/oracle/oradata/userdata/redo02.log NO 1 ONLINE /u01/app/oracle/oradata/userdata/redo01.log NO SYS@userdata>select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS FIRST_CHANGE# FIRST_TIME ---------- ---------- ---------- ---------- ---------- --------- ------------------------------------------------ ------------- ------------------- 1 1 15 104857600 1 YES INACTIVE 1234580 2017-09-14 10:02:55 2 1 16 104857600 1 NO CURRENT 1234582 2017-09-14 10:03:01 3 1 13 104857600 1 YES INACTIVE 1234569 2017-09-14 10:02:28
6.日志文件異常處理
SYS@userdata>startup; ORACLE instance started. Total System Global Area 314572800 bytes Fixed Size 2083592 bytes Variable Size 255853816 bytes Database Buffers 50331648 bytes Redo Buffers 6303744 bytes Database mounted. ORA-00313: open failed for members of log group 1 of thread 1 ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/userdata/redo01.log' SYS@userdata>host cat /u01/app/oracle/admin/userdata/bdump/alert_userdata.log ........ Errors in file /u01/app/oracle/admin/userdata/udump/userdata_ora_4755.trc: ORA-00313: open failed for members of log group 1 of thread 1 ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/userdata/redo01.log' ORA-27046: file size is not a multiple of logical block size ........ SYS@userdata>select group#,sequence#,archived,status from v$log; GROUP# SEQUENCE# ARCHIVED STATUS ---------- ---------- --------- ------------------------------------------------ 1 15 YES INACTIVE 3 13 YES INACTIVE 2 16 NO CURRENT SYS@userdata>alter database clear logfile group 1; Database altered. SYS@userdata>alter database open; Database altered.
如果是該日志組還沒有歸檔,則需要用SQL>alter database clear unarchived logfile group 3;
7.日志文件組丟失處理
SYS@userdata>select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_RECOVE ---------- --------------------- --------------------- -------------------------------------------------- --------- 3 ONLINE /u01/app/oracle/oradata/userdata/redo03.log NO 2 ONLINE /u01/app/oracle/oradata/userdata/redo02.log NO 1 ONLINE /u01/app/oracle/oradata/userdata/redo01.log NO SYS@userdata>shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SYS@userdata>host rm -rf /u01/app/oracle/oradata/userdata/redo01.log SYS@userdata>host ls /u01/app/oracle/oradata/userdata/redo01.log ls: /u01/app/oracle/oradata/userdata/redo01.log: No such file or directory SYS@userdata>startup ORACLE instance started. Total System Global Area 314572800 bytes Fixed Size 2083592 bytes Variable Size 255853816 bytes Database Buffers 50331648 bytes Redo Buffers 6303744 bytes Database mounted. ORA-00313: open failed for members of log group 1 of thread 1 ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/userdata/redo01.log' SYS@userdata>alter system set "_allow_resetlogs_corruption"=true scope=spfile; System altered. SYS@userdata>recover database using backup controlfile; ORA-00279: change 1238577 generated at 09/14/2017 12:08:09 needed for thread 1 ORA-00289: suggestion : /arch/1_1_954677154.arch ORA-00280: change 1238577 for thread 1 is in sequence #1 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} ORA-00308: cannot open archived log '/arch/1_1_954677154.arch' ORA-27037: unable to obtain file status Linux-x86_64 Error: 2: No such file or directory Additional information: 3 SYS@userdata>SYS@userdata>shutdown immediate; ORA-01109: database not open Database dismounted. ORACLE instance shut down. SYS@userdata>startup mount; ORACLE instance started. Total System Global Area 314572800 bytes Fixed Size 2083592 bytes Variable Size 255853816 bytes Database Buffers 50331648 bytes Redo Buffers 6303744 bytes Database mounted. SYS@userdata>alter database open resetlogs; Database altered. SYS@userdata>alter system set "_allow_resetlogs_corruption"=false scope=spfile; System altered. SYS@userdata>host ls /u01/app/oracle/oradata/userdata/redo01.log /u01/app/oracle/oradata/userdata/redo01.log SYS@userdata>shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SYS@userdata>startup ORACLE instance started. Total System Global Area 314572800 bytes Fixed Size 2083592 bytes Variable Size 255853816 bytes Database Buffers 50331648 bytes Redo Buffers 6303744 bytes Database mounted. Database opened.
歸檔模式不需要加隱藏參數