'리두로그장애'에 해당되는 글 2건

  1. 2014.11.06 리두로그 장애2
  2. 2014.11.05 리두로그 장애1
2014. 11. 6. 13:41

archive 완료된 그룹이 지워진 후 DB Close 상태


current 아닌 active / inactive 하나의 그룹이 삭제된 후 DB가 종료된 경우


이 상황에서는 DB가 오픈되지 않음


살펴봐야 할 것

archive 완료 여부 :  삭제된 그룹이 삭제 전에 다른 곳으로 저장(archive) 해두었다면 별다른 문제 생기지 않음


장애이유

오라클이 시작할 때 control file을 읽음->지정된 redo log file을 읽으려고 시도 : 현재 os에는 리두로그 파일이 없지만 control file 내용 내에는 redo log file의 경로가 있기때문에 오류가 남


해결책

실제 파일이 없으므로 control file에수 해당그룹의 명단은 삭제


 SYS>startup

ORACLE instance started.


Total System Global Area  422670336 bytes

Fixed Size                  1344616 bytes

Variable Size             293604248 bytes

Database Buffers          121634816 bytes

Redo Buffers                6086656 bytes

Database mounted.

Database opened.


현재상태 확인

SYS>@log


GROUP# MEMBER                                          MB SEQ# STATUS   ARC

------ --------------------------------------------- ---- ---- -------- -----

     1 /data/temp7/redo01_a.log                         5   63 CURRENT  NO

     1 /data/temp7/redo01_b.log                         5   63 CURRENT  NO

     2 /data/temp7/redo02_a.log                         5   62 INACTIVE YES

     2 /data/temp7/redo02_b.log                         5   62 INACTIVE YES


redo log file 삭제 후 장애 확인
SYS>!rm /data/temp7/redo02*

