Tibero

Similar documents
단계

Tablespace On-Offline 테이블스페이스 온라인/오프라인

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Tibero

Advanced Product Service

Contents Data Mart 1. 개요 실습방향 테스트위한사전설정 본격실습시작 ) 데이터파일 dd 명령어로 백업수행및유실시키기 ) 장애복구수행 결론...7 페이지 2 / 7

62

Tibero

PowerPoint Presentation

Document Server Information Items Description Test Date 2011 / 05 / 31 CPU Intel(R) Xeon(R) CPU 2.40GHz X 8 Main Memory 1GB O/S version OEL 5.

슬라이드 1

Tibero

큰 제목은 18 bold

Simplify your Job Automatic Storage Management DB TSC

윈백및업그레이드 Tibero Flashback 가이드

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

목 차

<4D F736F F D205BB4EBBBF3C1A4BAB8B1E2BCFA5DB1E2BCFAB9AEBCAD2D524D414EBBE7BFEBBFB9C1A65F39695F313067>

Microsoft Word - dataguard_세미나_v1.8.doc

Microsoft Word - RMAN 스터디자료_공개용_ doc

단계

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

MySQL-Ch10

휠세미나3 ver0.4

목차 1. Tibero 4 설치개요 Install 전 Check 사항 H/W 요구사항 Tibero 4 설치 Tibero 설치폴더생성 Tibero 바이너리압축해제 $T

Tmax

세미나(장애와복구-수강생용).ppt

오라클 데이터베이스 10g 핵심 요약 노트

.

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

CD-RW_Advanced.PDF

Tibero

MS-SQL SERVER 대비 기능

Microsoft Word - 10g RAC on Win2k.doc

목차 1. TAC 구성준비사항 TAC 구성순서 VirtualBox 으로 CentOS 설치 VirtualBox 에서 TAC 구성

Microsoft PowerPoint - Tech-iSeminar_Managing_Tablespace.ppt

DBMS & SQL Server Installation Database Laboratory

Data Guard 기본개념.doc

슬라이드 1

PowerPoint 프레젠테이션

마리오와 소닉 리우 올림픽™

.

개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다.

3) MySQL data 백업백업방법 : dump 파일로저장저장위치 : /backup/mysqldump 백업주기 : 시간별 (/etc/cron.hourly) 또는일별 (/etc/cron.daily) 보관기간 : 7 일백업스크립트 : 아래예제 6-1). 참조 4) 웹데이

설치및홖경설정 Tibero 4 SP1 TAC 설치 - Windows 홖경

MySQL-.. 1

2008

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft PowerPoint - Linux_10gRAC_3Node

Cloud Friendly System Architecture

튜닝및모니터링 Tibero EVENT 가이드

10.ppt

Oracle Database 10g: Self-Managing Database DB TSC

最即時的Sybase ASE Server資料庫診斷工具

System Recovery 사용자 매뉴얼

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

인디쓔피-IOM핸돜벁닄큐1014pdf, page Preflight ( IOM핸돜벁닄큐__1014 )

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

Tibero

Commit_Wait / Commit_Logging 두파라미터를통해 Log File Sync 대기시간을감소시킬수있다는것은놀라움과의아함을동시에느낄수있다. 단지파라미터의수정을통해당연히대기해야하는시간을감축한다는것은분명성능을개선해야하는입장에서는놀라운일이될것이다. 반면, 그에따

PRO1_09E [읽기 전용]

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

1217 WebTrafMon II

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

ALTIBASE HDB Patch Notes

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

API 매뉴얼

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft Word - Oracle10gDB ±âº»¿î¿µÁöħ¼�.doc

<4D F736F F D203033C6C4C6BCBCC72DB8AEBFC0B1D7B9E6B9FD2E646F63>

Microsoft Word - 기술노트[23회] Logminer.doc

10X56_NWG_KOR.indd

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

Slide 1

PowerChute Personal Edition v3.1.0 에이전트 사용 설명서

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

untitled

untitled

PowerPoint Presentation

Tibero

경우, TARGET 키워드 (AUXILIARY 키워드아님 ) 를사용하여반드시대기데이터베이스에접속해야 한다. 백업을수행하는동안, 대기데이터베이스는주데이터베이스를대체한다. 논리적대기데이터베이스의백업및복구주데이터베이스에서사용하는동일한방법으로논리적대기데이터베이스를백업할수있다.

NoSQL

Chapter 1

PowerPoint 프레젠테이션

13주-14주proc.PDF

Dropbox Forensics

슬라이드 1

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자


Tina Admin


FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

Mango220 Android How to compile and Transfer image to Target

DATA GUARD GUIDE

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

Oracle Database 12c High Availability

Oracle9i Real Application Clusters

데이터베이스_오라클_부록(최종).indd

Transcription:

Tibero 백업 & 복구가이드 Copyright 2013 TmaxData Co., Ltd. All Rights Reserved.

Copyright Notice Copyright 2013 TmaxData Co., Ltd. All Rights Reserved. 대한민국경기도성남시분당구황새울로 329 번길 5 티맥스빌딩우 ) 463-824 Restricted Rights Legend All TmaxData Software (Tibero ) and documents are protected by copyright laws and international convention. TmaxData software and documents are made available under the terms of the TmaxData License Agreement and may only be used or copied in accordance with the terms of this agreement. No part of this document may be transmitted, copied, deployed, or reproduced in any form or by any means, electronic, mechanical, or optical, without the prior written consent of TmaxData Co., Ltd. 이소프트웨어 (Tibero ) 사용설명서의내용과프로그램은저작권법과국제조약에의해서보호받고있습니다. 사용설명서의내용과여기에설명된프로그램은 TmaxData Co., Ltd. 와의사용권계약하에서만사용이가능하며, 사용권계약을준수하는경우에만사용또는복제할수있습니다. 이사용설명서의전부또는일부분을 TmaxData 의사전서면동의없이전자, 기계, 녹음등의수단을사용하여전송, 복제, 배포, 2차적저작물작성등의행위를하여서는안됩니다. Trademarks Tibero is a registered trademark of TmaxData Co., Ltd. Other products, titles or services may be registered trademarks of their respective companies. Tibero 는 TmaxData Co., Ltd. 의등록상표입니다. 기타모든제품들과회사이름은각각해당소유주의상표로서참조용으로만사용됩니다. 안내서정보안내서제목 : Tibero 백업 & 복구가이드발행일 : 2013-06-20 소프트웨어버전 : Tibero 5 안내서버전 : 2.1.1

내용목차 안내서에대하여... vii 제1장 개요... 1 1.1. 기본개념... 1 1.2. 주요용어... 1 제2장 백업... 3 2.1. 개요... 3 2.2. 백업방법... 4 2.2.1. 컨트롤파일백업... 4 2.2.2. Online 백업... 5 2.2.3. Offline 백업... 6 제3장 복구 (Single)... 9 3.1. 개요... 9 3.1.1. 파손복구 (Crash Recovery)... 9 3.1.2. 미디어복구 (Media Recovery)... 10 3.2. 복구환경구성... 11 3.3. 복구방법... 13 3.3.1. 컨트롤파일복구... 13 3.3.2. Online Log 파일복구... 17 3.3.3. Temp Tablespace 복구... 31 3.3.4. 데이터파일장애완전복구... 32 3.3.5. 데이터파일장애불완전복구... 40 제4장 복구 (TAC)... 53 4.1. 개요... 53 4.2. 복구방법... 53 Appendix A. TAC 온라인백업본 Single 구성... 61 A.1. 환경구성... 61 A.2. 구성방법... 64 Tibero iii

그림목차 [ 그림 2.1] 백업대상... 3 [ 그림 2.2] 백업종류... 4 [ 그림 3.1] 파손복구단계... 9 Tibero v

안내서에대하여 안내서의대상 본안내서는백업과복구하는방법을기술한문서이다. 안내서의전제조건 본안내서는백업과복구과정을설명한안내서이다. 따라서본안내서를원활히이해하기위해서는다음과같은사항을미리알고있어야한다. 데이터베이스의이해 운영체제및시스템환경의이해 UNIX 계열 (Linux 포함 ) 의기본지식 안내서의제한조건 본안내서는 Tibero 를실무에적용하거나운용하는데필요한모든사항을포함하지않는다. 필요한내용 은해당안내서의내용을참고한다. 안내서에대하여 vii

안내서규약 표기 <AaBbCc123> <Ctrl>+C [Button] 진하게 " "( 따옴표 ) ' 입력항목 ' 하이퍼링크 > +---- ---- 참고 의미프로그램소스코드의파일명, 디렉터리 Ctrl과 C를동시에누름 GUI의버튼또는메뉴이름강조다른관련안내서또는안내서내의다른장및절언급화면 UI에서입력항목에대한설명메일계정, 웹사이트메뉴의진행순서하위디렉터리또는파일있음하위디렉터리또는파일없음참고또는주의사항 [ 그림 1.1] [ 표 1.1] AaBbCc123 그림이름 표이름 명령어, 명령어수행후화면에출력된결과물, 예제코드 { } [ ] 필수인수값 옵션인수값 viii Tibero 백업 & 복구가이드

