현상
hotbackup본으로 Data 복구시 Internal Error가 발생하는 상황으로, 복구 수행 후 2131 Generic I/O 에러가 발생합니다.
SQL> alter database recover automatic;
TBR-2131: Generic I/O error.
SQL
복사
Slog
Internal Error with condition '(dfhdrblk->status & (DFHDR_FUZZY_BACKUP | DFHDR_FUZZY_ONLINE | DFHDR_FUZZY_MR)) == 0' (1 args)
SQL
복사
원인
hotbackup본이 아닌, 운영중에 copy가 된 DataFile을 복구해 에러가 발생했습니다.
[09-12T17:52:41.294993] [RV-94] [I] DF #0(0) CKPT 2024-09-12 01:30:02,0000.65520be5(431563,431564) CF[CKPT 2024-09-12 01:30:02,0000.65520be5(431564), STOP 2024-09-12 17:49:33,ffff.ffffffff] FUZZY(online=1,backup=1,mr=0) rf(0000.00000000) 3
...중략
[09-12T17:52:41.295694] [RV-94] [I] DF #22(17) CKPT 2024-09-12 01:36:04,0000.6552172f(430491,430492) CF[CKPT 2024-09-12 01:36:04,0000.6552172f(430492), STOP 2024-09-12 17:49:33,ffff.ffffffff] FUZZY(online=1,backup=0,mr=0) rf(0000.00000000) 3
…중략
[09-12T17:52:43.379852] [CLL-94] [I] logfile 1 is invalid online log file
[09-12T17:52:44.051391] [COM-94] [I] Internal Error with condition '(dfhdrblk->status & (DFHDR_FUZZY_BACKUP | DFHDR_FUZZY_ONLINE | DFHDR_FUZZY_MR)) == 0'
SQL
복사
•
Media recovery를 모두 완료하고 DataFile header을 업데이트해야하나, 아직 위 flag가 모두 종료되지 않은 관계로 Media recovery가 완료되지 않으면 에러가 발생합니다.
•
begin backup ~ end backup 이 아닌 타이밍에 백업된 Datafile이 존재한 것으로 파악됩니다.
해결
hotbackup 스크립트 및 Datafile 백업을 정상적으로 수행합니다.
백업 정상 수행여부 확인
1. 백업한 Datafile의 Datafile header status 값 확인
tbhdreditor 툴을 사용하여 백업한 Datafile(이하 DF)의 DFhdr(datafile header) status를 하나씩 6 값이 되었는지 확인합니다. (online 값: 2, backup 값 4 => 2 + 4 = 6)
tbhdreditor 툴 사용 방법
tbhdredotor -d system001.dtf -v > output
SQL
복사
수행 후 Status 값을 확인합니다.
2. 백업본으로 MR 수행
백업본으로 MR 수행 하여 Slog에 모든 DF가 backup = 1이 되어 있는지 확인합니다.
[09-09T12:56:50.789296] [RV-105] [I] DF #0(0) CKPT 2024-09-09 01:30:01,0000.6529b4ac(430669,430670) CF[CKPT 2024-09-09 01:30:01,0000.6529b4ac(430670), STOP 2024-09-09 12:53:48,ffff.ffffffff] FUZZY(online=1,backup=1,mr=0) rf(0000.00000000) 3[09-09T12:56:50.789399] [CLR-105] [I] DF #1 (ts 1) resetlogs tsn=0, CF resetlogs tsn=0
[09-09T12:56:50.789404] [RV-105] [I] DF #1(1) CKPT 2024-09-09 01:30:02,0000.6529b4c3(234476,234477) CF[CKPT 2024-09-09 01:30:02,0000.6529b4c3(234477), STOP 2024-09-09 12:53:48,ffff.ffffffff] FUZZY(online=1,backup=1,mr=0) rf(0000.00000000) 3[09-09T12:56:50.789459] [CLR-105] [I] DF #2 (ts 3) resetlogs tsn=0, CF resetlogs tsn=0
[09-09T12:56:50.789464] [RV-105] [I] DF #2(3) CKPT 2024-09-09 01:30:03,0000.6529b4dc(430665,430666) CF[CKPT 2024-09-09 01:30:03,0000.6529b4dc(430666), STOP 2024-09-09 12:53:48,ffff.ffffffff] FUZZY(online=1,backup=1,mr=0) rf(0000.00000000) 3[09-09T12:56:50.789512] [CLR-105] [I] DF #3 (ts 4) resetlogs tsn=0, CF resetlogs tsn=0
[09-09T12:56:50.789516] [RV-105] [I] DF #3(4) CKPT 2024-09-09 01:30:04,0000.6529b4ee(430629,430630) CF[CKPT 2024-09-09 01:30:04,0000.6529b4ee(430630), STOP 2024-09-09 12:53:48,ffff.ffffffff] FUZZY(online=1,backup=1,mr=0) rf(0000.00000000) 3[09-09T12:56:50.789571] [CLR-105] [I] DF #4 (ts 5) resetlogs tsn=0, CF resetlogs tsn=0
SQL
복사