본문 바로가기
프로그래밍/데이터베이스

Oracle Open 백업 하기(Hot backup)

by pentode 2018. 4. 21.

Oracle 백업은 닫힌 백업(Close Backup)과 열린 백업(Open Backup) 으로 나눌 수 있습니다. 닫힌 백업은 Oracle 데이터베이스를 완전히 종료한후 필요한 파일을 백업하는 방법입니다. 열린 백업은 데이터베이스가 실행중에 백업을 할 수 있는 방법 입니다. 여기에서는 Oracle의 열린 백업을 하는 방법을 알아보겠습니다. 환경은 Windows에서 Oracle XE 11g 로 테스트 하였습니다.


일단 열린 백업을 하기 위해서는 데이터베이스가 아카이브 모드로 동작하고 있어야 합니다. 아카이브 모드로 설정하는 것은 "Oracle Archive Mode 설정하기" 를 참조하세요.


1. 백업 대상이 되는 파일

- 데이터 파일 : 실제 데이터가 저장되는 파일 입니다.

- 컨트롤 파일 : 데이터베이스 구조를 가지는 파일 입니다.

- redo 로그 파일 : 데이터베이스 변경사항이 저장된 파일입니다.

- 파라미터 파일 : 데이터베이스의 설정 정보를 가지는 파일 입니다.

- 패스워드 파일 : 비밀번호가 저장되는 파일입니다.


2. 데이터 파일 확인하기

- 파일명과 상태 조회

SQL> select file#, name, status from v$datafile;


FILE# NAME                                                 STATUS

----- ---------------------------------------------------- ------

   1  D:\UTIL\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSTEM.DBF    SYSTEM

   2  D:\UTIL\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSAUX.DBF    ONLINE

   3  D:\UTIL\ORACLEXE\APP\ORACLE\ORADATA\XE\UNDOTBS1.DBF  ONLINE

   4  D:\UTIL\ORACLEXE\APP\ORACLE\ORADATA\XE\USERS.DBF     ONLINE

 

4 rows selected.

- 테이블스페이스명 조회

SQL> select file_id, tablespace_name, file_name from dba_data_files;


FILE_ID TABLESPACE_NAME FILE_NAME

------- --------------- ----------------------------------------------------

      4 USERS           D:\UTIL\ORACLEXE\APP\ORACLE\ORADATA\XE\USERS.DBF

      2 SYSAUX          D:\UTIL\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSAUX.DBF

      3 UNDOTBS1        D:\UTIL\ORACLEXE\APP\ORACLE\ORADATA\XE\UNDOTBS1.DBF

      1 SYSTEM          D:\UTIL\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSTEM.DBF


4 rows selected.



3. 컨트롤 파일 확인하기


SQL> select name from v$controlfile;


NAME

--------------------------------------------------

D:\UTIL\ORACLEXE\APP\ORACLE\ORADATA\XE\CONTROL.DBF



4. redo 로그 파일 확인하기


SQL> select group#,type, member from v$logfile;


GROUP# TYPE    MEMBER

------ ------- ---------------------------------------------------------------------------------

     2 ONLINE  D:\UTIL\ORACLEXE\APP\ORACLE\FAST_RECOVERY_AREA\XE\ONLINELOG\O1_MF_2_F08GZXS8_.LOG

     1 ONLINE  D:\UTIL\ORACLEXE\APP\ORACLE\FAST_RECOVERY_AREA\XE\ONLINELOG\O1_MF_1_F08GZXJ0_.LOG


5. Hot backup 배치 파일 입니다.(hot_backup.bat)


@echo off

sqlplus "/ as sysdba" @d:\backup\hot_backup.sql


- sysdba 권한으로 hot_backup.sql 스크립트를 실행시킵니다.



6. Hot backup 스크립트 입니다.(hot_backup.sql)


alter tablespace SYSTEM begin backup;

host copy D:\UTIL\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSTEM.DBF d:\backup\dbfiles\SYSTEM_%date:~0,4%%date:~5,2%%date:~8,2%.DBF

alter tablespace SYSTEM end backup;

alter tablespace UNDOTBS1 begin backup;

host copy D:\UTIL\ORACLEXE\APP\ORACLE\ORADATA\XE\UNDOTBS1.DBF d:\backup\dbfiles\UNDOTBS1_%date:~0,4%%date:~5,2%%date:~8,2%.DBF

alter tablespace UNDOTBS1 end backup;

alter tablespace SYSAUX begin backup;

host copy D:\UTIL\ORACLEXE\APP\ORACLE\ORADATA\XE\SYSAUX.DBF d:\backup\dbfiles\SYSAUX_%date:~0,4%%date:~5,2%%date:~8,2%.DBF

alter tablespace SYSAUX end backup;

alter tablespace USERS begin backup;

host copy D:\UTIL\ORACLEXE\APP\ORACLE\ORADATA\XE\USERS.DBF d:\backup\dbfiles\USERS_%date:~0,4%%date:~5,2%%date:~8,2%.DBF

alter tablespace USERS end backup;

alter system switch logfile;

alter system archive log current;

alter database backup controlfile to trace as 'd:\backup\ctlfile\ctltrc.sql';

host move d:\backup\ctlfile\ctltrc.sql d:\backup\ctlfile\ctltrc_%date:~0,4%%date:~5,2%%date:~8,2%.sql

host copy D:\util\oraclexe\app\oracle\product\11.2.0\server\database\initXE.ora d:\backup\pfile\initXE_%date:~0,4%%date:~5,2%%date:~8,2%.ora

host copy D:\util\oraclexe\app\oracle\product\11.2.0\server\database\pwdXE.ora d:\backup\pwdfile\pwdXE_%date:~0,4%%date:~5,2%%date:~8,2%.ora

host copy D:\util\oraclexe\app\oracle\product\11.2.0\server\dbs\spfileXE.ora d:\backup\spfile\spfileXE_%date:~0,4%%date:~5,2%%date:~8,2%.ora

exit


- 데이터파일의 온라인 상태로 백업하기 위해서 alter tablespace SYSTEM begin backup; 명령을 실행하고, 데이터 파일을 복사후 alter tablespace SYSTEM end backup; 명령으로 백업을 마칩니다. 각 데이터 파일 마다 반복해 줍니다.

- alter system switch logfile; 명령으로 아카이브 로그 파일을 생성합니다.

- alter database backup controlfile to trace as '파일명'; 명령으로 control 파일의 생성 스크립트 형태로 백업합니다. alter database backup controlfile to '파일명'; 을 사용하면 그대로 복사합니다.


Oracle에서 온라인 상태에서 백업 하는 방법을 알아 보았습니다.

반응형