Cold Backup
□ 백업 대상
- 필수 : Data File, Redo Log File(archive가 있다면 안 가져갈 수 도 있음), Control File
- 선택 : Parameter File, Password File, sqlnet.ora, listener.ora, tnsnames.ora 등
1) Data File
- 사용 중인 Data File은 자주 백업을 받아야 함
SQL > select name, status from v$datafile;
NAME STATUS
------------------------------------------------------------
/oracle11/oracle/oradata/testdb/system01.dbf SYSTEM
/oracle11/oracle/oradata/testdb/sysaux01.dbf ONLINE
/oracle11/oracle/oradata/testdb/undotbs01.dbf ONLINE
NAME STATUS
------------------------------------------------------------
/oracle11/oracle/oradata/testdb/users01.dbf ONLINE
/oracle11/oracle/oradata/testdb/example01.dbf ONLINE
2) Control File
- 현재 Control File을 백업 받아야 함
SQL > select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
/oracle11/oracle/oradata/testdb/control01.ctl
/oracle11/oracle/flash_recovery_area/testdb/control02.ctl
3) Redo Log File
SQL >select a.group#, a.member, b.bytes/1024/1024 MB, b.sequence# "SEQ#", b.status, b.archived "ARC"
from v$logfile a, v$log b
where a.group#=b.group#
order by 1,2;
4) Parameter File/Password File
- Parameter File
· Oracle 서버의 각종 설정 정보 저장
· 기동에 반드시 필요, 최적값 백업 필요
· $ORACLE_HOME/dbs
- Password File
· sysdba 권한 암호 저장
· DB종료 상태에서 딕셔너리 없이 로그온 하기 위해 존재
· orapwd 로 재생성 가능
5) sqlnet.ora & listener.ora & tnsnames.ora
- sqlnet.ora
· $ORACLE_HOME/network/admin
· local 접속의 권한 관리
· 외부 접속자 list 관리
- listener.ora
· $ORACLE_HOME/network/admin
· 외부에서 DB서버로 접속을 받아주는 리스너의 설정 파일
- tnsnames.ora
· $ORACLE_HOME/network/admin
· 외부 DB서버로 접속할 때의 TNS 정보 설정 파일
□ 백업의 종류
1) 닫힌 백업 (Cold backup/Closed backup)
- 데이터베이스 종료 후 전체 파일 백업
- 모든 파일의 Checkpoint SCN은 같아야 함
· 일반적으로 각각 다른 시점에 받은 백업 파일은 복구에 같이 사용 할 수 없음
- 정상 shutdown 상태에서 백업 가능
· shutdown abort, instance crash 등 상태는 일관성이 흐트러진 상태로 복구에 사용될 수 없음
· OFFLINE 되어 있는 Data File 도 복구에 사용 불가 (Checkpoint scn정보가 다름)
- Archive Log Mode 여부 무관
- Data File, Online Redo Log File, Control File 백업 가능
- 주로 복구가 아닌 복제를 할 때 사용
01. datafile 확인
select name, status from v$datafile;
02. controlfile 확인
select name from v$controlfile;
03. redo log file 확인
select a.group#, a.member as "NAME", b.bytes/1024/1024 MB, b.sequence# "SEQ#", b.status, b.archived "ARC"
from v$logfile a, v$log b
where a.group#=b.group#
order by 1,2;
04. copy 문 script 작성
SELECT 'cp '||NAME|| ' /oracle11/backup/'||to_char(sysdate,'YYYYMMDD')|| substr(name,instr(name,'/',-1))
FROM v$datafile
union all
SELECT 'cp '||NAME|| ' /oracle11/backup/'||to_char(sysdate,'YYYYMMDD') || substr(name,instr(name,'/',-1))
FROM v$controlfile
union all
SELECT 'cp '||NAME|| ' /oracle11/backup/'||to_char(sysdate,'YYYYMMDD') || substr(name,instr(name,'/',-1))
FROM (select member as "NAME"
from v$logfile);
05. DB 정상 종료
SQL > shutdown immediate
06. 폴더 만든 후 파일 백업 (copy문 실행)
07. DB OPEN
SQL > startiup
'Study Note > Database' 카테고리의 다른 글
Control File 장애 복구 (0) | 2016.02.26 |
---|---|
Hot Backup (0) | 2016.02.26 |
No Archive log / Archive log (0) | 2016.02.26 |
Recovery 원리 (0) | 2016.02.26 |
파티션 테이블(partition table) - 인덱스(index) (0) | 2016.02.25 |