# 테이블 생성
SQL> create table hr.emp_temp tablespace data01 as select * from hr.employees;
# 테이블 생성 확인
SQL> select count(*) from hr.emp_temp;
# redo log 정보 확인
- table 생성
SQL> select * from v$log;
# 백업 정보 확인
select a.file#, a.name file_name, a.checkpoint_change#, b.status, b.change#, to_char(b.time, 'yyyy-mm-dd hh24:mi:ss')
from v$datafile a, v$backup b
where a.file# = b.file#;
# data01 tablespace 를 hot backup 받기
SQL> alter tablespace data01 begin backup;
=> checkpoint 발생, write 작업은 redo log에 하자
=> 무조건 begin backup 진행 하자!
SQL> ! cp -av /u01/app/oracle/oradata/ora11g/data01.dbf /home/oracle1/backup/arch/hot_20240112
‘/u01/app/oracle/oradata/ora11g/data01.dbf’ -> ‘/home/oracle1/backup/arch/hot_20240112/data01.dbf’
SQL> alter tablespace data01 end backup;
# 백업 확인
=> scn 번호 확인
select a.file#, a.name file_name, a.checkpoint_change#, b.status, b.change#, to_char(b.time, 'yyyy-mm-dd hh24:mi:ss')
from v$datafile a, v$backup b
where a.file# = b.file#;
SQL> ! ls /home/oracle1/backup/arch/hot_20240112/
# redo log 정보 확인
SQL> select * from v$log;
# 테이블 생성
SQL> create table hr.loc_temp tablespace data01 as select * from hr.locations;
# 테이블 생성 확인
SQL> select count(*) from hr.loc_temp;
# log switch 강제 3번 발생
SQL> alter system switch logfile;
# redo log 확인
SQL> select * from v$log;
# archived_log 정보 확인
select sequence#, name, first_change#, next_change#, next_time from v$archived_log;
#) 정보 확인
select f.tablespace_name, f.file_name
from dba_extents e, dba_data_files f
where f.file_id = e.file_id
and e.segment_name = 'LOC_TEMP'
and e.owner = 'HR';
# 장애 발생 #
SQL> ! rm /u01/app/oracle/oradata/ora11g/data01.dbf
# 확인
SQL> ! ls /u01/app/oracle/oradata/ora11g/data01.dbf
ls: cannot access /u01/app/oracle/oradata/ora11g/data01.dbf: No such file or directory
# offline 모드로 즉시 변경
SQL> alter tablespace data01 offline immediate;
# data file 확인
SQL> select file#, name, status from v$datafile;
# 기존 위치가 아닌 새로운 위치로 복원 작업 수행
1. 백업 파일을 새로운 위치에 restore
SQL> ! cp -av /home/oracle1/backup/arch/hot_20240112/data01.dbf /home/oracle1
‘/home/oracle1/backup/arch/hot_20240112/data01.dbf’ -> ‘/home/oracle1/data01.dbf’
SQL> ! ls /home/oracle1/data01.dbf
/home/oracle1/data01.dbf
2. control file 에게 위치 변경 작업(rename file '이전 위치' to '새로운 위치')
SQL> alter database rename file '/u01/app/oracle/oradata/ora11g/data01.dbf' to '/home/oracle1/data01.dbf';
3. data file 정보 확인
SQL> select file#, name, status from v$datafile;
4. recover, 복구 작업
SQL> recover tablespace data01;
ORA-00279: change 1003300 generated at 01/14/2024 21:06:56 needed for thread 1
ORA-00289: suggestion : /home/oracle1/arch2/arch_1_11_1157923223.arc
ORA-00280: change 1003300 for thread 1 is in sequence #11
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto(입력)
5. tablespace online 모드로 변경
SQL> alter tablespace data01 online;
6. hr.loc_temp DB 확인
SQL> select count(*) from hr.loc_temp;
# 새로운 위치 확인
SQL> select f.tablespace_name, f.file_name
from dba_extents e, dba_data_files f
where f.file_id = e.file_id
and e.segment_name = 'LOC_TEMP'
and e.owner = 'HR';
'Backup > Archive Log Mode' 카테고리의 다른 글
system data file 손상되었을 경우 (1) | 2024.01.15 |
---|---|
tablespace 에 속한 여러 데이터 파일들 중에 특정한 파일이 손상되었을 경우 (1) | 2024.01.15 |
백업 받지 않은 tablespace에 데이터 파일 손상 받았을 경우 (1) | 2024.01.15 |
ARCHIVE LOG MODE 변경하는 방법 (0) | 2024.01.12 |
DB가 종료 후 데이터 파일이 삭제 시키고 DB 올릴 경우 (0) | 2024.01.12 |