제 1 장개요 본장에서는백업과복구의기본개념에대해서설명한다. 1.1. 기본개념 다음은백업과복구의개념에대한설명이다. 백업 (Backup) 백업은여러가지유형의장애로부터데이터베이스를보호하기위한과정으로 MTBF(Mean Time Between Failure) 를증가시키고, MTTR(Mean Time To Recover) 를감소시킨다. 관리자는시스템에장애가발행하는경우손실을최소화하고복구가능한상태로데이터베이스를운용해야한다. 따라서, 최소한한달에한번데이터베이스전체백업을하거나하루에한번씩 Export 백업을권장한다. 데이터베이스관리자는백업에대한정책을수립하고꼭필요한데이터를최소한의양으로백업해야한다. 또한백업이정상적으로수행되었는지주기적으로검증하는것을권장한다. 복구 (Recovery) 복구는시스템에장애가발생하는경우복원또는시스템작동을유지하기위한절차또는기법이다. 1.2. 주요용어 TSN TSN 은데이터베이스의버전또는 Commit 버전으로 Data Concurrency Control, Redo Ordering, 복구등 에사용되며트랜잭션이 commit 될때 generate 된다. Checkpoint Checkpoint는주기적으로사용자의요청에따라메모리에있는모든변경된 (dirty) 블록을디스크에쓰는작업을말하며복구에필요한 Log 파일의양을줄여준다. 모든 Log Switch가발생할때인스턴스가 NORMAL, POST_TX, IMMEDIATE 옵션으로종료되면사용자요청에따라 Checkpoint가수동으로발생 (alter system checkpoint) 하며, DBWR가작동하기전에 LGWR 제 1 장개요 1

가현재 Log 버퍼의내용을 Online Log 파일에 Write하고해당 dirty 버퍼에 mark 되면이정보를 DBWR이받아서모든 marked dirty 버퍼를디스크에기록한다. Checkpoint는 Checkpoint TSN 이전에발생한 Online Log 파일내의모든변경사항이디스크에저장되었음을의미한다. Log 모드 다음은 Log 모드에대한설명이다. NO ARCHIVE LOG 기본적인 Log 모드로 Redo Log 파일은순환하여사용되고 Log Switch가발생하면이전의 Log 파일을 Overwrite한다. 이전의 Log가없기때문에트랜잭션기록중최근의부분만사용할수있다. Redo Log가 Overwrite되면결국마지막전체백업 (offline 백업 ) 을통한복구만가능하다. 백업은반드시데이터베이스가정상종료된상태에서해야하며이로인해서비스의중지가발생한다. ARCHIVE LOG 이 Log 모드에서 Redo Log 파일은 LOGA(Log Archiver) 에의해백업이완료되기전에는사용할수없고, Archive Log 파일은미디어복구 (Media Recovery) 에사용될수있다. 데이터베이스기동중에백업을할수있다. 2 Tibero 백업 & 복구가이드

제 2 장백업 본장에서는백업의종류와각종류별백업방법에대해설명한다. 2.1. 개요 논리적인백업데이터베이스의논리적인단위의백업으로 Export 툴로백업한다. 예를들어 Table, Index, Constraint, Sequence 등이있다. 물리적인백업 데이터베이스를구성하는파일을운영체제레벨에서 copy 명령으로백업한다. 예를들어데이터파일, 컨트롤파일, Archive Log 파일등이있다. [ 그림 2.1] 백업대상 백업은 NO ARCHIVE LOG 모드와 ARCHIVE LOG 모드의처리방법이다르다. NO ARCHIVE LOG 모드 (Offline 백업 / Cold 백업 ) 데이터베이스를구성하는전체파일에대해운영을멈춘상태에서백업을하는것으로데이터베이스를백업받은시점으로의복구만가능하다. ARCHIVE LOG 모드 (Online 백업 / Hot 백업 ) 데이터베이스운영중에도백업이가능하고컨트롤파일생성문, 데이터파일, Archive Log 파일을백업 한다. 백업된 Archive Log 파일의시점에따라데이터파일백업시점이전으로복구도가능하다. 제 2 장백업 3

[ 그림 2.2] 백업종류 각모드별로 Consistent 와 Inconsistent 백업을할수있다. 구분 Consistent 백업 Inconsistent 백업 설명정상적인 Shutdown 후의백업이다. 정상종료되지않은상태에서의백업또는 DB 운영중의백업이다. (NO ARCHIVE LOG 모드에서는사용을권장하지않음 ) 2.2. 백업방법 2.2.1. 컨트롤파일백업 컨트롤파일은데이터베이스의구조를이진파일형태로저장하며데이터베이스를 mount할때반드시필요하다. 만약해당파일이없으면복구하거나재생성해야하므로데이터베이스를구성할때컨트롤파일을 2개이상으로구성하고각파일은서로다른디스크에위치시킬것을권고한다. 다음의동적뷰로컨트롤파일의위치정보와다중화여부를확인한다. v$controlfile 백업방법 다음은컨트롤파일을백업하는과정에대한설명이다. 컨트롤파일다중화 1. tbdown 명령어를사용해서데이터베이스를 down한다. 2. 컨트롤파일을다른위치로복사한다. 3. $TB_SID.tip 파일에서 CONTROL_FILES 파라미터를추가한다. 4. tbboot 명령어로데이터베이스를기동시킨다. 4 Tibero 백업 & 복구가이드

컨트롤파일 Trace 생성 O/S 의 copy 명령을통해별도의위치에복사하고아래문법을사용하여 Trace 를생성한다. SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '<FILENAME>' REUSE NORESETLOGS; 항목 <FILENAME> REUSE RESETLOGS NORESETLOGS 설명생성할 Trace 파일이름을지정한다. ( 경로를미지정하는경우 $TB_SID.tip 파일의 DB_CREATE_FILE_DEST 파라미터에정의된디렉터리에생성됨 ) 컨트롤파일의생성문장을백업할때이미존재하는파일을재사용하려면 REUSE 옵션을사용한다. 기존의 Log 파일은무시하고 Log를초기화한다. 기존의유효한 Log 파일을계속사용한다. 참고 컨트롤파일을백업할때컨트롤파일다중화가필수사항은아니지만컨트롤파일 Trace 생성전에 진행하는것을권장한다. 2.2.2. Online 백업 Online 백업은 Tibero 를운영하는중에백업하는것으로 ALTER DATABASE 명령으로 Tablespace 의데 이터파일을백업하며 ARCHIVE LOG 모드에서만사용가능하다. 백업방법 다음은 Online 백업하는과정에대한설명이다. 1. 데이터베이스에 Online 백업의시작을알린다. SQL> ALTER TABLESPACE SYSTEM BEGIN BACKUP; 2. 동적뷰 (v$backup) 로아래와같이현재의백업모드를확인한다. SQL> select * from v$backup; FILE# STATUS CHANGE# TIME ---------- ---------- ---------- -------------------------------- 0 ACTIVE 21091 1 NOT ACTIVE 0 2 NOT ACTIVE 0 3 NOT ACTIVE 0 제 2 장백업 5

3. O/S 명령으로해당 Tablespace 의데이터파일을복사한다. SQL>!cp /home/tibero/tbdata/system001.dtf /home/tibero/tbdata_bak/system001.dtf 4. Tibero 데이터베이스에 Online 백업종료를알린다. SQL> ALTER TABLESPACE SYSTEM END BACKUP; 주의 Online 백업중에는데이터베이스의변경사항에대한 Log 의양이늘어나기때문에가능하면신속하 게작업을하고종료한다. 2.2.3. Offline 백업 Offline 백업은 Tibero를종료한후백업하는방법이다. Tibero를정상종료한후 O/S의 copy 명령을이용해데이터파일, Log 파일, 컨트롤파일, Tip 파일등을백업한다. MOUNT 또는 OPEN 모드에서 v$datafile, v$logfile 뷰를통해백업할파일정보를조회할수있으며 ARCHIVE LOG 모드에서는 Archive 파일도백업한다. 백업방법 다음은 Offline 백업하는과정에대한설명이다. 1. 동적뷰 (v$datafile) 로아래와같이백업대상파일을조회한다. SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- /home/tibero/tbdata/system001.dtf /home/tibero/tbdata/undo001.dtf /home/tibero/tbdata/usr001.dtf /home/tibero/tbdata/apm_ts.dtf 2. 동적뷰 (v$logfile) 로아래와같이백업대상 Log 파일을조회한다. SQL> select group#, member from v$logfile; GROUP# MEMBER ---------- ---------------------------------------- 0 /home/tibero/tbdata/redo01.redo 6 Tibero 백업 & 복구가이드

