RMAN > setnewname

2024. 3. 10. 08:35DBMS/RecoveryBackUp

반응형

rman_datafile_setnewname는 Oracle RMAN(Recovery Manager)을 사용하여 데이터 파일의 새 이름을 설정하는 작업을 수행하는 스크립트 또는 프로시저이다.

데이터 파일을 다른 위치나 다른 파일 시스템으로 이동하고자 할 때 사용된다.

데이터 파일의 경로나 파일 이름을 변경하려면 RMAN을 사용하여 데이터베이스를 백업하고, 해당 데이터 파일을 새 위치로 복원한 다음, 데이터베이스에 변경된 파일 이름을 알려줘야 한다.

이것을 위해 set newname 명령을 사용하여 RMAN에게 데이터 파일의 새 이름을 알려주고, 이후의 복구 작업에서 이 새 이름을 사용할 수 있다.

 

 

- 데이터베이스의 현재 로그 파일 정보를 조회하여 각 로그 파일의 그룹 번호, 시퀀스 번호, 파일 경로, 크기, 아카이빙 여부, 상태 및 첫 번째 변경 번호를 확인

 

  SELECT a.group#, b.sequence#, a.member, b.bytes/1024/1024 MB, b.archived, b.status, b.first_change#
   FROM v$logfile a , v$log b
   WHERE a.group#=b.group#
   ORDER BY 1;


   `

 


      - 3개의 로그 그룹이 있으며, 그 중에서 현재 사용 중인 로그 그룹확인
     - 각 로그 파일은 50MB 크기이며, 그 중에서 3번째 로그 파일만 현재 사용 중인(active) 상태

 

 

 

■ 새로운 테이블 스페이스 생성   

CREATE TABLESPACE test
   DATAFILE '/u01/app/oracle/oradata/test01.dbf' SIZE 20M 
   EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M 
   SEGMENT SPACE MANAGEMENT AUTO;

 

 

 

 

sql> select tablespace_name, file_name, bytes/1024/1024 mb from dba_data_files;

 

 

 

 

 

  테이블 생성

 

create table hr.emp01 tablespace test as select * from all_objects;

 

 

ALL_OBJECTS는 Oracle 데이터베이스 시스템에서 제공하는 시스템 카탈로그(view) 중 하나이다. 이 뷰는 데이터베이스 내에 있는 모든 객체에 대한 정보 즉 테이블, 뷰, 프로시저, 함수, 패키지 등의 객체들이 포함된다.

 

 

■  백업
  

   RMAN>  report need backup;


  
   - 필요한 백업이 있는지 확인

 

 

 

RMAN> report schema

 

 

 

 

 

-백업 시도

RMAN> backup tablespace "TEST";

 

 

 

 

 

 

   - 데이터 파일을 삭제하여 장애를 시뮬레이션

 

SYS@orcl>! rm /u01/app/oracle/oradata/test01.dbf

 

 

 

위의 출력 결과는 RMAN이 데이터베이스에서 발생한 실패 사항을 자세히 나열한 것이다.


- Priority: failure 중요도. HIGH 는 복구 우선순위가 높다.
- Status: 현재 상태. OPEN 상태는 아직 해결되지 않았음을 나타냄
- Time Detected: 실패가 발생한 시간

failure이 하나 발생했으며 데이터 파일 중 하나가 없어졌음을 보고하고 있다. 데이터 파일 2가 없어 TEST 테이블스페이스에 있는 일부 객체가 사용 불가능할 수 있다고 설명하고 있다.

 

 

 

테이블스페이스를 오프라인 상태로 만들고, 해당 데이터 파일의 새 경로를 설정한 다음, 해당 테이블스페이스를 복원하고 스위치한 후 해당 테이블스페이스를 복구하고 다시 온라인 상태로 변경하는 작업을 수행한다. 

 

RMAN> run {
     alter tablespace "TEST" offline immediate;
     set newname for datafile '/u01/app/oracle/oradata/test01.dbf' to '/u01/app/oracle/oradata/orcl/test01.dbf';
     restore tablespace "TEST";
     switch datafile 2;
     recover tablespace "TEST";
     alter tablespace "TEST" online;



 

 


1. alter tablespace test offline immediate;: test 테이블스페이스를 즉시 오프라인 상태로 전환합니다. 이 명령은 해당 테이블스페이스에 대한 모든 작업을 중지하고 사용자 액세스를 차단한다.

2. set newname for datafile '/u01/app/oracle/oradata/test01.dbf' to '/u01/app/oracle/oradata/orcl/test01.dbf'; : 데이터 파일의 새 경로를 설정

3. restore tablespace test; 이전에 설정한 새 경로에서 test테이블스페이스를 복원

4. switch datafile 2; : 이전 데이터 파일을 새로 복원된 데이터 파일로 교체

5. recover tablespace test;: test테이블스페이스를 복구

6. alter tablespace test online;: test테이블스페이스를 온라인 상태로 변경하여 테이블스페이스에 액세스할 수 있게 한다.

 

 

복구 확인



 `SYS@orcl>drop tablespace test including contents and datafiles;
Tablespace dropped.`

 

 
 
 
반응형