ORACLE/ADMIN2007. 7. 24. 02:30
반응형
Oracle 8 NEW : Recovery manager 란 ?

Oracle 8 은 새로운 backup와 recovery 방법인 Recovery manager 를 제공한다.
Recovery manager(이하 RMAN) 는 backup,restore,recover process를 관리하는
tool 이다. Oracle Enterprise Manager 를 통해 GUI mode 로 가능하고,
rman 이라는 command line interface 를 함께 제공한다.

특히, OS device control 기능이 보완 되었기 때문에, 현재 backup catalog 를
유지하고, 이 정보를 이용해 OS level 에서 file 을 auto-restore 해 주기
때문에, database recovery 전에 file 을 manual 하게 restore 할 필요가
없어졌다.

Incremental backup 을 제공하고, backup 이나 restore 중에 current block
detection 을 해 주며(v$backup_corruption, v$copy_corruption 또는 alert
log 에 report), Rman 작업시에 parallelization 을 제공하며, open database
backup 동안 특별한 redo 를 발생하지 않는다.


- 구조

Recovery
manager in OEM(oracle
enterprise ---> Database
manager) <--- (catalog)
or RMAN

/| |
| |/

DATABASE ---> OS
(target to backup) <--- Device


- 구성 요소 설명

1) recovery manager
Command 를 해석하고, backup, restore, recover 를 실행하기 위해 target
database 로 command 를 전달한다. recovery catalog 를 update 한다. 실행
과정을 조정, 모니터링 한다.

2) Target database
backup,restore,recovery action 이 수행될 데이타베이스

3) Recovery Catalog
Information 저장장소. 즉, target database 의 물리적 스키마, datafile 과
archivelog 의 backup sets 과 pieces, backup script 등을 포함하고 있음.
rman 작업시 recovery catalog 정보를 이용한다.

4) channel
allocation channel 은 target database 의 backup,restore,recover 에 대한
server process 초기화를 한다. 즉, 이 channel 은 disk 를 포함 기타 OS
device 를 지정하게 되며, 이 갯수에 따라 parallelization 의 degree 가 결정
된다.


- recovery catalog 를 사용할 것인지를 결정하기
catalog 없이 RMAN 을 사용할 때의 단점은 recovery catalog 의 overhead 가
없는 대신, Point-In-Time recovery 를 쉽게 할 수 없다. 또한, control file
손상시에 recovery 할 수 없고, stored script 를 사용할 수 없다.
(datafile 이 20개 이상일 경우에는 recovery catalog 사용을 권장한다.)


- Setup

가. Recovery catalog 생성

1. Backup(target) db 외의 별도의 db 생성 (8.0.3 이상)

2. catalog DB 에 분리된 tablespace 생성

create tablespace rcvcat datafile '/oracle/rcvcat/rcvcat01.dbf'
size 20 M;

3. catalog 의 owner 생성과 권한부여

create user rman identified by rman
temporary tablespace temp
default tablespace rcvcat;

grant dba,connect,resource,recovery_catalog_owner to rman;

4. catalog 저장에 필요한 object 생성

cd $ORACLE_HOME/rdbms/admin
sqlplus rman/rman
@catrman

나. Recovery manager 기동

1. recovery catalog DB 를 사용하는 경우

rman target \"system/manager\" rcvcat \"rman/rman@orabeta1\"

(orabeta1 은 catalog DB 로 접속하는 tnsname 입니다.
즉, sqlplus rman/rman@orabeta1 하면, catalog db 와 접속되어야 합니다.)

2. recovery catalog DB 를 사용하지 않는 경우
rman target system/manager@target nocatalog

위 경우 모두, target database 를 catalog 에 등록해야 한다.
RMAN> register database;

다. Backup 시작
- Backup 은 database 가 open 또는 close(close 후에는 반드시 mount
상태이어야 한다)
- Backup 의 단위
full database
tablespace
datafile
control file
archived logs
- Backup 의 예

--full database

run {
allocate channel dev1 type disk;
allocate channel dev2 type disk;
backup full filesperset 2
(database format '/user7/ora8/backup.%n_%p') ;
release channel dev1;
release channel dev2;
}

-- tablespace

run {
allocate channel dev_1 type disk ;
backup incremental level 0
filesperset 1
(tablespace system channel dev_1 format '/vol312/net8%d_%u');
release channel dev_1;

}


-- datafile

run{
allocate channel dev1 type disk;
copy datafile "/vo3/orabeta6/backup/copy_tools.dbf"
to "/vo3/orabeta6/oradata/orabeta6/tools01.dbf"
tag "org_tools";
release channel dev1;
}


-- archived logs

create script beta_arch_full {
allocate channel dev1 type disk;
allocate channel dev2 type disk;
backup full filesperset 10
(archivelog all delete input
format '/vo3/orabeta6/backup/beta_arch.%s_%p') ;
release channel dev1;
release channel dev2;
}

-- backup to tape

run {
allocate channel t1 type 'sbt_tape';
backup
format 'dbfull_sunday_s%s_t%t'
tag 'Sunday full backup'
(database);
}

라. Restore

- Backup 으로 부터 원래 위치로 복원

- Archive log file 은 manual 하게 restore 할 수도 있고, 필요하다면
recovery 시 자동으로 restore 된다.

restore (archivelog all| like <filename | <archivelog range>);

- restore 명령
database : restore (database);
tablespace : restore (tablespace <name>,...,<name>);
datafile : restore (datafile <name>,...,<name>);
control file : restore control file to location;

- recovery 시에 database 는 어떤 상태에 있어야 하는가 ?
1) control file restore - not mount
SVRMGRL> startup nomount

2) whole database, or system tablespace - not open
SVRMGRL> startup mount

3) tablespace or datafile - open but tablespace or datafile offline
SVRMGRL> alter tablespace user_data offline temporary;
SVRMGRL> alter database datafile '/oracle/file/user_data1.dbf' offline;


마, Recovery

- Recoervy 는 file restore 후의 과정이다.

1) Archive log mode : complete recovery, incomplete recovery 가 가능하다
2) No archive log mode : consistent whole database backup 으로 부터
restore 하는 것이 유일한 option 이다.

- whole database recovery 의 예

svrmgrl
connect internal
shutdown abort
startup mount
-------------------------------------------------------------------
rman target \"system/manager\" rcvcat \"rman/rman@orabeta1\"

run {
allocate channel dev1 type disk;
allocate channel dev2 type disk;
restore database;
recover database;
release channel dev1;
release channel dev2;
}

or

run {
allocate channel dev1 type disk;
allocate channel dev2 type disk;
restore tablespace 'SYSTEM';
restore tablespace 'USERS';
recover tablespace 'SYSTEM';
recover tablespace 'USERS';
sql "alter database open ";
release channel dev1;
release channel dev2;
}

- datafile 하나가 사용할 수 없을 경우의 recovery
가정) full backup set 이 있을 경우

ORA-01157: cannot identify data file 3 - file not found
ORA-01110: data file 3: '/user7/ora8/oradata/ORA8/temp01.dbf'

SVRMGR> startup mount

rman target \"system/manager\" rcvcat \"rman/rman@orabeta1\"
RMAN> run {
allocate channel dev1 type disk;
restore database;
recover database;
release channel dev1;
};

laalaal~
반응형
Posted by [PineTree]