1 /home/tibero/tbdata/redo11.redo 2 /home/tibero/tbdata/redo21.redo 3. 동적뷰 (v$controlfile) 로아래와같이백업대상컨트롤파일을조회한다. SQL> select name from v$controlfile; NAME -------------------------------------------------------------------------------- /home/tibero/tbdata/c1.ctl /home/tibero/tbdata/c2.ctl 4. tbdown 명령어로 Tibero 를종료한다. $ tbdown 5. 조회한백업대상파일을복사한다. $ cp /home/tibero/tbdata/*.dtf /home/tibero/tbdata_bak/ $ cp /home/tibero/tbdata/*.redo /home/tibero/tbdata_bak/ $ cp /home/tibero/tbdata/*.ctl /home/tibero/tbdata_bak/ 또는 $ cp /home/tibero/tbdata/*.* /home/tibero/tbdata_bak/ 제 2 장백업 7

제 3 장복구 (Single) 본장에서는복구작업에대한설명과각장애상황별해결방법에대해설명한다. 3.1. 개요 복구는시스템에장애가발생하는경우복원또는시스템작동을유지하기위한절차또는기법이다. 다음은부트과정별복구관련작업이다. NOMOUNT : 인스턴스시작 데이터베이스생성가능 컨트롤파일재생성가능 MOUNT : 컨트롤파일오픈 데이터파일이름변경가능 Archive 모드옵션활성화또는비활성화가능 전체데이터베이스복구작업가능 OPEN : 컨트롤파일에정의한모든파일오픈 3.1.1. 파손복구 (Crash Recovery) 시스템이상이나 Shutdown abort 등비정상적인데이터베이스종료후 Tibero가기동하는과정에서자동으로수행되는복구작업이다. Online Redo Log 파일, Online 데이터파일, Current 컨트롤파일만을사용하고, Undo Tablespace를이용하여 commit되지않은데이터에대해복구작업을진행한다. [ 그림 3.1] 파손복구단계 제 3 장복구 (Single) 9

다음은파손복구의특징이다. 복구작업이자동으로수행되며데이터베이스관리자가데이터복구를위한로그를적용하는등의수작업을하지않고자동으로처리된다. Online Log(Redo Log) 를사용하며 Archive Log는사용하지않는다. Redo의 Roll-forward와 Rollback을사용한다. 3.1.2. 미디어복구 (Media Recovery) 미디어복구는 Tibero를구성하는파일에물리적인손상이발생하였거나정상동작을할수없는경우복구하는과정이다. 데이터파일의버전이다른경우 ( 데이터파일의손상으로백업해놓은데이터파일을이용하는경우 ), 컨트롤파일을복구한경우, Online Redo Log 파일에손상이있는경우, 사용자의실수로데이터가유실된경우, Aarchive Log 파일이유실된경우는미디어복구를해야한다. 다음은미디어복구의특징이다. DBA의명령에의해수동으로수행한다. (ALTER DATABASE RECOVER...) 백업받은데이터파일을이용해서복구한다. Redo Log 파일이나 Archive Log 파일로부터 Redo record를적용한다. MOUNT 모드에서만가능하다. 미디어복구의종류는다음과같다. 구분 완전복구 불완전복구 설명 Archive Log 파일과 Online Log 파일을모두사용해서가장최근 Log까지모두반영한다. Log 파일일부만적용하거나특정시점으로복구가가능하다. Point-in-Time 복구 Redo record 의일부만적용 불완전복구를하게되면반드시 resetlogs 로데이터베이스를기동해야한다. resetlogs 에대한자세한내용은 "RESETLOGS" 를참고한다. 10 Tibero 백업 & 복구가이드

미디어복구는다음의동적뷰를사용한다. V$RECOVER_FILE V$RECOVERY_FILE_STATUS V$LOGFILE V$CONTROLFILE V$LOG RESETLOGS 불완전복구를하게되면반드시 resetlogs로데이터베이스를기동해야한다. resetlogs 이전의데이터파일및 Log 파일과 resetlogs 이후의파일은서로호환되지않는다. resetlogs 이전의백업파일이나 Log 파일들을이용하여 resetlogs 이후로복구할수없다. 또한 resetlogs 이후의파일들을가지고 resetlogs 이전상태로불완전복구도불가능하다. 다음은 RESETLOGS 의사용예이다. $ tbboot t resetlogs 참고 resetlogs 로시작한경우반드시새로운백업을받기를권장한다. 3.2. 복구환경구성 다음은복구환경을구성하는방법에대한설명이다. 1. Tibero 파라마터설정 DB_NAME=tibero LISTENER_PORT=38629 CONTROL_FILES="/home/tibero/tbdata/c1.ctl", "/home/tibero/tbdata/c2.ctl" DB_CREATE_FILE_DEST="/home/tibero/tbdata" LOG_ARCHIVE_DEST="/home/tibero/tbarch" #CERTIFICATE_FILE="/home/tibero/tibero5/config/svr_wallet/tibero.crt" #PRIVKEY_FILE="/home/tibero/tibero5/config/svr_wallet/tibero.key" #WALLET_FILE="/home/tibero/tibero5/config/svr_wallet/WALLET" MAX_SESSION_COUNT=10 TOTAL_SHM_SIZE=1024M 2. 데이터베이스생성 제 3 장복구 (Single) 11

CREATE DATABASE "tibero" USER SYS IDENTIFIED BY TIBERO MAXDATAFILES 4096 CHARACTER SET MSWIN949 LOGFILE GROUP 0 ('redo01.redo', 'redo02.redo') SIZE 50M, GROUP 1 ('redo11.redo', 'redo12.redo') SIZE 50M, GROUP 2 ('redo21.redo', 'redo22.redo') SIZE 50M MAXLOGFILES 100 MAXLOGMEMBERS 8 ARCHIVELOG DATAFILE 'system001.dtf' SIZE 256M AUTOEXTEND ON NEXT 16M MAXSIZE 3072M DEFAULT TABLESPACE USR DATAFILE 'usr001.dtf' SIZE 128M AUTOEXTEND ON NEXT 16M MAXSIZE 3072M DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE 'temp001.dtf' SIZE 512M AUTOEXTEND ON NEXT 16M MAXSIZE 10240M EXTENT MANAGEMENT LOCAL AUTOALLOCATE UNDO TABLESPACE UNDO DATAFILE 'undo001.dtf' SIZE 512M AUTOEXTEND ON NEXT 16M MAXSIZE 10240M EXTENT MANAGEMENT LOCAL AUTOALLOCATE; 3. Tablespace 생성 DROP TABLESPACE "MY_FILE001" INCLUDING CONTENTS AND DATAFILES; CREATE TABLESPACE "MY_FILE001" DATAFILE 'my_file001.dtf' SIZE 10M AUTOEXTEND ON NEXT 1M MAXSIZE 3G EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M; 4. 사용자생성 DROP USER TIBERO CASCADE; CREATE USER tibero IDENTIFIED BY tmax DEFAULT TABLESPACE MY_FILE001; GRANT CONNECT, RESOURCE, DBA TO tibero; 12 Tibero 백업 & 복구가이드

3.3. 복구방법 3.3.1. 컨트롤파일복구 본절에서는컨트롤파일을각상황별로복구하는방법에대해설명한다. 컨트롤파일이삭제된경우 운영상태에서컨트롤파일이삭제되어장애가발생한경우백업된컨트롤파일의생성문장으로컨트롤파일을재생성한다. 장애상황 $ tbboot $ tbsql sys/tibero SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/home/tibero/tbdata/ctl_backup.sql' REUSE NORESETLOGS; $ rm -f /home/tibero/tbdata/c1.ctl 해결방법 $ tbdown Tibero instance terminated (NORMAL mode). $ tbboot listener port = 38629 change core dump dir to /home/tibero_td/tibero5/bin/prof ******************************************************** * Critical Warning : Raise svmode failed. The reason is * TBR-24003 : Unable to read control file. * Current server mode is NOMOUNT. ******************************************************** Tibero 5 Tibero instance started suspended at NOMOUNT mode. $ tbsql sys/tibero 제 3 장복구 (Single) 13

tbsql 5 Connected to Tibero. SQL> @ctl_backup.sql Control File created. File finished. SQL> exit Disconnected. $ tbdown Tibero instance terminated (NORMAL mode). $ tbboot listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof ******************************************************** * Critical Warning : Raise svmode failed. The reason is * TBR-1024 : Database needs media recovery: media recovery required(/home/tibero/tbdata/system001.dtf). * Current server mode is MOUNT. ******************************************************** Tibero 5 Tibero instance started suspended at MOUNT mode. $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> select * from v$recover_file; FILE# ONLINE ERROR CHANGE# TIME ---------- ------- ------------------------ -------------------------------- 0 ONLINE media recovery required 18144 2013/06/14 1 ONLINE media recovery required 18144 2013/06/14 14 Tibero 백업 & 복구가이드

2 ONLINE media recovery required 18144 2013/06/14 3 ONLINE media recovery required 18144 2013/06/14 4 ONLINE media recovery required 18144 2013/06/14 5 rows selected. SQL> alter database recover automatic database; Database altered. SQL> select * from v$recover_file; 0 row selected. SQL> exit Disconnected. $ tbdown Tibero instance terminated (NORMAL mode). $ tbboot listener port = 38629 change core dump dir to /home/tibero_td/tibero5/bin/prof Tibero 5 Tibero instance started up (NORMAL mode). $ tbsql sys/tibero tbsql 5 Connected to Tibero. -- 백업한컨트롤파일스크립트내의주석스크립트부분을활용하여 Temp 파일생성 SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/home/tibero/tbdata/temp001.dtf' 2 SIZE 512M REUSE AUTOEXTEND ON NEXT 16M MAXSIZE 10G; Tablespace 'TEMP' altered. SQL> exit Disconnected. 참고 만약운영상태에서컨트롤파일이다른파일로덮어씌워진경우도위의방법으로해결할수있다. 제 3 장복구 (Single) 15

이중화컨트롤파일하나가삭제된경우 데이터베이스가 down 상태에서이중화컨트롤파일하나가삭제된경우삭제된컨트롤파일을재생성하거나파라미터파일의내용을수정한다. 장애상황 $ rm -f /home/tibero/tbdata/c1.ctl $ tbdown $ tbboot listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof Tibero 5 Tibero instance started up (NORMAL mode). $ tail -10f trace.log 14:37:11.463590 [CLC][2] 06 tc_cf.c :160 control file read failed : '/home/tibero/tbdata/c1.ctl' (blkno=1) (No such file or directory) 14:37:11.463612 [CLC][2] 06 tc_cf.c :215 control file write failed: '/home/tibero/tbdata/c1.ctl' 14:37:12.563593 [CLC][2] 06 tc_cf.c :160 control file read failed : '/home/tibero/tbdata/c1.ctl' (blkno=1) (No such file or directory) 14:37:12.563617 [CLC][2] 06 tc_cf.c :215 control file write failed: '/home/tibero/tbdata/c1.ctl' 14:37:13.663593 [CLC][2] 06 tc_cf.c :160 control file read failed : '/home/tibero/tbdata/c1.ctl' (blkno=1) (No such file or directory) 14:37:13.663617 [CLC][2] 06 tc_cf.c :215 control file write failed: '/home/tibero/tbdata/c1.ctl' 14:37:14.763598 [CLC][2] 06 tc_cf.c :160 control file read failed : '/home/tibero/tbdata/c1.ctl' (blkno=1) (No such file or directory) 14:37:14.763623 [CLC][2] 06 tc_cf.c :215 control file write failed: '/home/tibero/tbdata/c1.ctl' 14:37:15.863591 [CLC][2] 06 tc_cf.c :160 control file read failed : '/home/tibero/tbdata/c1.ctl' (blkno=1) (No such file or directory) 14:37:15.863612 [CLC][2] 06 tc_cf.c :215 control file write failed: '/home/tibero/tbdata/c1.ctl' 14:37:16.963652 [CLC][2] 06 tc_cf.c :160 control file read failed : '/home/tibero/tbdata/c1.ctl' (blkno=1) (No such file or directory) 14:37:16.963697 [CLC][2] 06 tc_cf.c :215 control file write failed: '/home/tibero/tbdata/c1.ctl' $ tbdown 해결방법 16 Tibero 백업 & 복구가이드

$ cp /home/tibero/tbdata/c2.ctl /home/tibero/tbdata/c1.ctl $ tbboot 3.3.2. Online Log 파일복구 Redo Log 유실에따른 Tibero의동작은다음과같다. boot할때 Redo 파일이하나이상없는경우 boot가실패한다. 정상적으로기동된상태에서동작중 Redo Log 파일이삭제되는경우 boot 이후한번도사용되지않은 Redo Log 파일이삭제된경우 ( 파일디스크립터없음 ) 그룹내에이용가능한다른멤버파일이있을경우는 Trace Log에메시지만남기고정상동작한다. 그룹내에멤버가모두삭제된경우 Trace Log에에러메시지를남기면서 Tibero down된다. boot 이후사용된적이있는 Redo Log 파일이삭제된경우 ( 파일디스크립터있음 ) 정상적으로진행된다. INACTIVE 모드로그그룹의로그멤버하나가삭제된경우 운영상태에서 INACTIVE 모드로그그룹의로그멤버하나가삭제된경우에는장애가발생한멤버를삭제한후재생성한다. 장애상황 SQL> set line 200 SQL> col group# for 999 SQL> col member for a50 SQL> col SEQ# for 999 SQL> col MB for 999 SQL> select a.group#, a.member, b.bytes/1024/1024 "MB", b.archived "ARC", 2 b.sequence# "SEQ#", b.status 3 from v$logfile a, v$log b 4 where a.group#=b.group# 5 order by 1; GROUP# MEMBER MB ARC SEQ# STATUS ------ -------------------------------------------------- ---- --- ---- -------- 0 /home/tibero/tbdata/redo01.redo 50 YES 3 INACTIVE 0 /home/tibero/tbdata/redo02.redo 50 YES 3 INACTIVE 1 /home/tibero/tbdata/redo11.redo 50 NO 4 CURRENT 제 3 장복구 (Single) 17

1 /home/tibero/tbdata/redo12.redo 50 NO 4 CURRENT 2 /home/tibero/tbdata/redo21.redo 50 YES 2 INACTIVE 2 /home/tibero/tbdata/redo22.redo 50 YES 2 INACTIVE 6 rows selected. SQL>!rm -f /home/tibero/tbdata/redo01.redo SQL>!ls /home/tibero/tbdata/redo01.redo ls: /home/tibero/tbdata/redo01.redo: No such file or directory SQL> alter system switch logfile; SQL> / SQL> / SQL> / SQL> / SQL> set line 200 SQL> col group# for 999 SQL> col member for a50 SQL> col SEQ# for 999 SQL> col MB for 999 SQL> select a.group#, a.member, b.bytes/1024/1024 "MB", b.archived "ARC", 2 b.sequence# "SEQ#", b.status 3 from v$logfile a, v$log b 4 where a.group#=b.group# 5 order by 1; GROUP# MEMBER MB ARC SEQ# STATUS ------ -------------------------------------------------- ---- --- ---- -------- 0 /home/tibero/tbdata/redo01.redo 50 NO 9 CURRENT 0 /home/tibero/tbdata/redo02.redo 50 NO 9 CURRENT 1 /home/tibero/tbdata/redo11.redo 50 YES 7 INACTIVE 1 /home/tibero/tbdata/redo12.redo 50 YES 7 INACTIVE 2 /home/tibero/tbdata/redo21.redo 50 YES 8 INACTIVE 18 Tibero 백업 & 복구가이드

2 /home/tibero/tbdata/redo22.redo 50 YES 8 INACTIVE 6 rows selected. SQL>! $vi /home/tibero/tibero5/instance/tibero/log/dbmslog/dbms.log 21:04:37.949 [DDL][0] 18 Executing DDL: alter system switch logfile 21:04:38.459 [CLL][0] 4 LOGFILE SWITCHED. LF#1(seqno=4, blocks=769 next=0000.00003ae4) 21:04:38.900 [CLA][0] 5 LOG GROUP 1 (lsn=4) ARCHIVED. (/home/tibero/tbarch/log-t0-r14647-s4.arc) 21:04:41.759 [DDL][0] 18 Executing DDL: alter system switch logfile 21:04:41.815 [CLL][3] 4 Failed to read 1 log blocks LF#0(member=0, blkno=0) 21:04:42.008 [CLL][0] 4 LOGFILE SWITCHED. LF#2(seqno=5, blocks=0 next=0000.00003ae7) 21:04:42.341 [CLA][0] 5 LOG GROUP 2 (lsn=5) ARCHIVED. (/home/tibero/tbarch/log-t0-r14647-s5.arc) 21:04:43.339 [DDL][0] 18 Executing DDL: alter system switch logfile 21:04:43.469 [CLL][3] 4 Failed to read 1 log blocks LF#0(member=0, blkno=0) 21:04:43.633 [CLL][0] 4 LOGFILE SWITCHED. LF#0(seqno=6, blocks=0 next=0000.00003aea) 21:04:43.633 [CLL][3] 5 Failed to read 1 log blocks LF#0(member=0, blkno=0) 21:04:43.900 [CLA][0] 5 LOG GROUP 0 (lsn=6) ARCHIVED. (/home/tibero/tbarch/log-t0-r14647-s6.arc) 21:04:44.855 [DDL][0] 18 Executing DDL: alter system switch logfile 21:04:45.150 [CLL][0] 4 LOGFILE SWITCHED. LF#1(seqno=7, blocks=0 next=0000.00003aec) 21:04:45.308 [CLA][0] 5 LOG GROUP 1 (lsn=7) ARCHIVED. (/home/tibero/tbarch/log-t0-r14647-s7.arc) 21:05:11.718 [DDL][0] 18 Executing DDL: alter system switch logfile 21:05:12.136 [CLL][3] 4 Failed to read 1 log blocks LF#0(member=0, blkno=0) 21:05:12.263 [CLL][0] 4 LOGFILE SWITCHED. LF#2(seqno=8, blocks=0 next=0000.00003af7) 21:05:12.447 [CLA][0] 5 LOG GROUP 2 (lsn=8) ARCHIVED. (/home/tibero/tbarch/log-t0-r14647-s8.arc) 해결방법 $ tbsql sys/tibero tbsql 5 Connected to Tibero. 제 3 장복구 (Single) 19

SQL> alter system switch logfile; SQL> alter database drop logfile member '/home/tibero/tbdata/redo01.redo'; Database altered. SQL> alter database add logfile member '/home/tibero/tbdata/redo01.redo' to group 0; Database altered. SQL> alter system switch logfile; SQL> / SQL> / SQL>! $vi /home/tibero/tibero5/instance/tibero/log/dbmslog/dbms.log 21:11:50.275 [DDL][0] 18 Executing DDL: alter database drop logfile member '/home/tibero/tbdata/redo01.redo' 21:11:50.461 [DDL][0] 18 Alter database type 1 succeeded. 21:12:30.098 [DDL][0] 18 Executing DDL: alter database add logfile member '/home/tibero/tbdata/redo01.redo' to group 0 21:12:33.007 [DDL][0] 18 Alter database type 1 succeeded. 21:12:57.959 [DDL][0] 18 Executing DDL: alter system switch logfile 21:12:58.238 [CLL][0] 4 LOGFILE SWITCHED. LF#1(seqno=10, blocks=6 next=0000.00003b96) 21:12:58.412 [CLA][0] 5 LOG GROUP 1 (lsn=10) ARCHIVED. (/home/tibero/tbarch/log-t0-r14647-s10.arc) 21:13:00.459 [DDL][0] 18 Executing DDL: alter system switch logfile 21:13:00.579 [CLL][0] 4 LOGFILE SWITCHED. LF#2(seqno=11, blocks=0 next=0000.00003b98) 21:13:01.095 [CLA][0] 5 LOG GROUP 2 (lsn=11) ARCHIVED. (/home/tibero/tbarch/log-t0-r14647-s11.arc) 21:13:03.693 [DDL][0] 18 Executing DDL: alter system switch logfile 21:13:03.937 [CLL][0] 4 LOGFILE SWITCHED. LF#0(seqno=12, blocks=0 next=0000.00003b9c) 21:13:04.137 [CLA][0] 5 LOG GROUP 0 (lsn=12) ARCHIVED. (/home/tibero/tbarch/log-t0-r14647-s12.arc) 20 Tibero 백업 & 복구가이드

INACTIVE 모드로그그룹이삭제된경우 운영상태에서 INACTIVE 모드로그그룹이삭제된경우장애가발생한로그그룹을삭제한후재생성한다. 장애상황 $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> set line 200 SQL> col group# for 999 SQL> col member for a50 SQL> col SEQ# for 999 SQL> col MB for 999 SQL> select a.group#, a.member, b.bytes/1024/1024 "MB", b.archived "ARC", 2 b.sequence# "SEQ#", b.status 3 from v$logfile a, v$log b 4 where a.group#=b.group# 5 order by 1; GROUP# MEMBER MB ARC SEQ# STATUS ------ -------------------------------------------------- ---- --- ---- -------- 0 /home/tibero/tbdata/redo01.redo 50 YES 1 INACTIVE 0 /home/tibero/tbdata/redo02.redo 50 YES 1 INACTIVE 1 /home/tibero/tbdata/redo11.redo 50 NO 2 CURRENT 1 /home/tibero/tbdata/redo12.redo 50 NO 2 CURRENT 2 /home/tibero/tbdata/redo21.redo 50 NO -1 UNUSED 2 /home/tibero/tbdata/redo22.redo 50 NO -1 UNUSED 6 rows selected. SQL>!rm -f /home/tibero/tbdata/redo01.redo SQL>!rm -f /home/tibero/tbdata/redo02.redo SQL>!ls /home/tibero/tbdata/redo01.redo ls: /home/tibero/tbdata/redo01.redo: No such file or directory SQL>!ls /home/tibero/tbdata/redo02.redo ls: /home/tibero/tbdata/redo02.redo: No such file or directory SQL> alter system switch logfile; SQL> / 제 3 장복구 (Single) 21

SQL> / SQL> exit Disconnected. 해결방법 $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> alter database drop logfile group 0; Database altered. SQL> alter database add logfile group 0 2 ('/home/tibero/tbdata/redo01.redo', '/home/tibero/tbdata/redo02.redo') 3 size 50M; Database altered. SQL> set line 200 SQL> col group# for 999 SQL> col member for a50 SQL> col SEQ# for 999 SQL> col MB for 999 SQL> select a.group#, a.member, b.bytes/1024/1024 "MB", b.archived "ARC", 2 b.sequence# "SEQ#", b.status 3 from v$logfile a, v$log b 4 where a.group#=b.group# 5 order by 1; GROUP# MEMBER MB ARC SEQ# STATUS ------ -------------------------------------------------- ---- --- ---- -------- 0 /home/tibero/tbdata/redo01.redo 50 NO -1 UNUSED 0 /home/tibero/tbdata/redo02.redo 50 NO -1 UNUSED 1 /home/tibero/tbdata/redo11.redo 50 NO 5 CURRENT 1 /home/tibero/tbdata/redo12.redo 50 NO 5 CURRENT 22 Tibero 백업 & 복구가이드

2 /home/tibero/tbdata/redo21.redo 50 YES 3 INACTIVE 2 /home/tibero/tbdata/redo22.redo 50 YES 3 INACTIVE 6 rows selected. CURRENT 모드로그그룹삭제후 abort 로종료된경우 ARCHIVE LOG 모드운영상태에서 CURRENT 모드로그그룹이삭제되고 abort로종료된경우특정시점의 TSN을이용하여불완전복구를해야한다. 마지막 Archive Log 파일의 NEXT_TSN 정보를이용하여변경기반복구를진행하며 v$archive_dest_files 의 next_tsn 정보를확인하거나 Archivel 파일덤프를발생시켜 next_tsn 정보를확인한다. 변경기반복구작업을하는경우에는 next_tsn - 1 값으로진행한다. 장애상황 $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> set line 200 SQL> col group# for 999 SQL> col member for a50 SQL> col SEQ# for 999 SQL> col MB for 999 SQL> select a.group#, a.member, b.bytes/1024/1024 "MB", b.archived "ARC", 2 b.sequence# "SEQ#", b.status 3 from v$logfile a, v$log b 4 where a.group#=b.group# 5 order by 1; GROUP# MEMBER MB ARC SEQ# STATUS ------ --------------------------------------------- ---- --- ---- -------- 0 /home/tibero/tbdata/redo01.redo 50 NO 7 CURRENT 0 /home/tibero/tbdata/redo02.redo 50 NO 7 CURRENT 1 /home/tibero/tbdata/redo11.redo 50 YES 5 INACTIVE 1 /home/tibero/tbdata/redo12.redo 50 YES 5 INACTIVE 2 /home/tibero/tbdata/redo21.redo 50 YES 6 INACTIVE 2 /home/tibero/tbdata/redo22.redo 50 YES 6 INACTIVE 6 rows selected. 제 3 장복구 (Single) 23

SQL> CREATE TABLE T1 (C1 VARCHAR(5)); Table 'T1' created. SQL> INSERT INTO T1 (C1) VALUES ('00011'); SQL> COMMIT; Commit completed. SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> INSERT INTO T1 (C1) VALUES ('00012'); SQL> COMMIT; Commit completed. SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> INSERT INTO T1 (C1) VALUES ('00013'); SQL> COMMIT; Commit completed. SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> INSERT INTO T1 (C1) VALUES ('00014'); SQL> COMMIT; Commit completed. SQL> set line 200 SQL> col group# for 999 SQL> col member for a50 SQL> col SEQ# for 999 SQL> col MB for 999 SQL> select a.group#, a.member, b.bytes/1024/1024 "MB", b.archived "ARC", 2 b.sequence# "SEQ#", b.status 3 from v$logfile a, v$log b 4 where a.group#=b.group# 5 order by 1; 24 Tibero 백업 & 복구가이드

GROUP# MEMBER MB ARC SEQ# STATUS ------ --------------------------------------------- ---- --- ---- -------- 0 /home/tibero/tbdata/redo01.redo 50 NO 10 CURRENT 0 /home/tibero/tbdata/redo02.redo 50 NO 10 CURRENT 1 /home/tibero/tbdata/redo11.redo 50 YES 8 INACTIVE 1 /home/tibero/tbdata/redo12.redo 50 YES 8 INACTIVE 2 /home/tibero/tbdata/redo21.redo 50 YES 9 INACTIVE 2 /home/tibero/tbdata/redo22.redo 50 YES 9 INACTIVE 6 rows selected. SQL>!rm -f /home/tibero/tbdata/redo01.redo SQL>!rm -f /home/tibero/tbdata/redo02.redo SQL>!ls /home/tibero/tbdata/redo01.redo /home/tibero/tbdata/redo01.redo not found SQL>!ls /home/tibero/tbdata/redo02.redo /home/tibero/tbdata/redo02.redo not found SQL> exit Disconnected. $ tbdown abort Tibero instance terminated (ABORT mode). 해결방안 $ cp /home/tibero/tbdata_bak/*.dtf /home/tibero/tbdata $ tbboot mount listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof Tibero 5 Tibero instance started up (MOUNT mode). $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> set line 200 SQL> col group# for 999 SQL> col member for a50 SQL> col SEQ# for 999 SQL> col MB for 999 SQL> select a.group#, a.member, b.bytes/1024/1024 "MB", b.archived "ARC", 제 3 장복구 (Single) 25

2 b.sequence# "SEQ#", b.status 3 from v$logfile a, v$log b 4 where a.group#=b.group# 5 order by 1; GROUP# MEMBER MB ARC SEQ# STATUS ------ --------------------------------------------- ---- --- ---- -------- 0 /home/tibero/tbdata/redo01.redo 50 NO 10 CURRENT 0 /home/tibero/tbdata/redo02.redo 50 NO 10 CURRENT 1 /home/tibero/tbdata/redo11.redo 50 YES 8 INACTIVE 1 /home/tibero/tbdata/redo12.redo 50 YES 8 INACTIVE 2 /home/tibero/tbdata/redo21.redo 50 YES 9 INACTIVE 2 /home/tibero/tbdata/redo22.redo 50 YES 9 INACTIVE 6 rows selected. --next_change# - 1 값조회 SQL> set line 200 SQL> col name for a40 SQL> col SEQ# for 999 SQL> col TSN for 999999999 SQL> select name, sequence# seq#, next_change#-1 tsn 2 from v$archive_dest_files order by 2; NAME SEQ# TSN ----------------------------------------- ---- ---------- /home/tibero/tbdata/arch/log-t0-r0-s7.arc 7 45589 /home/tibero/tbdata/arch/log-t0-r0-s8.arc 8 45597 /home/tibero/tbdata/arch/log-t0-r0-s9.arc 9 45606 3 rows selected. --TSN 정보가없을경우 Log 파일덤프를발생시킨다. SQL> alter system dump logfile '/home/tibero/tbdata/arch/log-t0-r0-s9.arc'; SQL> exit Disconnected. $ cd $TB_HOME/instance/$TB_SID/dump/tracedump $ ls -rlt total 24 -rw-r--r-- 1 tibero dba 2688 Jul 10 19:08 tb_dump_47120982_37_2.trc --next_tsn 값을 10 진수로변경 : 0000.0000b227 (hex) => 45607 (dec) --next_tsn - 1 = 45606 $ grep next tb_dump_47120982_37_2.trc 26 Tibero 백업 & 복구가이드

low=0000.0000b21e 2013-07-10 18:59:28 next=0000.0000b227 2013-07-10 18:59:43...( 이하생략 ) $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> alter database recover automatic database until change 45606; Database altered. SQL> exit Disconnected. $ tbdown Tibero instance terminated (NORMAL mode). $ tbboot resetlogs listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof Tibero 5 Tibero instance started up (NORMAL RESETLOGS mode). $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> select * from t1; C1 ----- 00011 00012 00013 3 rows selected. 제 3 장복구 (Single) 27

CURRENT 모드로그그룹삭제후 immediate 로종료된경우 ARCHIVE LOG 모드운영상태에서 CURRENT 모드로그그룹이삭제되고 immediate로종료된경우마지막까지 commit된데이터는데이터파일에저장된후정상종료되므로취소기반으로복구를진행한다. 장애상황 $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> CREATE TABLE T1 (C1 VARCHAR(5)); Table 'T1' created. SQL> INSERT INTO T1 (C1) VALUES ('00011'); SQL> COMMIT; Commit completed. SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> INSERT INTO T1 (C1) VALUES ('00012'); SQL> COMMIT; Commit completed. SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> INSERT INTO T1 (C1) VALUES ('00013'); SQL> COMMIT; Commit completed. SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> INSERT INTO T1 (C1) VALUES ('00014'); 28 Tibero 백업 & 복구가이드

SQL> COMMIT; Commit completed. SQL> set line 200 SQL> col group# for 999 SQL> col member for a50 SQL> col SEQ# for 999 SQL> col MB for 999 SQL> select a.group#, a.member, b.bytes/1024/1024 "MB", b.archived "ARC", 2 b.sequence# "SEQ#", b.status 3 from v$logfile a, v$log b 4 where a.group#=b.group# 5 order by 1; GROUP# MEMBER MB ARC SEQ# STATUS ------ --------------------------------------------- ---- --- ---- -------- 0 /home/tibero/tbdata/redo01.redo 50 NO 7 CURRENT 0 /home/tibero/tbdata/redo02.redo 50 NO 7 CURRENT 1 /home/tibero/tbdata/redo11.redo 50 NO 5 INACTIVE 1 /home/tibero/tbdata/redo12.redo 50 NO 5 INACTIVE 2 /home/tibero/tbdata/redo21.redo 50 NO 6 INACTIVE 2 /home/tibero/tbdata/redo22.redo 50 NO 6 INACTIVE 3 rows selected. SQL>!rm -f /home/tibero/tbdata/redo01.redo SQL>!rm -f /home/tibero/tbdata/redo02.redo SQL>!ls /home/tibero/tbdata/redo01.redo /home/tibero/tbdata/redo01.redo not found SQL>!ls /home/tibero/tbdata/redo02.redo /home/tibero/tbdata/redo02.redo not found SQL> exit Disconnected. $ tbdown immediate Tibero instance terminated (IMMEDIATE mode). 해결방안 $ tbboot listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof ******************************************************** * Critical Warning : Raise svmode failed. The reason is * TBR-1042 : Unable to read log member file in group 0, member -1 (), block 0. 제 3 장복구 (Single) 29

* Current server mode is MOUNT. ******************************************************** Tibero 5 Tibero instance started suspended at MOUNT mode. $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> ALTER DATABASE RECOVER DATABASE UNTIL CANCEL; Database altered. SQL> exit Disconnected. $ tbdown Tibero instance terminated (NORMAL mode). $ tbboot resetlogs listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof Tibero 5 Tibero instance started up (NORMAL RESETLOGS mode). $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL>!ls /home/tibero/tbdata/redo01.redo /home/tibero/tbdata/redo01.redo SQL>!ls /home/tibero/tbdata/redo02.redo 30 Tibero 백업 & 복구가이드

/home/tibero/tbdata/redo02.redo SQL> set line 200 SQL> col group# for 999 SQL> col member for a50 SQL> col SEQ# for 999 SQL> col MB for 999 SQL> select a.group#, a.member, b.bytes/1024/1024 "MB", b.archived "ARC", 2 b.sequence# "SEQ#", b.status 3 from v$logfile a, v$log b 4 where a.group#=b.group# 5 order by 1; GROUP# MEMBER MB ARC SEQ# STATUS ------ -------------------------------------------------- ---- --- ---- -------- 0 /home/tibero/tbdata/redo01.redo 50 NO 1 CURRENT 0 /home/tibero/tbdata/redo02.redo 50 NO 1 CURRENT 1 /home/tibero/tbdata/redo11.redo 50 NO -1 UNUSED 1 /home/tibero/tbdata/redo12.redo 50 NO -1 UNUSED 2 /home/tibero/tbdata/redo21.redo 50 NO -1 UNUSED 2 /home/tibero/tbdata/redo22.redo 50 NO -1 UNUSED 3 rows selected. SQL> select * from t1; C1 ----- 00011 00012 00013 00014 4 rows selected. 3.3.3. Temp Tablespace 복구 Temp 파일이삭제된경우 Temp Tablespace의파일이삭제된경우 tbboot을실행하면 Temp 파일이자동적으로생성된다. 장애상황 $ tbboot $ tbsql sys/tibero $ rm rf /home/tibero/tbdata/temp001.dtf 제 3 장복구 (Single) 31

해결방안 $ tbdown $ ls -al /home/tibero/tbdata/temp001.dtf ls: /home/tibero/tbdata/temp001.dtf: No such file or directory $ tbboot $ ls -al /home/tibero/tbdata/temp001.dtf -rw------- 1 tibero dba 536870912 Jun 24 17:25 /home/tibero/tbdata/temp001.dtf 3.3.4. 데이터파일장애완전복구자동완전복구 ARCHIVE LOG 모드운영상태에서데이터파일이삭제된경우기존백업된데이터파일을복사한후 AUTOMATIC 명령어로복구한다. 장애상황 $ tbdown $ cp R /home/tibero/tbdata /home/tibero/tbdata_bak $ tbboot $ tbsql tibero/tmax SQL> CREATE TABLE T1 (C1 VARCHAR(5)) TABLESPACE MY_FILE001; Table 'T1' created. SQL> INSERT INTO T1 (C1) VALUES ('00011'); SQL> INSERT INTO T1 (C1) VALUES ('00012'); SQL> INSERT INTO T1 (C1) VALUES ('00013'); SQL> COMMIT; Commit completed. SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> / SQL> / 32 Tibero 백업 & 복구가이드

SQL> exit $ tbdown $ rm f /home/tibero/tbdata/my_file001.dtf 해결방안 $ cp /home/tibero/tbdata_bak/*.dtf /home/tibero/tbdata $ tbboot mount $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> ALTER DATABASE RECOVER AUTOMATIC; Database altered. SQL> exit Disconnected. $ tbdown Tibero instance terminated (NORMAL mode). $ tbboot listener port = 38629 change core dump dir to /home/tibero_td/tibero5/bin/prof Tibero 5 Tibero instance started up (NORMAL mode). $ tbsql tibero/tmax tbsql 5 Connected to Tibero. 제 3 장복구 (Single) 33

SQL> select * from t1; C1 ----- 00011 00012 00013 3 rows selected. 사용자완전복구 ARCHIVE LOG 모드운영상태에서데이터파일이삭제된경우 Archive 파일로생성된것은 Archive 파일을이용하여명시적으로각각복구하고, Archive 파일로생성되지않은 current 상태인것은 Redo 파일로복구한다. 장애상황 $ tbdown $ cp R /home/tibero/tbdata /home/tibero/tbdata_bak $ tbboot $ tbsql tibero/tmax SQL> CREATE TABLE T1 (C1 VARCHAR(5)) TABLESPACE MY_FILE001; Table 'T1' created. SQL> INSERT INTO T1 (C1) VALUES ('00011'); SQL> INSERT INTO T1 (C1) VALUES ('00012'); SQL> INSERT INTO T1 (C1) VALUES ('00013'); SQL> COMMIT; Commit completed. SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> / 34 Tibero 백업 & 복구가이드

SQL> / SQL> exit $ tbdown $ rm f /home/tibero/tbdata/my_file001.dtf 해결방안 $ cp /home/tibero/tbdata_bak/*.dtf /home/tibero/tbdata $ tbboot mount $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> ALTER DATABASE RECOVER; Database altered. SQL> ALTER DATABASE RECOVER LOGFILE '/home/tibero/tbarch/log-t0-r0-s1.arc'; Database altered. SQL> ALTER DATABASE RECOVER LOGFILE '/home/tibero/tbarch/log-t0-r0-s2.arc'; Database altered. SQL> ALTER DATABASE RECOVER LOGFILE '/home/tibero/tbarch/log-t0-r0-s3.arc'; Database altered. SQL> select * from v$log; THREAD# GROUP# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS ---------- ---------- ---------- ---------- ---------- -------- -------- FIRST_CHANGE# FIRST_TIME ------------- -------------------------------- 0 0 4 52428800 2 NO CURRENT 14521 2013/06/24 0 1 2 52428800 2 YES INACTIVE 14516 2013/06/24 0 2 3 52428800 2 YES INACTIVE 14518 2013/06/24 3 rows selected. 제 3 장복구 (Single) 35

SQL> select * from v$logfile; GROUP# STATUS TYPE MEMBER ---------- ------- ------ ----------------------------------------- 0 ONLINE /home/tibero/tbdata/redo01.redo 0 ONLINE /home/tibero/tbdata/redo02.redo 1 ONLINE /home/tibero/tbdata/redo11.redo 1 ONLINE /home/tibero/tbdata/redo12.redo 2 ONLINE /home/tibero/tbdata/redo21.redo 2 ONLINE /home/tibero/tbdata/redo22.redo 6 rows selected. SQL> ALTER DATABASE RECOVER LOGFILE '/home/tibero/tbdata/redo01.redo'; Database altered. SQL> exit Disconnected. [tibero_td@tbsvr tbarch]$ tbdown Tibero instance terminated (NORMAL mode). [tibero_td@tbsvr tbarch]$ tbboot listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof Tibero 5 Tibero instance started up (NORMAL mode). [tibero_td@tbsvr tbarch]$ tbsql tibero/tmax tbsql 5 Connected to Tibero. SQL> select * from t1; C1 ----- 00011 00012 36 Tibero 백업 & 복구가이드

00013 3 rows selected. 백업데이터파일이없을경우완전복구 ARCHIVE LOG 모드운영상태에서백업데이터파일이없을경우먼저데이터파일을생성하고 AUTO MATIC 명령어로완전복구한다. 단, 데이터파일이생성되는시점부터 Archive 파일이존재해야한다. 장애상황 $ tbdown $ cp R /home/tibero/tbdata /home/tibero/tbdata_bak $ tbboot $ tbsql tibero/tmax SQL> CREATE TABLE T1 (C1 VARCHAR(5)) TABLESPACE MY_FILE001; Table 'T1' created. SQL> INSERT INTO T1 (C1) VALUES ('00011'); SQL> INSERT INTO T1 (C1) VALUES ('00012'); SQL> INSERT INTO T1 (C1) VALUES ('00013'); SQL> COMMIT; Commit completed. SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> / SQL> / SQL> exit $ tbdown $ rm f /home/tibero/tbdata/my_file001.dtf 제 3 장복구 (Single) 37

해결방안 $ tbboot mount $ tbsql sys/tibero SQL> ALTER DATABASE CREATE DATAFILE '/home/tibero/tbdata/my_file001.dtf'; Database altered. SQL> ALTER DATABASE RECOVER AUTOMATIC; Database altered. SQL> exit $ tbdown $ tbboot $ tbsql tibero/tmax SQL> SELECT * FROM T1; C1 ----- 00011 00012 00013 3 rows selected. 백업데이터파일이있을경우 Online 중에완전복구 백업데이터파일이있고 Online 중에데이터파일이삭제된경우해당 Tablespace를 Offline시키고 Partitial 복구 ( 해당 Tablespace) 를한다. 복구후에는 Tablespace를 Online시킨다. 장애상황 $ tbdown $ cp R /home/tibero/tbdata /home/tibero/tbdata_bak $ tbboot $ tbsql tibero/tmax SQL> CREATE TABLE T1 (C1 VARCHAR(5)) TABLESPACE MY_FILE001; Table 'T1' created. SQL> INSERT INTO T1 (C1) VALUES ('00011'); 38 Tibero 백업 & 복구가이드

SQL> INSERT INTO T1 (C1) VALUES ('00012'); SQL> INSERT INTO T1 (C1) VALUES ('00013'); SQL> COMMIT; Commit completed. SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> / SQL> / SQL> exit Disconnected. $ rm f /home/tibero/tbdata/my_file001.dtf 해결방안 $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> alter tablespace MY_FILE001 offline immediate; Tablespace 'MY_FILE001' altered. SQL> exit Disconnected. $ cp /home/tibero/tbdata_bak/my_file001.dtf /home/tibero/tbdata $ tbsql sys/tibero tbsql 5 Connected to Tibero. 제 3 장복구 (Single) 39

SQL> alter database recover automatic tablespace MY_FILE001; Database altered. SQL> alter tablespace MY_FILE001 online; Tablespace 'MY_FILE001' altered. SQL> conn tibero/tmax Connected to Tibero. SQL> select * from t1; C1 ----- 00011 00012 00013 3 rows selected. 3.3.5. 데이터파일장애불완전복구 corrupt block 에러가발생하는경우 "alter system set _enable_mr_corrupt_recovery=y " 를적용하거나 $TB_SID.tip 파일에파라미터기재후재기동한다. 변경기반 (TSN) 불완전복구 alter database recover automatic database until change 15666 allow <BLOCK 수 > corruption; 시간기반불완전복구 alter database recover automatic database until time '2013/06/13 15:58:50' allow <BLOCK 수 > corruption; 취소기반불완전복구 alter database recover until cancel allow <BLOCK 수 > corruption; 참고 취소기반복구의경우 DPL/DPI, nologging 데이터를포함하면 log block corruption 발생가능성이 있으므로해당작업후에는반드시 Full 백업수행을권장한다. 40 Tibero 백업 & 복구가이드

변경기반 (TSN) 불완전복구 ARCHIVE LOG 모드운영상태에서데이터파일이삭제된경우특정시점의 TSN을이용하여변경기반불완전복구를한다. 마지막 Archive Log 파일의 NEXT_TSN 정보를이용하여변경기반복구를진행하며 v$archive_dest_files 의 next_tsn 정보나 Archive 파일덤프를발생시켜 next_tsn 정보를확인한다. 변경기반복구작업을하는경우에는 next_tsn - 1 값으로진행한다. 장애상황 $ tbdown $ cp R /home/tibero/tbdata /home/tibero/tbdata_bak $ tbboot $ tbsql sys/tibero SQL> SELECT * FROM V$LOG; THREAD# GROUP# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS ---------- ---------- ---------- ---------- ---------- -------- -------- FIRST_CHANGE# FIRST_TIME ------------- -------------------------------- 0 0 1 52428800 2 YES INACTIVE 0 0 1 2 52428800 2 NO CURRENT 15543 2013/06/14 0 2-1 52428800 2 NO UNUSED 0 3 rows selected. SQL> CREATE TABLE T1 (C1 VARCHAR(5)); Table 'T1' created. SQL> INSERT INTO T1 (C1) VALUES ('00011'); SQL> INSERT INTO T1 (C1) VALUES ('00012'); SQL> INSERT INTO T1 (C1) VALUES ('00013'); SQL> COMMIT; Commit completed. SQL> ALTER SYSTEM SWITCH LOGFILE; 제 3 장복구 (Single) 41

SQL> INSERT INTO T1 (C1) VALUES ('00021'); SQL> INSERT INTO T1 (C1) VALUES ('00022'); SQL> INSERT INTO T1 (C1) VALUES ('00023'); SQL> COMMIT; Commit completed. SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> INSERT INTO T1 (C1) VALUES ('00031'); SQL> INSERT INTO T1 (C1) VALUES ('00032'); SQL> INSERT INTO T1 (C1) VALUES ('00033'); SQL> COMMIT; Commit completed. SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> INSERT INTO T1 (C1) VALUES ('00041'); SQL> INSERT INTO T1 (C1) VALUES ('00042'); SQL> INSERT INTO T1 (C1) VALUES ('00043'); SQL> COMMIT; Commit completed. SQL> exit Disconnected. 42 Tibero 백업 & 복구가이드

$ tbdown Tibero instance terminated (NORMAL mode). $ rm /home/tibero/tbdata/*.dtf $ tbboot listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof ******************************************************** * Critical Warning : Raise svmode failed. The reason is * TBR-1024 : Database needs media recovery: open failed(/home/tibero/tbdata/system001.dtf). * Current server mode is MOUNT. ******************************************************** Tibero 5 Tibero instance started suspended at MOUNT mode. 해결방안 $ tbdown Tibero instance terminated (NORMAL mode). $ cp /home/tibero/tbdata_bak/*.dtf /home/tibero/tbdata $ tbboot mount listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof Tibero 5 Tibero instance started up (MOUNT mode). $ tbsql sys/tibero tbsql 5 Connected to Tibero. 제 3 장복구 (Single) 43

SQL> SELECT * FROM V$LOG; THREAD# GROUP# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS ---------- ---------- ---------- ---------- ---------- -------- -------- FIRST_CHANGE# FIRST_TIME ------------- -------------------------------- 0 0 4 52428800 2 YES INACTIVE 15652 2013/06/14 0 1 5 52428800 2 NO CURRENT 15667 2013/06/14 0 2 3 52428800 2 YES INACTIVE 15619 2013/06/14 3 rows selected. --next_change# - 1 값조회 SQL> set line 200 SQL> col name for a40 SQL> col SEQ# for 999 SQL> col TSN for 999999999 SQL> select name, sequence# seq#, next_change#-1 tsn 2 from v$archive_dest_files order by 2; NAME SEQ# TSN ---------------------------------------- ---- ---------- /home/tibero/tbarch/log-t0-r0-s1.arc 1 15542 /home/tibero/tbarch/log-t0-r0-s2.arc 2 15618 /home/tibero/tbarch/log-t0-r0-s3.arc 3 15651 /home/tibero/tbarch/log-t0-r0-s4.arc 4 15666 4 rows selected. --TSN 정보가없을경우 Log 파일덤프를발생시킨다. SQL> alter system dump logfile '/home/tibero/tbarch/log-t0-r0-s4.arc'; SQL> exit Disconnected. $ cd $TB_HOME/instance/$TB_SID/dump/tracedump $ ls -rlt total 28 -rw-r--r-- 1 tibero dba 202 Jun 13 22:33 tb_dump_13456_18_27.trc -rw-r--r-- 1 tibero dba 12420 Jun 13 22:37 tb_dump_13457_3_0.trc -rw-r--r-- 1 tibero dba 7071 Jun 14 09:35 tb_dump_21951_18_2.trc 44 Tibero 백업 & 복구가이드

--next_tsn 값을 10진수로변경 : 0000.0000b227 (hex) => 15667 (dec) --next_tsn - 1 = 15666 $ cat tb_dump_21951_18_2.trc grep next low=0000.00003d24 2013-06-14 09:21:26 next=0000.00003d33 2013-06-14 09:21:59 $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> alter database recover automatic database until change 15666; Database altered. SQL> exit Disconnected. $ tbdown Tibero instance terminated (NORMAL mode). $ tbboot resetlogs listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof Tibero 5 Tibero instance started up (NORMAL RESETLOGS mode). $ tbsql tibero/tmax tbsql 5 Connected to Tibero. SQL> select * from t1; C1 ----- 00021 00022 00023 00031 제 3 장복구 (Single) 45

00032 00033 00011 00012 00013 9 rows selected. 시간기반불완전복구 ARCHIVE LOG 모드운영상태에서데이터파일이삭제된경우시간을지정하여복구한다. 장애상황 $ tbdown $ cp R /home/tibero/tbdata /home/tibero/tbdata_bak $ tbboot $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> CREATE TABLE T1 (C1 VARCHAR(5)); Table 'T1' created. SQL> INSERT INTO T1 (C1) VALUES ('00011'); SQL> COMMIT; Commit completed. SQL> select * from t1; C1 ----- 00011 1 row selected. SQL>!date Thu Jun 13 15:58:50 KST 2013 SQL> INSERT INTO T1 (C1) VALUES ( '00021'); 46 Tibero 백업 & 복구가이드

SQL> COMMIT; Commit completed. SQL> select * from t1; C1 ----- 00011 00021 2 rows selected. SQL> exit Disconnected. $ tbdown Tibero instance terminated (NORMAL mode). $ rm /home/tibero/tbdata/*.dtf $ tbboot listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof ******************************************************** * Critical Warning : Raise svmode failed. The reason is * TBR-1024 : Database needs media recovery: open failed(/home/tibero/tbdata/system001.dtf). * Current server mode is MOUNT. ******************************************************** Tibero 5 Tibero instance started suspended at MOUNT mode. 해결방안 $ tbdown Tibero instance terminated (NORMAL mode). $ cp /home/tibero/tbdata_bak/*.dtf /home/tibero/tbdata $ tbboot mount listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof 제 3 장복구 (Single) 47

Tibero 5 Tibero instance started up (MOUNT mode). $ export TB_NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS' $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> alter database recover automatic database until time '2013/06/13 15:58:50'; Database altered. SQL> exit Disconnected. $ tbdown Tibero instance terminated (NORMAL mode). $ tbboot resetlogs listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof Tibero 5 Tibero instance started up (NORMAL RESETLOGS mode). $ tbsql tibero/tmax tbsql 5 Connected to Tibero. SQL> select * from t1; C1 ----- 00011 48 Tibero 백업 & 복구가이드

1 row selected. 취소기반불완전복구 ARCHIVE LOG 모드운영상태에서데이터파일이삭제된경우 Archive 파일을이용하여명시적으로복구한다. 장애상황 $ tbdown $ cp R /home/tibero/tbdata /home/tibero/tbdata_bak $ tbboot listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof Tibero 5 Tibero instance started up (NORMAL mode). $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> CREATE TABLE T1 (C1 VARCHAR(5)) TABLESPACE MY_FILE001; Table 'T1' created. SQL> INSERT INTO T1 (C1) VALUES ('00011'); SQL> COMMIT; Commit completed. SQL> select * from t1; C1 ----- 00011 제 3 장복구 (Single) 49

1 row selected. SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> col name format a40; SQL> select name, sequence# from v$archived_log order by sequence#; NAME SEQUENCE# ---------------------------------------- ---------- /home/tibero/tbarch/log-t0-r0-s1.arc 1 1 row selected. SQL> exit Disconnected. $ tbdown Tibero instance terminated (NORMAL mode). $ rm /home/tibero/tbdata/*.dtf $ tbboot listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof ******************************************************** * Critical Warning : Raise svmode failed. The reason is * TBR-1024 : Database needs media recovery: open failed(/home/tibero/tbdata/system001.dtf). * Current server mode is MOUNT. ******************************************************** Tibero 5 Tibero instance started suspended at MOUNT mode. 해결방안 $ tbdown Tibero instance terminated (NORMAL mode). $ cp /home/tibero/tbdata_bak/*.dtf /home/tibero/tbdata $ tbboot mount 50 Tibero 백업 & 복구가이드

listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof Tibero 5 Tibero instance started up (MOUNT mode). $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> ALTER DATABASE RECOVER DATABASE UNTIL CANCEL; Database altered. SQL> ALTER DATABASE RECOVER LOGFILE '/home/tibero/tbarch/log-t0-r0-s1.arc'; Database altered. SQL> ALTER DATABASE RECOVER CANCEL; Database altered. SQL> exit Disconnected. $ tbdown Tibero instance terminated (NORMAL mode). $ tbboot resetlogs listener port = 38629 change core dump dir to /home/tibero/tibero5/bin/prof Tibero 5 Tibero instance started up (NORMAL RESETLOGS mode). $ tbsql sys/tibero tbsql 5 제 3 장복구 (Single) 51

Connected to Tibero. SQL> select * from t1; C1 ----- 00011 1 row selected. 52 Tibero 백업 & 복구가이드

제 4 장복구 (TAC) 본장에서는 TAC 의복구방법에대해서설명한다. 4.1. 개요 TAC 복구의경우 Single DB 복구절차와유사하지만아래와같은차이점이있다. 미디어복구는한인스턴스만 MOUNT 모드로부팅한후진행한다. 모든 NODE의 Archive Log 파일이복구할 NODE의 LOG_ARCHIVE_DEST 파라미터의지정된디렉터리에모두위치해야한다. 4.2. 복구방법 본절에서는 TAC 취소기반의불완전복구에대해서설명한다. TAC 의완전복구, 시간기반불완전복구, TSN 기반불완전복구절차는 Single DB 와동일하므로자세한내용은 3.3. 복구방법 을참고한다. 다음은 TAC 취소기반의불완전복구절차이다. 1. 취소기반복구를시작한다. alter database recover database until cancel; 2. 복구할 Log 파일을등록한다. alter database recover logfile '<logfile name>'; 3. 등록된 Log 파일을 merge 하면서 Log 파일끝에도달할때까지복구를진행한다. alter database recover continue; 4. 복구를중지하려면아래명령을실행한다. alter database recover cancel; 제 4 장복구 (TAC) 53

취소기반의불완전복구 ARCHIVE LOG 모드운영상태에서데이터파일이삭제된경우 Archive 파일로생성된것은 Archive 파일을이용하여명시적으로각각복구하고, Archive 파일로생성되지않은 current 상태인것은 Redo 파일로복구한다. 장애상황 1. 테이블및데이터입력 (NODE1) $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> select * from v$log; THREAD# GROUP# SEQUENCE# BYTES MEMBERS ARCHIVED STATUS ---------- ---------- ---------- ---------- ---------- -------- -------- FIRST_CHANGE# FIRST_TIME ------------- -------------------------------- 0 0 7 52428800 1 NO CURRENT 39873 2013/06/22 0 1 5 52428800 1 YES INACTIVE 39862 2013/06/22 0 2 6 52428800 1 YES INACTIVE 39870 2013/06/22 1 3 7 52428800 1 NO CURRENT 39880 2013/06/22 1 4 5 52428800 1 YES INACTIVE 39875 2013/06/22 1 5 6 52428800 1 YES INACTIVE 39878 2013/06/22 6 rows selected. SQL> CREATE TABLE T1 (C1 VARCHAR(5)); Table 'T1' created. SQL> INSERT INTO T1 (C1) VALUES ('00011'); SQL> COMMIT; Commit completed. 54 Tibero 백업 & 복구가이드

SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> INSERT INTO T1 (C1) VALUES ('00012'); SQL> COMMIT; Commit completed. SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> exit Disconnected. $ tbdown Tibero instance terminated (NORMAL mode). 2. 데이터입력 (NODE2) $ tbsql sys/tibero tbsql 5 Connected to Tibero. SQL> INSERT INTO T1 (C1) VALUES ('00013'); SQL> COMMIT; Commit completed. SQL> ALTER SYSTEM SWITCH LOGFILE; SQL> exit Disconnected. $ tbdown Tibero instance terminated (NORMAL mode) 3. 데이터파일초기화 (NODE1) 제 4 장복구 (TAC) 55

$ dd if=/dev/zero of=/dev/rdata4g081 bs=8192k 514+0 records in 512+0 records out $ dd if=/dev/zero of=/dev/rdata4g082 bs=8192k 514+0 records in 512+0 records out $ dd if=/dev/zero of=/dev/rdata4g083 bs=8192k 514+0 records in 512+0 records out $ dd if=/dev/zero of=/dev/rdata4g084 bs=8192k 514+0 records in 512+0 records out $ dd if=/dev/zero of=/dev/rdata4g085 bs=8192k 514+0 records in 512+0 records out $ dd if=/dev/zero of=/dev/rdata4g086 bs=8192k 514+0 records in 512+0 records out $ tbboot listener port = 58629 change core dump dir to /data1/tstac1/tibero5/bin/prof ******************************************************** * Critical Warning : Raise svmode failed. The reason is * TBR-1024:Database needs media recovery:wrong database file(/dev/rdata4g081). * Current server mode is MOUNT. ******************************************************** Tibero 5 Tibero instance started suspended at MOUNT mode. 해결방안 1. 백업된파일로데이터파일복구 (NODE1) $ dd if=/data1/tstac1/bak/system001.dtf of=/dev/rdata4g081 bs=8192k 512+0 records in 512+0 records out $ dd if=/data1/tstac1/bak/usr001.dtf of=/dev/rdata4g082 bs=8192k 512+0 records in 512+0 records out $ dd if=/data1/tstac1/bak/temp001.dtf of=/dev/rdata4g083 bs=8192k 512+0 records in 56 Tibero 백업 & 복구가이드

512+0 records out $ dd if=/data1/tstac1/bak/undo001.dtf of=/dev/rdata4g084 bs=8192k 512+0 records in 512+0 records out $ dd if=/data1/tstac1/bak/undo002.dtf of=/dev/rdata4g086 bs=8192k 512+0 records in 512+0 records out $ dd if=/data1/tstac1/bak/apm_ts.dtf of=/dev/rdata4g085 bs=8192k 512+0 records in 512+0 records out 2. NODE2의 Archive Log 파일을 NODE1으로전송 ftp> ls -rlt 200 PORT command successful. 150 Opening data connection for /bin/ls. total 416 -rw------- 1 tstac2 tsteam 211456 Jun 22 12:33 log-t1-r0-s7.arc 226 Transfer complete. ftp> bi 200 Type set to I. ftp> ha Hash mark printing on (1024 bytes/hash mark). ftp> mget *.arc mget log-t1-r0-s7.arc? y 200 PORT command successful. 150 Opening data connection for log-t1-r0-s7.arc (211456 bytes). ################################################################ 226 Transfer complete. 211456 bytes received in 0.003092 seconds (6.679e+04 Kbytes/s) local: log-t1-r0-s7.arc remote: log-t1-r0-s7.arc 3. 취소기반불완전복구수행 a. Log 파일확인 $ tbboot listener port = 58629 change core dump dir to /data1/tstac1/tibero5/bin/prof ******************************************************** * Critical Warning : Raise svmode failed. The reason is * TBR-1024 : Database needs media recovery: file restored(/dev/rdata4g081). * Current server mode is MOUNT. ******************************************************** 제 4 장복구 (TAC) 57