종류
- COLD/ HOT / RMAN (유틸리티)
대상
- 필수 : data files,redo log files, control files
- 선택 : parameter file, password file
상세
cold Backup
- 유의사항
- 모든파일은 checkpoint SCN 동일
- 비정상 중지/시작은 일관성이 깨짐
- 테이블스페이스 offline 백업도 cold backup
- 방법
- shutdown -> File copy -> startup
hot backup
- 유의사항
- 테이블스페이스 단위 백업 (전체 데이터베이스 백업 X)
- data file, control file 가능 / redo log file 불가능
- Archive log mod에서만 가능
- 백업간 redo/archive log 양 증가 (block단위 저장)
- 백업간 shutdown/ 테이블스페이스 offline 불가
- 데이터파일 일관성 유지 방법
- begin backup시,
- checkpoint -> 최종 SCN이 데이터파일과 컨트롤파일에 기록
- 데이터파일 헤더 Hot-backup-in-progress 플래그
- end backup시,
- 최종 SCN이후 변경사항을 redo log에서 데이터파일로 반영
- begin backup시,
- 방법
- alter tablespace begin backup -> copy -> alter tablespace end backup
RMAN (Recovery MANager)
- 설명
- 백업/복구를 관리자를 대신하여 대상 서버의 서버 프로세스에게 백업을 수행
- 백업/복구 관련 정보는 Recovery catalog server가 있을경우 recovery catalog에
없을 경우 백업서버의 controlfile에 저장 - 백업 불가 대상
- online redologfile, init.ora, password file, listener.ora, tnsnames.ora
- 서버세션 : RMAN에 의해 호출된 서버 프로세스/스레드는 대상 데이터베이스에 접속되어 백업/복구 수행
- 채널 : 백업/복구 작업을 수행 및 기록하기위해 필요한 대상 데이터베이스 링크
예시(Hot/Cold Backup )
주요 스크립트
Hot backup 여부 체크
select a.file#,a.name,b.status,to_char(b.time,'YYYY-MM-DD:HH24:MI:SS') as time
from v$datafile a, v$backup b
where a.file#=b.file#;
Cold backup
더보기
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> !
[localhost.localdomain:/app/oracle]cp -av /oradata/EHR/*.dbf /data/backup/close;
`/oradata/EHR/sysaux01.dbf' -> `/data/backup/close/sysaux01.dbf'
`/oradata/EHR/system01.dbf' -> `/data/backup/close/system01.dbf'
`/oradata/EHR/temp02.dbf' -> `/data/backup/close/temp02.dbf'
`/oradata/EHR/undo01.dbf' -> `/data/backup/close/undo01.dbf'
`/oradata/EHR/undotbs01.dbf' -> `/data/backup/close/undotbs01.dbf'
`/oradata/EHR/users01.dbf' -> `/data/backup/close/users01.dbf'
[localhost.localdomain:/app/oracle]cp -av /oradata/EHR/*.log /data/backup/close;
`/oradata/EHR/redo01_a.log' -> `/data/backup/close/redo01_a.log'
`/oradata/EHR/redo01_b.log' -> `/data/backup/close/redo01_b.log'
`/oradata/EHR/redo02_a.log' -> `/data/backup/close/redo02_a.log'
`/oradata/EHR/redo02_b.log' -> `/data/backup/close/redo02_b.log'
`/oradata/EHR/redo03_a.log' -> `/data/backup/close/redo03_a.log'
`/oradata/EHR/redo03_b.log' -> `/data/backup/close/redo03_b.log'
[localhost.localdomain:/app/oracle]cp -av /oradata/EHR/*.ctl /data/backup/close;
`/oradata/EHR/control01.ctl' -> `/data/backup/close/control01.ctl'
`/oradata/EHR/control02.ctl' -> `/data/backup/close/control02.ctl'
`/oradata/EHR/control03.ctl' -> `/data/backup/close/control03.ctl'
[localhost.localdomain:/app/oracle]exit
exit
SQL> startup
ORACLE instance started.
Hot backup
더보기
SQL>! vi /orascript/open_backup.sql
conn / as sysdba;
alter tablespace users begin backup;
!cp -av /oradata/EHR/users01.dbf /data/backup/open/
alter tablespace users end backup;
alter tablespace sysaux begin backup;
!cp -av /oradata/EHR/sysaux01.dbf /data/backup/open/
alter tablespace sysaux end backup;
alter tablespace undotbs1 begin backup;
!cp -av /oradata/EHR/undotbs01.dbf /data/backup/open/
alter tablespace undotbs1 end backup;
alter tablespace system begin backup;
!cp -av /oradata/EHR/system01.dbf /data/backup/open/
alter tablespace system end backup;
alter database backup controlfile to '/data/backup/open/control01.ctl';
:wq!
SQL>@/orascript/open_backup.sql
Connected.
Tablespace altered.
`/oradata/EHR/users01.dbf' -> `/data/backup/open/users01.dbf'
Tablespace altered.
Tablespace altered.
`/oradata/EHR/sysaux01.dbf' -> `/data/backup/open/sysaux01.dbf'
Tablespace altered.
Tablespace altered.
`/oradata/EHR/undotbs01.dbf' -> `/data/backup/open/undotbs01.dbf'
Tablespace altered.
Tablespace altered.
`/oradata/EHR/system01.dbf' -> `/data/backup/open/system01.dbf'
Tablespace altered.
Database altered.
'Oracle > 백업과 복구' 카테고리의 다른 글
[논리적 백업/복구] IMPORT/EXPORT & DATAPUMP (0) | 2022.03.23 |
---|---|
[논리적 백업/복구] Flashback (0) | 2022.03.23 |
[물리적 백업/복구] 복구 redo log file (0) | 2022.03.23 |
[물리적 백업/복구] 복구-data file (0) | 2022.03.23 |
[물리적 백업/복구] RMAN (0) | 2022.03.23 |