반응형
1. Redolog
0 ONLINE /DBMS/TIBERO/tbdata/redo001.redo 1 ONLINE /DBMS/TIBERO/tbdata/redo011.redo 2 ONLINE /DBMS/TIBERO/tbdata/redo021.redo |
2. 백업 전 TSN값
select CURRENT_TSN as Controlfile_TSN from v$database / select distinct(CKPT_TSN) as Datafile_TSN from v$datafile / CONTROLFILE_TSN --------------- 98834368 DATAFILE_TSN ------------ 98834332 |
3. Table 생성 데이터 삽입
-- 1. 테이블 생성 CREATE TABLE tibero.test_backup ( id NUMBER PRIMARY KEY, name VARCHAR2(100), created_at DATE )tablespace TS_TEST; -- 2. 데이터 삽입 BEGIN FOR i IN 1 .. 100 LOOP INSERT INTO tibero.test_backup ( id, name, created_at ) VALUES ( i, 'User_' || TO_CHAR(i), SYSDATE - MOD(i, 365) ); END LOOP; COMMIT; END; select count(*) from TIBERO.TEST_BACKUP; 100 개 |
3. begin backup + 데이터 insert
alter database begin backup; CONTROLFILE_TSN --------------- 98834489 DATAFILE_TSN ------------ 98834454 -> 이때가 row100개 까지 있을때 찍힌 TSN data 200개 insert 후 commit -> redo log기록됨 -> data buffer에 기록되있음 alter system switch logfile; alter system switch logfile; alter system switch logfile; -> redo logfile -> Archive로 떨군다 -rw-------. 1 tibero dba 512 5월 8 13:28 log-t0-r98827215-s10.arc -rw-------. 1 tibero dba 512 5월 8 13:28 log-t0-r98827215-s11.arc -rw-------. 1 tibero dba 882688 5월 8 13:28 log-t0-r98827215-s9.arc 3개 생성됨 ALTER SYSTEM CHECKPOINT; -> 데이터 파일에 기록 System altered. select CURRENT_TSN as Controlfile_TSN from v$database / select distinct(CKPT_TSN) as Datafile_TSN from v$datafile CONTROLFILE_TSN --------------- 98835463 1 row selected. DATAFILE_TSN ------------ 98834454 -> begin이 찍혀있어서 datafile TSN값은 변하지 않지만, Datafile에 데이터는 계쏙 쓰여지고 있는거임 -rw-------. 1 tibero dba 807424 5월 8 14:07 log-t0-r98827215-s12.arc -rw-------. 1 tibero dba 512 5월 8 14:07 log-t0-r98827215-s13.arc -rw-------. 1 tibero dba 512 5월 8 14:07 log-t0-r98827215-s14.arc 12, 13 ,14 여기에 checkpoint.한 시점까지의 Archive 있음 98834454 은 log-t0-r98827215-s9.arc ~ log-t0-r98827215-s10.arc 사이의 TSN 이다 . |
4. 추가로 데이터 100개 insert + endbackup
데이터 파일 Copy cp -R tbdata tbdata_bak data 100개 insert 지금까지 400개임 alter database end backup; alter system switch logfile; alter system switch logfile; alter system switch logfile; -rw-------. 1 tibero dba 512 5월 8 13:28 log-t0-r98827215-s10.arc -rw-------. 1 tibero dba 512 5월 8 13:28 log-t0-r98827215-s11.arc -rw-------. 1 tibero dba 807424 5월 8 14:07 log-t0-r98827215-s12.arc -rw-------. 1 tibero dba 512 5월 8 14:07 log-t0-r98827215-s13.arc -rw-------. 1 tibero dba 512 5월 8 14:07 log-t0-r98827215-s14.arc -rw-------. 1 tibero dba 60416 5월 8 14:11 log-t0-r98827215-s15.arc -rw-------. 1 tibero dba 512 5월 8 14:11 log-t0-r98827215-s16.arc -rw-------. 1 tibero dba 512 5월 8 14:11 log-t0-r98827215-s17.arc data 100개 insert 500개임 |
5. controfile 파일 백업
ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/DBMS/TIBERO/tbcontrol_file/con_bak.sql' REUSE NORESETLOGS; |
※장애발생 controlfile, redolog 파일 유실, Archive 일부 유실
1. copy 했던 datafile 로 복구
mv tbdata tbdata_temp mv tbdata_bak tbdata |
2. tbboot nomount
nomount 기동후 controlfile 재생성 CREATE CONTROLFILE REUSE DATABASE "IDC42" LOGFILE GROUP 1 '/DBMS/TIBERO/tbdata/redo001.redo' SIZE 50M, GROUP 2 '/DBMS/TIBERO/tbdata/redo011.redo' SIZE 50M, GROUP 3 '/DBMS/TIBERO/tbdata/redo021.redo' SIZE 50M RESETLOGS ~~~~ ; Tibero는 Controlfile 재생성 시, 자동으로 mount 단계로 넘어감 |
3. 다 유실 했다는 가정하에, Datafile만 가지고 recover,
4. recover
alter database open resetlogs; ******************************************************** * Critical Warning : Raise svmode failed. The reason is * TBR-1024 : Database needs media recovery: improperly closed(/DBMS/TIBERO/tbdata/system001.dtf). * Current server mode is MOUNT. ******************************************************** TBR-1024: Database needs media recovery: improperly closed(/DBMS/TIBERO/tbdata/system001.dtf). 바로 resetlogs로 안올라감 alter database recover automatic; SQL> alter database recover automatic; TBR-1027: Unable to find archive log file for thread 0 from change 98834454. log-t0-r98827215-s9.arc ~ log-t0-r98827215-s10.arc 사이의 TSN 위 2개의 Archive log만 가져와서 복구 시도 [2025-05-08T14:32:18.406051] [DDL-46] [I] Executing DDL: alter database recover automatic [2025-05-08T14:32:18.406162] [RVP-12] [I] RV master received MEDIA_RECOVERY request [2025-05-08T14:32:18.406219] [CLC-21] [I] RV slave 1 received MEDIA_RECOVERY job [2025-05-08T14:32:18.406802] [CLR-21] [I] DF #0 (ts 0) resetlogs tsn=98827215, CF resetlogs tsn=98827215 [2025-05-08T14:32:18.406814] [RV-21] [I] DF #0(0) CKPT 2025-05-08 13:23:24,0000.05e41816(2737,2738) CF[CKPT 2025-05-08 13:23:24,0000.05e41816(2738), STOP 2025-05-08 14:18:22,ffff.ffffffff] FUZZY(online=1,backup=1,mr=0) rf(0000.00000000) 3 [2025-05-08T14:32:18.407152] [CLR-21] [I] DF #1 (ts 1) resetlogs tsn=98827215, CF resetlogs tsn=98827215 [2025-05-08T14:32:18.407164] [RV-21] [I] DF #1(1) CKPT 2025-05-08 13:23:24,0000.05e41816(2737,2738) CF[CKPT 2025-05-08 13:23:24,0000.05e41816(2738), STOP 2025-05-08 14:18:22,ffff.ffffffff] FUZZY(online=1,backup=1,mr=0) rf(0000.00000000) 3 [2025-05-08T14:32:18.407486] [CLR-21] [I] DF #2 (ts 3) resetlogs tsn=98827215, CF resetlogs tsn=98827215 [2025-05-08T14:32:18.407494] [RV-21] [I] DF #2(3) CKPT 2025-05-08 13:23:24,0000.05e41816(2737,2738) CF[CKPT 2025-05-08 13:23:24,0000.05e41816(2738), STOP 2025-05-08 14:18:22,ffff.ffffffff] FUZZY(online=1,backup=1,mr=0) rf(0000.00000000) 3 [2025-05-08T14:32:18.407796] [CLR-21] [I] DF #3 (ts 4) resetlogs tsn=98827215, CF resetlogs tsn=98827215 [2025-05-08T14:32:18.407804] [RV-21] [I] DF #3(4) CKPT 2025-05-08 13:23:24,0000.05e41816(2696,2697) CF[CKPT 2025-05-08 13:23:24,0000.05e41816(2697), STOP 2025-05-08 14:18:22,ffff.ffffffff] FUZZY(online=1,backup=1,mr=0) rf(0000.00000000) 3 [2025-05-08T14:32:18.408113] [CLR-21] [I] DF #4 (ts 5) resetlogs tsn=98827215, CF resetlogs tsn=98827215 [2025-05-08T14:32:18.408123] [RV-21] [I] DF #4(5) CKPT 2025-05-08 13:23:24,0000.05e41816(2546,2547) CF[CKPT 2025-05-08 13:23:24,0000.05e41816(2547), STOP 2025-05-08 14:18:22,ffff.ffffffff] FUZZY(online=1,backup=1,mr=0) rf(0000.00000000) 3 [2025-05-08T14:32:18.408429] [CLR-21] [I] DF #5 (ts 12) resetlogs tsn=98827215, CF resetlogs tsn=98827215 [2025-05-08T14:32:18.408437] [RV-21] [I] DF #5(12) CKPT 2025-05-08 13:23:24,0000.05e41816(1080,1081) CF[CKPT 2025-05-08 13:23:24,0000.05e41816(1081), STOP 2025-05-08 14:18:22,ffff.ffffffff] FUZZY(online=1,backup=1,mr=0) rf(0000.00000000) 3 [2025-05-08T14:32:18.408725] [CLR-21] [I] DF #6 (ts 13) resetlogs tsn=98827215, CF resetlogs tsn=98827215 [2025-05-08T14:32:18.408733] [RV-21] [I] DF #6(13) CKPT 2025-05-08 13:23:24,0000.05e41816(1073,1074) CF[CKPT 2025-05-08 13:23:24,0000.05e41816(1074), STOP 2025-05-08 14:18:22,ffff.ffffffff] FUZZY(online=1,backup=1,mr=0) rf(0000.00000000) 3 [2025-05-08T14:32:18.409018] [CLR-21] [I] DF #7 (ts 14) resetlogs tsn=98827215, CF resetlogs tsn=98827215 [2025-05-08T14:32:18.409025] [RV-21] [I] DF #7(14) CKPT 2025-05-08 13:23:24,0000.05e41816(1071,1072) CF[CKPT 2025-05-08 13:23:24,0000.05e41816(1072), STOP 2025-05-08 14:18:22,ffff.ffffffff] FUZZY(online=1,backup=1,mr=0) rf(0000.00000000) 3 [2025-05-08T14:32:18.423067] [CLC-21] [I] MRSET (2097152 buckets) initialized [2025-05-08T14:32:18.453993] [CLC-21] [I] MR set next logfile (THREAD#0, seq 9) - /DBMS/TIBERO/tbarch/log-t0-r98827215-s9.arc [2025-05-08T14:32:18.455030] [RCF-21] [I] DATAFILES OPEN: for recovery (stop 0000.05e418a4) [2025-05-08T14:32:18.465892] [CLR-21] [I] invalid logfile(/DBMS/TIBERO/tbarch/log-t0-r98827215-s9.arc, seq#9): too old [2025-05-08T14:32:18.465916] [CLC-21] [I] MR set next logfile (THREAD#0, seq 10) - /DBMS/TIBERO/tbarch/log-t0-r98827215-s10.arc [2025-05-08T14:32:18.466611] [RCF-21] [I] DATAFILES OPEN: for recovery (stop 0000.05e418a6) [2025-05-08T14:32:18.471660] [CLR-21] [I] invalid logfile(/DBMS/TIBERO/tbarch/log-t0-r98827215-s10.arc, seq#10): too old [2025-05-08T14:32:18.589675] [CLR-21] [I] Searching online logfile dest current lfid = 65535, seqno= 4294967295 [2025-05-08T14:32:18.590334] [CLL-21] [I] size error: file_size=0, block_size=512 (/DBMS/TIBERO/tbdata/redo001.redo) [2025-05-08T14:32:18.590348] [RLS-21] [I] Failed to read 1 log blocks LF#1(member=0, blkno=0) [2025-05-08T14:32:18.590379] [FRM-21] [I] THROW. ec=ERROR_CACHE_LOG_READ_FAILED(-1007) [ Unable to read log file in group 1, block 0. ] (csr_id:4294967295) [rv_lscan.c:435:lscan_read_blks_] [2025-05-08T14:32:18.590394] [CLL-21] [I] logfile 1 is invalid online log file [2025-05-08T14:32:18.591993] [RCF-21] [I] DATAFILES OPEN: for recovery (stop 0000.05e418a6) [2025-05-08T14:32:18.599647] [RV-21] [I] MMR start 29 blks (size 17129692(17390128)/442285380) [2025-05-08T14:32:18.606415] [CLC-21] [I] MMR 29 blks DONE [2025-05-08T14:32:18.607007] [RCF-21] [I] REDO THREAD #0 CKPT updated to 0.0/0000.05e418a6 (prev 0.0/0000.05e41816) [2025-05-08T14:32:18.607023] [RCF-21] [I] DB CKPT updated: 0000.05e41816 => 0000.05e418a6 (open count=0) [2025-05-08T14:32:18.615308] [COM-21] [I] Internal Error with condition 'cf_ckpt_tsn == df_ckpt_tsn' (2 args) (cf_df.c:2891:cf_mrfinish_df) (pid=15109, sessid=21, tid=21) [2025-05-08T14:32:24.902001] [COM-21] [I] Internal Error with condition '(dfhdrblk->status & (DFHDR_FUZZY_BACKUP | DFHDR_FUZZY_ONLINE | DFHDR_FUZZY_MR)) == 0' (1 args) (cf_df.c:2896:cf_mrfinish_df) (pid=15109, sessid=21, tid=21) internal 에러 맞고 DB 죽음 |
5. Archive로그를 하나씩 부어가면서 어디까지 넣어야 복구가 되는지 확인
log-t0-r98827215-s11.arc -> 실패 log-t0-r98827215-s12.arc -> 실패 log-t0-r98827215-s13.arc -> 실패 log-t0-r98827215-s14.arc -> 실패 log-t0-r98827215-s15.arc SQL> alter database recover automatic; TBR-1072: Current online log file (thread 0 seq -1) is outdated. Need a log with seq 16 to recover from TSN 98835598. Recovery done until 2025/05/08 14:11:22 TSN 98835597. Recovery is incomplete and resetlogs is required. 16을 요구함 로그확인 [2025-05-08T14:40:05.688249] [CLC-32] [I] MR set next logfile (THREAD#0, seq 15) - /DBMS/TIBERO/tbarch/log-t0-r98827215-s15.arc [2025-05-08T14:40:05.688904] [RCF-32] [I] DATAFILES OPEN: for recovery (stop 0000.05e41c8e) [2025-05-08T14:40:05.694574] [CLR-32] [I] invalid logfile(/DBMS/TIBERO/tbarch/log-t0-r98827215-s15.arc, seq#15): too old [2025-05-08T14:40:05.828775] [CLR-32] [I] Searching online logfile dest current lfid = 65535, seqno= 4294967295 [2025-05-08T14:40:05.829425] [CLL-32] [I] size error: file_size=0, block_size=512 (/DBMS/TIBERO/tbdata/redo001.redo) [2025-05-08T14:40:05.829444] [RLS-32] [I] Failed to read 1 log blocks LF#1(member=0, blkno=0) [2025-05-08T14:40:05.829467] [FRM-32] [I] THROW. ec=ERROR_CACHE_LOG_READ_FAILED(-1007) [ Unable to read log file in group 1, block 0. ] (csr_id:4294967295) [rv_lscan.c:435:lscan_read_blks_] [2025-05-08T14:40:05.829488] [CLL-32] [I] logfile 1 is invalid online log file [2025-05-08T14:40:05.830793] [RCF-32] [I] DATAFILES OPEN: for recovery (stop 0000.05e41c8e) [2025-05-08T14:40:05.838216] [RV-32] [I] MMR start 115 blks (size 17936062(18278392)/436203180) [2025-05-08T14:40:05.872390] [CLC-32] [I] MMR 115 blks DONE [2025-05-08T14:40:05.972800] [RCF-32] [I] REDO THREAD #0 CKPT updated to 0.0/0000.05e41c8e (prev 0.0/0000.05e41c2d) [2025-05-08T14:40:05.972843] [RCF-32] [I] DB CKPT updated: 0000.05e41c2d => 0000.05e41c8e (open count=0) [2025-05-08T14:40:05.990092] [RV-32] [I] current online log file is outdated. seqno=-1, need seqno=16 [2025-05-08T14:40:05.990168] [FRM-32] [I] THROW. ec=ERROR_CACHE_MR_NO_MORE_LOGS_RESETLOGS(-1072) [ Current online log file (thread 0 seq -1) is outdated. Need a log with seq 16 to recover from TSN 98835598. Recovery done until 2025/05/08 14:11:22 TSN 98835597. Recovery is incomplete and resetlogs is required. ] (csr_id:4294967295) [rv_mr.c:2605:rv_mr_get_logfile_needed] [2025-05-08T14:40:06.023821] [RVP-13] [I] RV master received SLAVE 1(32) DONE [2025-05-08T14:40:06.023961] [DDL-57] [I] DDL execution failed (ec = -1072): alter database recover automatic 유실했다고 가정하고 resetlogs로 open alter database open resetlogs; Database altered. |
6. Data 갯수 확인
-> 400개 까지 있음
📦 예를 들어 TSN= 100 이라면 Begin backup 이후에 checkpoint발생해서 TSN이 101이 됬다면, 101까지의 Archive log만 있다면, 101 시점까지 복구 될줄 알았는데, 안되는거 같다.
결론 : Tibero는 Endbackup 찍고 떨어진 Archive log까지가 있어야 한다.
반응형
'Database > Tibero' 카테고리의 다른 글
[TIBERO] 인덱스 추가 시, Plan변화 TEST (0) | 2023.05.04 |
---|---|
[TIBERO] 특정 User로 접속시 Trigger로 DDL,DML 제한걸기 (0) | 2022.12.15 |
[TIBERO] TPR 분석 (0) | 2022.12.13 |
[TIBERO] Constraint , index 제거 (0) | 2022.12.08 |
[TEST] 백업 / 복구 스크립트 (0) | 2022.11.23 |