2024. 3. 10. 08:35ㆍDBMS/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.`
'DBMS > RecoveryBackUp' 카테고리의 다른 글
오라클 백업에 관한 내용 (0) | 2024.09.10 |
---|---|
RMAN 구성 (0) | 2024.07.03 |
Datafile Recovery, Media Recovery, Point-in-Time Recovery (0) | 2024.05.15 |
오라클 데이터베이스의 시작 단계 (0) | 2024.05.05 |
flashback transaction query 데이터 복구 (0) | 2023.12.31 |