문서유형ㅣ기술정보
분야ㅣ관리/환경설정
적용제품버전ㅣTibero 7.2.3
문서번호ㅣTADTI146
개요
Hot Backup 수행 이후, 백업 시점 이후에 데이터파일이 추가된 상태에서 불완전 복구를 수행할 경우, Resetlogs 기동 시 MISSING 데이터파일로 인해 정상적인 기동이 불가합니다. 이러한 상황에서 TSN 기반 불완전 복구를 수행하고, 추가된 데이터파일을 포함하여 복구를 완료하는 절차를 작성하였습니다.
복구 시나리오 요약
- 컨트롤파일 재생성
- 아카이브로그 덤프를 추출하여 tsn-1 값으로 불완전복구 진행
- 불완전복구 완료 resetlogs 기동
- 미싱데이터파일들 추가
- 미싱데이터파일 추가 후 tsn값으로 불완전복구 재진행
- 복구 완료 후 리셋로그 기동
방법
1. Controlfile 적용
$ tbboot nomount
$ tbsql sys/tibero
SQL> CREATE CONTROLFILE REUSE DATABASE "testdb"
LOGFILE
-- Thread #0
GROUP 0 (
'/root/tibero_engine/database/tbdata/system/redo001.redo',
'/root/tibero_engine/database/tbdata/system/redo002.redo'
) SIZE 30M,
GROUP 1 (
'/root/tibero_engine/database/tbdata/system/redo011.redo',
'/root/tibero_engine/database/tbdata/system/redo012.redo'
) SIZE 30M,
GROUP 2 (
'/root/tibero_engine/database/tbdata/system/redo021.redo',
'/root/tibero_engine/database/tbdata/system/redo022.redo'
) SIZE 30M,
GROUP 3 (
'/root/tibero_engine/database/tbdata/system/redo031.redo',
'/root/tibero_engine/database/tbdata/system/redo032.redo'
) SIZE 30M,
GROUP 4 (
'/root/tibero_engine/database/tbdata/system/redo041.redo',
'/root/tibero_engine/database/tbdata/system/redo042.redo'
) SIZE 30M
RESETLOGS
DATAFILE
'/root/tibero_engine/database/tbdata/system/system001.dtf',
'/root/tibero_engine/database/tbdata/system/undo001.dtf',
'/root/tibero_engine/database/tbdata/system/usr001.dtf',
'/root/tibero_engine/database/tbdata/syssub001.dtf'
ARCHIVELOG
MAXLOGFILES 100
MAXFBLOGFILES 255
MAXLOGMEMBERS 8
MAXDATAFILES 256
MAXARCHIVELOG 500
MAXBACKUPSET 500
MAXLOGHISTORY 500
MAXFBMARKER 168
MAXFBARCHIVELOG 500
CHARACTER SET UTF8
NATIONAL CHARACTER SET UTF16
;
2. TSN 기반 불완전 복구 수행
##### ARCHIVE 활용하여 TSN 값 추출 $ tblogdump -a 00001803 -n 0 log-t0-r0-s16.arc > log.txt $ cat log.txt | grep next next=0000.00010456 2025-12-18 17:55:23 ※ 적용 TSN : 66645 (tsn -1) ##### 불완전 복구 수행 $ tbsql sys/tibero SQL> alter database recover automatic database until change 66645; TBR-1147: Need log file (thread 0 seq 17) to recover from TSN 66645. Recovery done until 2025/12/18 17:55:13 TSN 66638. Recovery is incomplete and resetlogs is required.
3. DB resetlogs 기동
- resetlogs 기동 시 아래와 같은 경고가 발생하며 MOUNT 상태로 기동됩니다.
$ tbboot resetlogs; Change core dump dir to /root/tibero_engine/bin/prof. Listener port = 8629 1) Find MISSING datafiles from V$DATAFILE. 2) Restore the corresponding backup datafiles. 3) If they were newly added after the start of the backup, create the physical files with each df id. : SQL> ALTER DATABASE CREATE DATAFILE df_id; 4) Rename(OS cmd) the corresponding files at DB_CREATE_FILE_DEST to their original names. 5) Rename(SQL) MISSING datafiles to each original names. : SQL> ALTER DATABASE RENAME FILE 'MISSING_file_path' to 'original_file_path'; 6) Request the Media Recovery again as before. ******************************************************** * Critical Warning : Raise svmode failed. The reason is * TBR-24018 : CF-DD correction is required due to wrong CF/DD info or added/dropped datafiles while recovery process. * Current server mode is MOUNT. ******************************************************* Tibero 7 TmaxTibero Corporation Copyright (c) 2020-. All rights reserved. Tibero instance started suspended at MOUNT mode.
4. 누락된 데이터파일 확인 및 생성(미싱데이터파일)
$ tbsql sys/tibero tbSQL 7 TmaxTibero Corporation Copyright (c) 2020-. All rights reserved. Connected to Tibero. ##### MISSING 데이터파일 확인 SQL> select * from v$datafile; TS# NAME STATUS --- -------------------------------------------------------------------- --------------- 0 /root/tibero_engine/database/tbdata/system/system001.dtf ONLINE 1 /root/tibero_engine/database/tbdata/system/undo001.dtf ONLINE 3 /root/tibero_engine/database/tbdata/system/usr001.dtf ONLINE 4 /root/tibero_engine/database/tbdata/syssub001.dtf ONLINE 3 /root/tibero_engine/database/tbdata/MISSING000004 MR NEEDED ##### MR NEEDED 상태 데이터파일 생성 SQL> alter database create datafile 4; Database altered. SQL> select name from v$datafile; NAME ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- /root/tibero_engine/database/tbdata/system/system001.dtf /root/tibero_engine/database/tbdata/system/undo001.dtf /root/tibero_engine/database/tbdata/system/usr001.dtf /root/tibero_engine/database/tbdata/syssub001.dtf /root/tibero_engine/database/tbdata/MISSING000004 5 rows selected. ##### MR NEEDED 상태 데이터파일 생성 후 실제 데이터파일 이름으로 변경 SQL> !cp -Rp /root/tibero_engine/database/tbdata/MISSING000004 /root/tibero_engine/database/tbdata/usr002.dtf SQL> alter database rename file '/root/tibero_engine/database/tbdata/MISSING000004' to '/root/tibero_engine/database/tbdata/usr002.dtf'; Database altered.
5. 누락된 데이터파일 추가 후 불완전 복구 재수행
SQL> alter database recover automatic database until change 66645; TBR-1147: Need log file (thread 0 seq 17) to recover from TSN 66645. Recovery done until 2025/12/18 17:55:13 TSN 66638. Recovery is incomplete and resetlogs is required. SQL> exit Disconnected.
6. DB resetlogs 기동
$ tbdown immediate Tibero instance terminated (IMMEDIATE mode). $ tbboot resetlogs; Change core dump dir to /root/tibero_engine/bin/prof. Listener port = 8629 Tibero 7 TmaxTibero Corporation Copyright (c) 2020-. All rights reserved. Tibero instance started up (NORMAL RESETLOGS mode). $ tbsql sys/tibero tbSQL 7 TmaxTibero Corporation Copyright (c) 2020-. All rights reserved. Connected to Tibero. SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/root/tibero_engine/database/tbdata/system/temp001.dtf'SIZE 100M REUSE AUTOEXTEND ON NEXT 256K MAXSIZE 32G; Tablespace 'TEMP' altered. SQL> SQL> exit Disconnected. $ tbdown immediate Tibero instance terminated (IMMEDIATE mode). $ tbboot Change core dump dir to /root/tibero_engine/bin/prof. Listener port = 8629 Tibero 7 TmaxTibero Corporation Copyright (c) 2020-. All rights reserved. Tibero instance started up (NORMAL mode).
참고 사항
해당 불완전 복구 방법은 Tibero 7 에서 수행 되었으며, 이전 Tibero 6버전에서는 일부 패치가 적용이 안되었을 경우 별도의 파라미터를 적용하여 누락 데이터파일을 추가하는 절차가 필요 합니다.
- 관련 패치 : 309656c, 282595, 320958
- 파라미터 : DDLOAD_FOR_MOUNT_MODE=Y