SYS>!ls /data/temp7/*.log
/data/temp7/redo01_a.log  /data/temp7/redo01_b.log

SYS>shutdown immediate
Database closed.
Database dismounted.
ORA-01013: user requested cancel of current operation

강제 종료되었다는 메시지
SYS>startup
ORA-03113: end-of-file on communication channel
SYS>startup
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist

그룹이 삭제되면 오라클이 시작되지 않고 강제 종료 됨

[oracle@localhost ~]$ vi /app/oracle/diag/rdbms/testdb/testdb/trace/alert_testdb.log
vi로 열고  대문자 G를 입력하면 파일의 맨 끝 화면으로 이동함
Thu Nov 06 20:10:06 2014
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x20006098] [PC:0x9A321FF, dbkdEventChk()+1503] [flags: 0x0, count: 1]
Errors in file /app/oracle/diag/rdbms/testdb/testdb/trace/testdb_ora_4295.trc  (incident=69601):
ORA-07445: exception encountered: core dump [dbkdEventChk()+1503] [SIGSEGV] [ADDR:0x20006098] [PC:0x9A321FF] [Address not mapped to object] []
Incident details in: /app/oracle/diag/rdbms/testdb/testdb/incident/incdir_69601/testdb_ora_4295_i69601.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.

어라... 그런데 startup이 안 됨
위 작업시에 shutdown immdiate를 하면서 
중간에  putty에서 복사를 한다고 마우스 오른쪽을 클릭하는 바람에
정상적으로 db가 종료가 된 것이 아니라 abort로 종료가 되었음
그래서 startup 안 됨

어쩔 수 없이 계속 db open 이 안되는 상황이라서
startup force : shutdown abort를 하고 startup를 하는 기능을 해준다.

SYS> startup force
마운트까지 됨
그런데도 db가 죽어서 sqlplus 접속 종료를 하고 sqlplus로 재접속했음
다시 sqlplus로 접속 후 startup mount해 줌

[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on Thu Nov 6 20:48:03 2014

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

Connected to an idle instance.

SYS>startup mount
ORACLE instance started.

Total System Global Area  422670336 bytes
Fixed Size                  1344616 bytes
Variable Size             293604248 bytes
Database Buffers          121634816 bytes
Redo Buffers                6086656 bytes
Database mounted.

[oracle@localhost temp7]$ ls
control01.ctl  example01.dbf  sysaux01.dbf  temp02.dbf
control02.ctl  redo01_a.log   system01.dbf  undotbs01.dbf
control03.ctl  redo01_b.log   temp01.dbf    users01.dbf
[oracle@localhost temp7]$ exit
exit

SYS>@log

GROUP# MEMBER                                          MB SEQ# STATUS   ARC
------ --------------------------------------------- ---- ---- -------- -----
     1 /data/temp7/redo01_a.log                         5   63 CURRENT  NO
     1 /data/temp7/redo01_b.log                         5   63 CURRENT  NO
     2 /data/temp7/redo02_a.log                         5   62 INACTIVE YES
     2 /data/temp7/redo02_b.log                         5   62 INACTIVE YES

오라클에서 권장하는 최소는 그룹 2개에 멤버 1개씩인데 
여기서 내가 그룹2의 리두로그를 모두 지워버리면 이러한 원칙이 깨지게 된다. 
그래서 새로운 리두로그 그룹3을 추가하고 2를 삭제해야 한다.

SYS>alter database drop logfile group 2;
alter database drop logfile group 2
*
ERROR at line 1:
ORA-01567: dropping log 2 would leave less than 2 log files for instance testdb (thread 1)
ORA-00312: online log 2 thread 1: '/data/temp7/redo02_a.log'
ORA-00312: online log 2 thread 1: '/data/temp7/redo02_b.log'


SYS>ed
Wrote file afiedt.buf

  1  alter database add logfile group 3(
  2  '/data/temp7/redo03_a.log',
  3 '/data/temp7/redo03_b.log') size 50m
  4  /

SYS>alter database drop logfile group 2;

Database altered.

SYS>alter database open;

Database altered.

SYS>select member from v$logfile;

MEMBER
---------------------------------------------
/data/temp7/redo01_a.log
/data/temp7/redo01_b.log
/data/temp7/redo03_a.log
/data/temp7/redo03_b.log

오픈이 된다. 복구 완료!

SYS>ed
Wrote file afiedt.buf

  1  alter database add logfile group 2
  2  ('/data/temp7/redo02_a.log',
  3* '/data/temp7/redo02_b.log') size 50m
SYS>/

Database altered.

다시 2를 추가해준다.

SYS>select member from v$logfile;

MEMBER
---------------------------------------------
/data/temp7/redo02_a.log
/data/temp7/redo02_b.log
/data/temp7/redo01_a.log
/data/temp7/redo01_b.log
/data/temp7/redo03_a.log
/data/temp7/redo03_b.log

6 rows selected.


'DB > oralce' 카테고리의 다른 글

export/import 1 미완  (0) 2014.11.06
리두로그 장애3  (0) 2014.11.06
리두로그 장애1  (0) 2014.11.05
리두로그마이너 - 정리 덜됨...엉망임;;  (0) 2014.11.05
컨트롤 파일복구 3-1  (0) 2014.11.04
Posted by 성장하는yw
2014. 11. 5. 19:10

1개의 멤버가 삭제되는 장애 발생


SYS>startup

ORACLE instance started.


Total System Global Area  422670336 bytes

Fixed Size                  1344616 bytes

Variable Size             293604248 bytes

Database Buffers          121634816 bytes

Redo Buffers                6086656 bytes

Database mounted.

Database opened.


log.sql 파일 내용
SYS>!vi log.sql
set line 200
col group# for 999
col mb for 999
col member for a45
col seq# for 999
col status for a8
col arc for a5

SELECT a.group#,a.member,b.bytes /1024/1024 MB, b.sequence# "SEQ#", b.status,
b.archived "ARC"
FROM v$logfile a,v$log b
where a.group#=b.group#
order by 1,2
/



SYS>!vi log.sql


SYS>@log


GROUP# MEMBER                                          MB SEQ# STATUS   ARC

------ --------------------------------------------- ---- ---- -------- -----

     1 /data/temp7/redo01_a.log                         5   57 CURRENT  NO

     1 /data/temp7/redo01_b.log                         5   57 CURRENT  NO

     2 /data/temp7/redo02_a.log                         5   56 INACTIVE YES

     2 /data/temp7/redo02_b.log                         5   56 INACTIVE YES


redo01_a.log 삭제
[oracle@localhost ~]$ rm -f /data/temp7/redo01_a.log
[oracle@localhost ~]$ ls -al /data/temp7/*.log
-rw-r----- 1 oracle oinstall 5243392 Nov  6 02:49 /data/temp7/redo01_b.log
-rw-r----- 1 oracle oinstall 5243392 Nov  6 02:46 /data/temp7/redo02_a.log
-rw-r----- 1 oracle oinstall 5243392 Nov  6 02:46 /data/temp7/redo02_b.log

[oracle@localhost ~]$ exit
exit

SYS>alter system switch logfile;

System altered.

SYS>/

System altered.

SYS>/

System altered.

SYS>/

System altered.

파일을 지웠지만 있다고 나옴
SYS>@log

GROUP# MEMBER                                          MB SEQ# STATUS   ARC
------ --------------------------------------------- ---- ---- -------- -----
     1 /data/temp7/redo01_a.log                         5   61 CURRENT  NO
     1 /data/temp7/redo01_b.log                         5   61 CURRENT  NO
     2 /data/temp7/redo02_a.log                         5   60 INACTIVE YES
     2 /data/temp7/redo02_b.log                         5   60 INACTIVE YES

정확한 장애내용은 alert log 파일을 열어 확인

SYS>!

[oracle@localhost ~]$ vi  $ORACLE_BASE/diag/rdbms/testdb/testdb/trace/alert_testdb.log
...생략

Errors in file /app/oracle/diag/rdbms/testdb/testdb/trace/testdb_arc1_7763.trc:

ORA-00313: open failed for members of log group 1 of thread 1

ORA-00312: online log 1 thread 1: '/data/temp7/redo01_a.log'

ORA-27037: unable to obtain file status

Linux Error: 2: No such file or directory

Additional information: 3

...생략

장애가 확인 된 멤버는 삭제 후 다시 생성하면 됨
SYS>@log

GROUP# MEMBER                                          MB SEQ# STATUS   ARC
------ --------------------------------------------- ---- ---- -------- -----
     1 /data/temp7/redo01_a.log                         5   61 CURRENT  NO
     1 /data/temp7/redo01_b.log                         5   61 CURRENT  NO
     2 /data/temp7/redo02_a.log                         5   60 INACTIVE YES
     2 /data/temp7/redo02_b.log                         5   60 INACTIVE YES

SYS>alter system switch logfile;

System altered.

SYS>@log

GROUP# MEMBER                                          MB SEQ# STATUS   ARC
------ --------------------------------------------- ---- ---- -------- -----
     1 /data/temp7/redo01_a.log                         5   61 ACTIVE   YES
     1 /data/temp7/redo01_b.log                         5   61 ACTIVE   YES
     2 /data/temp7/redo02_a.log                         5   62 CURRENT  NO
     2 /data/temp7/redo02_b.log                         5   62 CURRENT  NO


SYS>alter database drop logfile member
  2  '/data/temp7/redo01_a.log';

Database altered.

SYS>@log

GROUP# MEMBER                                          MB SEQ# STATUS   ARC
------ --------------------------------------------- ---- ---- -------- -----
     1 /data/temp7/redo01_b.log                         5   61 ACTIVE   YES
     2 /data/temp7/redo02_a.log                         5   62 CURRENT  NO
     2 /data/temp7/redo02_b.log                         5   62 CURRENT  NO

SYS>alter database add logfile member

  2  '/data/temp7/redo01_a.log' to group 1;


Database altered.


SYS>@log


GROUP# MEMBER                                          MB SEQ# STATUS   ARC

------ --------------------------------------------- ---- ---- -------- -----

     1 /data/temp7/redo01_a.log                         5   61 INACTIVE YES

     1 /data/temp7/redo01_b.log                         5   61 INACTIVE YES

     2 /data/temp7/redo02_a.log                         5   62 CURRENT  NO

     2 /data/temp7/redo02_b.log                         5   62 CURRENT  NO





'DB > oralce' 카테고리의 다른 글

리두로그 장애3  (0) 2014.11.06
리두로그 장애2  (0) 2014.11.06
리두로그마이너 - 정리 덜됨...엉망임;;  (0) 2014.11.05
컨트롤 파일복구 3-1  (0) 2014.11.04
컨트롤 파일 복구 3  (0) 2014.11.04
Posted by 성장하는yw