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에서 온라인 상태에서 백업 하는 방법을 알아 보았습니다.
'프로그래밍 > 데이터베이스' 카테고리의 다른 글
Oracle 원하는 기간의 날짜 데이터 만들기 (0) | 2018.07.14 |
---|---|
오라클 에러 ORA-00984: 열을 사용할 수 없습니다 (0) | 2018.07.12 |
Oracle Archive Mode 설정하기 (0) | 2018.04.21 |
Windows용 MySQL 백업 배치 파일 만들기 (3) | 2018.04.20 |
오라클 MERGE INTO 문으로 있으면 UPDATE 없으면 INSERT 한번에 수행하기 (9) | 2018.04.20 |