본문 바로가기

Computer Engineering/DB

오라클 Closed 백업(=Cold 백업)

3.1.2. Open 백업(=Hot Backup)

- 데이터베이스가 운영중인 상태(OPEN상태)에서 백업하는 방법을 의미합니다.

- Datafile을 Online Backup하고 있다면 이 시점에 Data File에 저장되어야 할 사항이 Redo Log File에 저장 됩니다. 만약 NoArchiveLog Mode라면 Online Redo Log를 재사용하게 되므로 후에 Recovery가 불가능 할 수 있기 때문에 Oracle은 NoArchive Log Mode에서는 Online Backup을 불가능 하도록 해 놓았습니다. 그러므로 ArchiveLog Mode에서만 백업이 가능 합니다.

- 테이블 스페이스의 모든 DataFile 또는 하나의 Data File을 백업 할 수 있습니다.
1. 데이터파일, 컨트롤 파일, redo 로그 파일의 위치와 이름을 확인한다.

-- sqlplus를 실행합니다.
C:\> sqlplus /nolog

-- SYSDBA권한으로 접속합니다.
SQL>connect / as sysdba

-- Controlfile의 위치 및 이름을 확인합니다.
SQL>SELECT name FROM v$controlfile;


-- 해당 테이블 스페이스의 데이터 파일 위치 및 이름을 확인합니다.
SQL>SELECT file_id, tablespace_name, file_name FROM dba_data_files;


--Redo Log 파일들의 위치 및 이름을 확인 합니다.
SQL>SELECT * FROM v$logfile;



2. SYSTEM 테이블 스페이스를 OPEN 백업 수행합니다.

-- 테이블 스페이스를 open 백업을 수행한다.
SQL> alter tablespace system begin backup;

-- System Tablespace에 속하는 데이터 파일을 백업 한다.(E:\BACKUP\HOT\백업)
SQL> host COPY E:\ORACLE\ORADATA\GHLEE\SYSTEM01.DBF E:\BACKUP\HOT\
(host는 SQL 프롬프트에서 OS명령어를 수행하기 위한 명령어이다)



3. 현재 백업중인 데이터 파일의 정보를 확인 합니다.

SQL> SELECT * FROM V$BACKUP;
(위에서 SYSTEM TABLESPACE에 해당하는 FILD_ID가 1번 이므로 FILE#이 1번인 것을 확인하면은 현재 SYSTEM TABLESPACE에 속하는 데이터파일이 백업 중(ACTIVE)인 것을 확인할 수 있습니다)

※ status가 NOT ACTIVE인 FILE은 현재 File이 BACKUP MODE에 있지 않다는 것을 의미하며, ACTIVE인 상태는 현재 데이터 File이 백업 모드에 있다는 것을 의미합니다.
CHANGE#은 SCN(System Change Number)를 보여주는 Column이며 TIME은 BACKUP MODE에 있던 일자를 보여주는 컬럼 입니다. 위는 2007년 8월1일 File#가 1번인 File이 Online 백업 중 이라는 것을 의미합니다.


4. 백업이 완료 되면 (COPY명령어로 인한 백업 작업이 완료 되었다는 명령어가 나오면은) 온라인 백업을 종료 합니다.

SQL> alter tablespace system end backup;



5. 다시 한번 데이터 파일의 정보를 확인하면, NOT ACTIVE인 상태를 확인하실 수 있습니다.

◈ ControlFile의 백업
데이터베이스가 오픈된 상태에서 백업 받을 경우 DataFile들만 Copy하므로 Controlfile은 따로 백업을 받아야 합니다. 만약, 테이블 스페이스가 추가 되는 경우 와 같이, 데이터베이스의 구조가 변경되었을 경우 데이터 파일만 백업받고, Controlfile은 백업받지 않을 경우 이전의 Controlfile만을 가지고 복구를 수행 할 경우 새로 추가된 테이블 스페이스는 복구하려고 하지 않습니다. 그러므로, 반드시 데이터 베이스의 구조가 변경되었을 경우에는 Controlfile도 백업을 받아야 합니다.

◈ ControlFile의 백업 받아야 하는 경우
- Alter database logfile
- alter database logfile member
- alter data base logfile group
- alter database
- alter database rename file
- create tablespace
- alter database datafile
- alter database

- drop tablespace ◈ Control File Backup수행
-- 현재의 Control File을 Image Copy 하는 방법
경로를 제외할 경우 윈도우의 경우는 $ORACLE_HOME/database에 존재하고 유닉스 계열에서는 $ORACLE_HOME/dbs에 존재합니다.
SQL> alter database backup controlfile to <파일 경로>;

-- Controlfile을 재생성 할 수 있도록 Script를 생성하는 방법
저장 위치는 USER_DUP_DEST에 현재 Session의 Process번호로 생성 됩니다.
SQL> alter database backup controlfile to trace;
  ================================================
    * 오라클 정보공유 커뮤니티 oracleclub.com
    * http://www.oracleclub.com
    * http://www.oramaster.net
    * 강좌 작성자 : 이가혜 (drakula_97 _at_ hanmail.net)
  ================================================
※ oracleclub 강좌를 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
※ oracleclub 강좌는 개인의 학습용으로만 사용 할 수 있습니다. 학원 홍보용이나 수익을 얻기 위한 용도로
    사용을 하시면 안됩니다. ^^