RMAN (Data file 임시 경로에서 복구)

 

- User Table space 를 삭제 한 후 기존 파일 경로 말고 다른 위치에 Restore 하고 Recover 하기

 

- set new name for datafile <번호 또는 경로> to <새 위치 및 파일명>

- 복원 후 반드시 Control file 의 내용을 switch datafile <파일번호> 명령어로 변경 해야 함.

 

 

- USERS Tablespace 를 OS 명령어로 삭제 했습니다.

 

 

 

 

 

 

RMAN>report schema;

- 현재 상태를 확인 합니다.

 

- 다음에서 switch datafile 4 는 위에서 조회한 file 번호를 기재해 주면 됩니다.

 

RMAN 복구 (Datafile 삭제 후 DB Open 상태에서 복구하기)

 

- Testdb 의 Datafile 이 다음과 같습니다.

 

 

- 다음과 같이 clone_test01.dbf 파일을 OS 명령어로 삭제 하였습니다.

 

- 우선 rman 에서 삭제된 Data file 을 offline 시킵니다.

- rman 으로 Backup 파일을 불러 옵니다. (restore)

 

- 이제 복구를 수행하고 offline 되었던 tablespace 를 online 으로 변경합니다.

 

- 다음의 작업을 한번에 작업형 명령어로 복구를 수행할 수도 있습니다.

Recovery Catalog DB 관리하기

1. crosscheck

- 이 명령어는 target 서버와 recovery catalog 간의 정보를 동기화 시켜주는 역할을 합니다.

- 전체 backupset 과 target 서버 비교하기

RMAN>crosscheck backupset;

 

- backupset 을 OS 명령어로 삭제 후 다시 crosscheck 수행

 

- EXPIRED 된 것을 보면 이것은 BACKUPSET 목록에 존재하지만 실제 파일은 존재하지 않는다는 의미입니다. 백업 파일을 삭제 할 때도 RMAN 명령어로 삭제해 주어야 하며 그렇지 않을 시 위처럼 문제가 발생하게 됩니다.

2. delete

- 특정 backupset 을 삭제하고자 할 때 사용하는 명령어

- 목록 확인

RMAN>list backupset;

- 현재 backupset 목록 확인 후 특정 backupset 삭제하기

RMAN>delete backupset <number>;

 

3. catalog(관리자가 수동 백업 받은 파일을 RMAN catalog 에 추가하여 관리)

- example tablespace 를 RMAN 이 아닌 begin backup 수행

- RMAN Recovery Catalog 에 example 파일이 있는지 확인 합니다.

- 아직 정보가 없음을 확인 할 수 있습니다.

- Catalog 명령어로 Recovery Catalog 에 추가합니다.

 

- change 와 uncatalog 명령 (삭제 시)

- 리스트에 없는 것을 확인 할 수 있습니다.

 

Recovery Catalog 구성

 

- Recovery catalog 란 RMAN 사용시에 RMAN 으로 백업 복구 작업을 하고 관련 정보를 저장해 두는 장소

- Recovery catalog Server 가 있을 경우 Recovery catalog 에 정보를 저장

1. Data file 및 Archive redo log file 의 백업 셋과 copy 된 이미지에 대한 정보

2. 백업 대상 서버의 물리적인 구조

3. 자주 사용하는 백업 스크립트(Recovery catalog Server 를 사용할 경우만 해당)

 

- Catalog Server 사용시 접속 방법 : rman target / catalog rcuser/rcuser@rcserver

- Catalog Server 미 사용시 접속 : rman target /

 

- rman 실행시 오류 발생

- 확인해보면 rman 의 경로가 다른 것으로 되어 있기에 변경 해 주면 됩니다.

 

1. Recovery Catalog DB 생성

- 운영 DB 와 Catalog DB 가 필요하므로 Clone DB를 같은 서버에 생성해서 만들도록 하겠습니다.

- Clone DB 를 만드는 것은 저의 다른 글을 참고 하시길

-ORACLE_SID=rcserver 로 하고 생성

- Clone DB 에서 작업

 

- 복구 카탈로그를 저장할 테이블 스페이스(rc_tbs01)을 생성

- 복구 카탈로그를 관리할 사용자 계정(rcuser)를 생성하고 권한을 설정

 

- tnsnames.ora 파일을 수정해 줍니다.

- testdb 에서 rcserver 로 접속이 되는지 테스트 합니다.

- 이 테스트를 위해서는 당연히 리스너가 실행되고 있어야 합니다.

 

 

$lsnrctl

LSNRCTL>start listener3

- testdb à rcserver 로의 접속 테스트

 

- testdb 서버에 rman 으로 접속하되 recovery catalog 서버에 접속합니다.

 

- 복구 카탈로그를 생성 합니다.

 

-이제 복구 서버에 testdb 서버가 등록되어 있는지 확인 합니다.

- rcserver 서버에서 확인 합니다.

- 아직 testdb 서버의 SID 가 등록되지 않았습니다.

- 위 작업은 testdb 서버에서 하는 작업 입니다.

- 다시 rcserver 에서 testdb 가 등록되었는지 확인 합니다.

- rcserver 에서의 테이블 스페이스와 testdb 의 테이블 스페이스를 각각 비교

- rcserver 에서의 확인은 당연히 rcuser 로 접속하거나 rcuser.rc_datafile 로 테이블을 select 해야 하는 것은 당연지사.

 

- testdb 에서의 테이블 스페이스 구조와 rcserver 의 rc_datafile 의 카탈로그 테이블의 구조가 같은 것을 확인할 수 있습니다.

+ Recent posts