Backup/Archive Log Mode

archive file 이 다른 위치에 있을 경우

잇꼬 2024. 1. 15. 18:11
728x90
반응형
SMALL

SQL> select * from v$log;

 

#) log switch 발생

SQL> alter system switch logfile;

#) archive file 확인 

SQL> ! ls /home/oracle1/arch1 /home/oracle1/arch2


#) DB 내리기

SQL> shutdown immediate


#) OS 나와 archive_file 디렉터리 이동 

SQL> !
[oracle1@oracle ~]$ cd archive_file/
[oracle1@oracle archive_file]$ pwd
/home/oracle1/archive_file


#) 파일 이동시키기

[oracle1@oracle archive_file]$ mv /home/oracle1/arch2/*.* . 
[oracle1@oracle archive_file]$ ls

arch_1_19_1157923223.arc  arch_1_20_1157923223.arc


#) archive file 확인

[oracle1@oracle archive_file]$ ls /home/oracle1/arch2/
[oracle1@oracle archive_file]$ ls /home/oracle1/arch1/

 

#) arch1 모든 파일 지우기

[oracle1@oracle archive_file]$ rm /home/oracle1/arch1/*.*
[oracle1@oracle archive_file]$ ls /home/oracle1/arch1/

=> arch1 에 있는 파일 없음


#) 확인 

[oracle1@oracle archive_file]$ ls /home/oracle1/arch1/ /home/oracle1/arch2/



[oracle1@oracle archive_file]$ ls


[oracle1@oracle ~]$ ls /home/oracle1/archive_file/

#) 따로 메모장에 적어 놓기!

ls /home/oracle1/archive_file/ arch_1_19_1157923223.arc
ls /home/oracle1/archive_file/ arch_1_20_1157923223.arc

# 장애 유발 #
[oracle1@oracle ~]$ rm /u01/app/oracle/oradata/ora11g/example01.dbf
[oracle1@oracle ~]$ ls /u01/app/oracle/oradata/ora11g/example01.dbf


#) oracle 접속 후 DB startup 하기. 

[oracle1@oracle ~]$ exit
SQL> startup 

=> 파일 삭제로 인한 오류발생

 

#) recover file 확인 

SQL> select * from v$recover_file;


#) 해당 data file offline 상태로 변경 

SQL> alter database datafile 5 offline;

#) DB open 하기 

SQL> alter database open;

#) restore(복구) -> hot backup

=> 가장 최근에 받은 hot backup 파일로 cp 하기 
SQL> ! cp -av /home/oracle1/backup/arch/hot_20240115/example01.dbf /u01/app/oracle/oradata/ora11g/


#) recover tablespace 
SQL> recover tablespace example;

#) online 모드로 변경
SQL> alter tablespace example online;

#) DB 확인
SQL> select count(*) from hr.employees;


#) 테이블 생성 
SQL> create table hr.new_2024 as select * from hr.employees;


#) 로그 스위치 발생
SQL> alter system switch logfile;


#) 테이블 생성 
SQL> create table hr.old_2024 as select * from hr.employees;


#) 로그 스위치 발생
SQL> alter system switch logfile;


#) redo log 정보 확인
SQL> select * from v$log;


#) DB 내리기

SQL> shutdown immediate



#) OS 나오기 -> archive_file 을 다른 디렉토리에 옮

[oracle1@oracle ~]$ cd archive_file/
[oracle1@oracle archive_file]$ pwd
/home/oracle1/archive_file

[oracle1@oracle archive_file]$ mv /home/oracle1/arch2/*.* . 
[oracle1@oracle archive_file]$ ls

arch_1_19_1157923223.arc  arch_1_22_1157923223.arc
arch_1_20_1157923223.arc  arch_1_23_1157923223.arc
arch_1_21_1157923223.arc


[oracle1@oracle archive_file]$ ls /home/oracle1/arch2/

[oracle1@oracle archive_file]$ ls /home/oracle1/arch1/

arch_1_21_1157923223.arc  arch_1_23_1157923223.arc
arch_1_22_1157923223.arc



# arch1 지우기
[oracle1@oracle archive_file]$ rm /home/oracle1/arch1/*.*

[oracle1@oracle archive_file]$ ls /home/oracle1/arch1/ /home/oracle1/arch2/


#) ls /home/oracle1/archive_file/ 확인되는 파일 

##
/home/oracle1/archive_file/(파일명)
/home/oracle1/archive_file/arch_1_19_1157923223.arc 
/home/oracle1/archive_file/arch_1_20_1157923223.arc
/home/oracle1/archive_file/ arch_1_21_1157923223.arc
/home/oracle1/archive_file/arch_1_22_1157923223.arc

/home/oracle1/archive_file/arch_1_23_1157923223.arc
##

# 장애 유발 #
[oracle1@oracle archive_file]$ rm /u01/app/oracle/oradata/ora11g/example01.dbf
[oracle1@oracle archive_file]$ ls /u01/app/oracle/oradata/ora11g/example01.dbf

 

#) oracle 접속 후 DB 올리기 

[oracle1@oracle archive_file]$ exit
exit

SQL> startup 


#) recover file 확인

SQL> select * from v$recover_file;


#) data file offline 상태로 변경 
SQL> alter database datafile 5 offline;

 

#) DB open 모드로 변경

SQL> alter database open;


# restore(복구) 작업 
SQL> ! cp -av /home/oracle1/backup/arch/hot_20240115/example01.dbf /u01/app/oracle/oradata/ora11g/


# recover auto 일 경우
SQL> recover tablespace example;
AUTO(입력) -> 오류발생, 복구 실패!

=> 복구 실패,  AUTO할 아카이브 번호 파일이 없음


# recover filename 일 경우

SQL> recover tablespace example;


#메모장 , 한 문장씩#

##
/home/oracle1/archive_file/(파일명)
/home/oracle1/archive_file/arch_1_19_1157923223.arc
/home/oracle1/archive_file/arch_1_20_1157923223.arc
/home/oracle1/archive_file/arch_1_21_1157923223.arc
/home/oracle1/archive_file/arch_1_22_1157923223.arc

/home/oracle1/archive_file/arch_1_23_1157923223.arc
##

=> Meida recover compelete. 라는 문구가 나오면 완료! 

 

# 온라인하기
SQL> alter tablespace example online;


#) 조회 해보기 

SQL> 
select count(*) from hr.new_2024;
select count(*) from hr.old_2024;



#) 아카이브 파일 원위치 하기

[oracle1@oracle ~]$ cd archive_file/
[oracle1@oracle archive_file]$ ls

[oracle1@oracle archive_file]$ cp -av *.* /home/oracle1/arch1

[oracle1@oracle archive_file]$ cd /home/oracle1/arch1
[oracle1@oracle arch1]$ ls

 

728x90
반응형
LIST