Oracle

게시글 보기
작성자 유건데이타 등록일 2015-05-07
제목 RECOVERY 의 모든 것 (DATABASE, TABLESPACE, DATAFILE)
RECOVERY 의 모든 것 (DATABASE, TABLESPACE, DATAFILE)
======================================================


PURPOSE
---------
ORACLE DATABASE의 RECOVERY에 대한 전반적인 부분을 살펴본다.


Explanation
------------

(1) DATABASE RECOVERY

. Complete, Incomplete recovery가 가능

. Offline recovery만 가능하다.
(즉 database가 recovery 시 open 되어 있지 않아야 함.)

. SYSTEM tablesapce 의 recovery 도 가능하다.

. recovery 시 database access가 불가능하고 복구시간은
적용되어야 하는 redo 의 양에 dependent하다.


+++ Complete recovery
control file과 redo log file은 current 것이 존재
datafile만 backup 본을 restore한다.

1 % cp backup_file oracle_file_directory

2 SVRMGR> startup mount

3 SVRMGR> alter database rename file 'old' to 'new';
단 이 명령은 datafile을 기존의 directory에 restore하지
않고 다른 directory에 놓았을 경우에만 사용.

4 Recovery를 위한 모든 datafile이 online인지 check한다.

SVRMGR> select file#,status,name from V$DATAFILE;

만약 offline인 것이 있으면 다음과 같이 online시킨다.

SVRMGR> alter database datafile 'filename' online;

(대부분 위의 3,4번은 불필요하다.)

5 SVRMGR> RECOVER DATABASE ;

6 SVRMGR> alter database open;


+++ Incomplete recovery

(Incomplete recovery 시 datafile 이 offline 되어 있으면
복구가 불가능하다)

(1 ~ 4번은 complete recovery와 동일)

5 SVRMGR> RECOVER DATABASE UNTIL CANCEL;

* backup받은 controlfile을 restore했거나 script로
재생성했다면

SVRMGR> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;

* 지정된 시간까지만 복구하려면
SVRMGR> RECOVER DATABASE UNTIL TIME '2001-05-10:10:37:00';

6 SVRMGR> ALTER DATABASE OPEN RESETLOGS;


(2) TABLESPACE RECOVERY

RECOVER TABLESPACE tablespace_name [,tablespace_name..]

* 이 방법은 tablespace의 list에 등록된 모든 data file 의
media recovery를 위한 command 이다.
* Oracle은 tablespace가 갖는 datafile이 어떤 것인가를 아는 것은
반드시 database가 open 되어 있을 경우이므로 이 tablespace
recovery command는 database가 open되었을 때 비로소 가능하다.

* command를 실행하기 위해 반드시 tablespace는 offline되어
있어야 한다.

* offline 되어지지 않는 (예를 들면 SYSTEM ) tablespace는
recovery가 불가능하다.

* incomplete recovery는 불가능하다 .


복구 순서

1 SVRMGR> alter tablespace ts_name offline;

2 recovery 가 필요한 tablesapce의 datafile을 restore 한다.

3 lost 되었거나 손상된 datafile 이 invalid 일경우는
control file 에 datafile 의 위치가 변경되어야 한다.

SVRMGR> alter database rename file 'old' to 'new';

4 SVRMGR> RECOVER TABLESPACE ts_name;

5 SVRMGR> alter tablespace ts_name online;


(3) DATAFILE RECOVERY

RECOVER DATAFILE 'filename' ['filename]

* media recovery lock만 datafile에 얻을 수 있다면 online,
offline recovery가 모두 가능하다.

* On line recovery시 (database 가 임의의 instance 에 의해
open 되어 있다면) datafile recovery는 offline 되어있는
datafile 만 recovery 가 가능하다.

* Incomplete recovery는 불가능하다.


복구순서

+++Online Recovery

1 SVRMGR> startup mount

2 SVRMGR> alter database datafile 'filename' offline;

3 SVRMGR> alter database open

4 SVRMGR> alter database rename 'old' to 'new'

5 SVRMGR> RECOVER DATAFILE 'datafile'

6 SVRMGR> alter database datafile 'filename' online

+++Offline Recovery

1 SVRMGR> alter databse rename 'old_filename' to 'new'

2 SVRMGR> startup mount

3 SVRMGR> alter database datafile 'filename' online
SVRMGR> alter database datafile 'filename' offline
양쪽 모두 가능하다.

4 SVRMGR> RECOVER DATAFILE 'datafile'

5 SVRMGR> alter databse datafile 'filename' online;

6 SVRMGR> alter database open



Reference Documents
출처 : Technical Bulletin (Korean)
Comment
등록된 코멘트가 없습니다.