Oracle 데이터베이스 자동 백업 | Windows 및 Linux

Windows 및 Linux에서 Data Pump, RMAN 및 예약 작업을 사용하여 자동 Oracle Database 백업을 설정하는 방법을 알아보세요. 효과적인 백업 전략을 통해 데이터 보안을 강화하고 데이터베이스 관리를 효율적으로 수행할 수 있습니다.

download-icon
무료 다운로드
VM, OS, DB, 파일, NAS 등
daniel-kim

Updated by 김대니얼 on 2025/08/20

목차
  • 자동 백업이 필요한 이유는 무엇인가요?

  • Oracle 데이터베이스의 자동 백업 방법

  • Windows에서 일일 자동 Oracle 데이터베이스 백업을 설정하는 방법은?

  • 리눅스에서 Oracle 데이터베이스의 일일 자동 백업을 설정하는 방법은?

  • Oracle 자동 재해 복구 도구

  • 자동 백업 오라클 데이터베이스 FAQ

  • 결론

Oracle Database는 오늘날 세계에서 가장 광범위하게 사용되는 데이터베이스 중 하나입니다. 강력한 기능, 안정성 및 보안성을 갖춘 Oracle Database는 다양한 분야에서 널리 사용되고 있습니다. DBA의 경우, 데이터베이스의 정상적인 작동과 데이터 보안을 보장하는 것은 매우 중요한 과제입니다. 일상적인 데이터베이스 유지보수 업무에서 정기적인 데이터베이스 백업을 수행하는 것은 필수적인 작업입니다. Oracle Database는 수동 백업, RMAN 백업 등 여러 백업 방법을 제공하며, 그 중 자동 백업은 데이터 보안을 효과적으로 보장하는 방법 중 하나입니다. 자동 백업은 수작업을 줄이고 오류를 최소화할 뿐만 아니라, 데이터베이스 장애 발생 시 신속한 데이터 복구가 가능하도록 해줍니다.

자동 백업이 필요한 이유는 무엇인가요?

애플리케이션의 핵심 데이터 저장소인 데이터베이스는 사용자 데이터 및 설정 정보와 같은 대량의 중요한 정보를 포함하고 있습니다. 데이터베이스에 예기치 못한 오류 또는 데이터 손실이 발생할 경우, 업무에 중대한 영향을 미치거나 상당한 손실을 초래할 수도 있습니다. 따라서 데이터베이스를 정기적으로 백업하고 백업 파일을 안전하게 저장하는 것이 매우 중요합니다.

수동 백업은 자주 소홀히 여겨지거나 제때 수행되지 못하는 등의 여러 단점이 있습니다. 따라서 자동 백업은 더 나은 선택이 됩니다. 스크립트를 작성하여 자동 백업을 구현함으로써 효율성을 높이고, 인위적인 오류를 줄이며, 데이터 보안을 더욱 확실히 보장할 수 있습니다.

Oracle 데이터베이스의 자동 백업 방법

Oracle Database에서 자동 백업은 운영체제의 작업 스케줄러(예: cron 작업)와 Oracle의 내장 도구를 사용하여 수행할 수 있습니다. 스크립트를 작성함으로써 예약된 작업을 설정하여 사전 정의된 시간에 자동으로 백업 작업을 실행하도록 할 수 있습니다. Oracle에서 일반적으로 사용되는 자동 백업 도구로는 Data Pump와 RMAN이 있습니다. Data Pump는 데이터베이스 데이터를 내보내는 데 사용되며, RMAN은 주로 데이터베이스 백업 및 복구를 담당합니다.

Data Pump (expdp/impdp)는 압축, 네트워크 전송, 병렬 처리 등의 기능을 통해 효율적인 데이터베이스 내보내기/가져오기를 제공합니다. DBA가 내보내기 파라미터를 정의하고 크론 작업을 통해 백업을 자동화할 수 있도록 지원합니다. RMAN(Recovery Manager)은 증분 백업 및 물리적 백업, 백업 파일 추적 등을 지원하며 포괄적인 데이터베이스 백업 및 복구를 위해 설계되었습니다. 스크립팅과 OS 예약을 통해 자동 백업을 수행할 수 있습니다. Oracle Enterprise Manager(OEM)은 백업 관리를 위한 GUI를 제공하며, 타사 도구들도 Oracle과 통합되어 자동 백업을 지원합니다.

Windows에서 일일 자동 Oracle 데이터베이스 백업을 설정하는 방법은?

Windows 환경에서는 작업 스케줄러(Task Scheduler)를 사용하여 Oracle 데이터베이스 백업을 자동으로 수행하고 삭제할 수 있습니다.

1. 배치 파일(.bat) 만들기

1.1 간단한 스크립트

exp user/password@ORCL direct=y buffer=100000 file=D:\backup\dmp%date:~0,10% LOG=D:\backup\data.log  
forfiles /p "D:\backup" /s /m *.dmp /d -7 /c "cmd /c del @path"

설명:

exp 명령어는 Oracle의 덤프 백업 명령어이며, %date:~0,10%은 DOS에서 날짜를 추출합니다.

forfiles는 Windows 파일 검색 명령어로, 최근 3일 이내에 생성된 백업 디렉터리에서 .dmp 파일을 검색하여 삭제합니다.

forfiles의 매개변수:

/p는 검색 경로를 지정합니다(이 경우, 백업 파일이 저장된 디렉터리).

/m은 마스크를 사용하여 파일을 검색합니다(예: 백업 덤프 파일의 경우 .dmp).

/d 필터는 특정 날짜 전 또는 후에 수정된 파일을 표시합니다(-3은 3일보다 오래된 파일을 의미함).

/s는 하위 디렉터리를 포함합니다.

/c는 각 파일에서 실행할 명령을 지정합니다 (예: 파일을 삭제하기 위해 cmd /c del @file).

1.2 고급 스크립트

@echo off
echo ================================================
echo Oracle Database Automated Backup Script in Windows
echo 1. Uses the current date as the backup file name.
echo 2. Automatically deletes backups older than 7 days.
echo ================================================
:: Extract year, month, day, hour, minute, and second.
set dd=%DATE:~8,2%
set mm=%DATE:~5,2%
set yy=%DATE:~0,4%
set Tss=%TIME:~6,2%
set Tmm=%TIME:~3,2%
set Thh=%TIME:~0,2%
set Thh=%Thh: =0%
:: Generate timestamp in YYYYMMDDHHmmss format.
set BACKUPDATE=%yy%%mm%%dd%%Thh%%Tmm%%Tss%
:: Set username, password, and database name.
set USER=admin
set PASSWORD=admin
set DATABASE=ORCL
:: Create backup directories if they do not exist.
if not exist "D:\backup_database\data" mkdir D:\backup_database\data
if not exist "D:\backup_database\log" mkdir D:\backup_database\log
set DATADIR=D:\backup_database\data
set LOGDIR=D:\backup_database\log
:: Perform the backup.
exp %USER%/%PASSWORD%@%DATABASE% file=%DATADIR%\data_%BACKUPDATE%.dmp log=%LOGDIR%\log_%BACKUPDATE%.log
:: Delete backups and logs older than 7 days.
forfiles /p "%DATADIR%" /s /m *.* /d -7 /c "cmd /c del @path"
forfiles /p "%LOGDIR%" /s /m *.* /d -7 /c "cmd /c del @path"
exit

참고: 스크립트 실행 시 한글이 깨져 보인다면 메모장에서 ANSI 형식으로 파일을 저장하십시오.

2. Windows에서 예약된 작업 만들기

Windows 작업 스케줄러 열기:

제어판 → 시스템 및 보안 → 관리 도구 → 작업 예약기

오른쪽 패널에서 "기본 작업 만들기" 마법사를 엽니다.

작업 이름과 선택적인 설명을 입력한 후 다음을 클릭하십시오.

트리거를 일별로 설정하십시오.

프로그램 시작을 위해 Start a Program을 선택하고, 배치 파일을 검색하여 설정을 완료하십시오.

리눅스에서 Oracle 데이터베이스의 일일 자동 백업을 설정하는 방법은?  

1. 데이터베이스 환경 변수 확인  

루트 계정을 사용하는 경우 먼저 데이터베이스 사용자로 전환해야 합니다:  

su oracle

환경 변수를 확인하십시오:  

cat ~/.bash_profile

다음 환경 변수들이 설정되었는지 확인하십시오:  

export PATH
export ORACLE_BASE=/home/nnc_db/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl

2. 백업 스크립트 생성  

새 스크립트 파일 편집:  

vi bak.sh

환경 변수를 `bak.sh`에 복사 및 붙여넣기 하십시오. 그런 다음 백업 파일 이름에 사용되는 변수 `date`를 정의하고 `expdp` 명령어로 데이터베이스를 내보냅니다:  

date=$(date +%Y%m%d)
expdp db_username/db_password@db_instance dumpfile=${date}_db_auto_backup.dmp schemas=db_username compression=all

저장하고 종료합니다.

3. crontab을 사용하여 백업 예약  

crontab 파일을 편집합니다:  

crontab -e

텍스트 편집기에 다음 줄을 추가하십시오:  

0 0 * * * /home/nnc_db/bak.sh

이것은 매일 오전 12시에 `/home/nnc_db/bak.sh` 스크립트가 실행된다는 것을 의미합니다. 필요에 따라 시간과 파일 경로를 조정하십시오.  

cron 서비스를 다시 시작하십시오:  

service crond restart

4. 작업이 성공적으로 실행되는지 확인합니다  

일부 사용자에 따르면 크론탭 작업이 설정된 후 처음 3분 동안 즉시 적용되지 않을 수도 있다고 보고되었습니다. 귀하의 스크립트가 제대로 실행되고 있는지 테스트하려면 매분마다 실행되도록 예약해볼 수 있습니다:  

* * * * * /home/nnc_db/bak.sh

스크립트가 정상적으로 실행된다면 문제는 crontab 활성화 지연으로 인한 것일 수 있습니다.  

또한 수동으로 스크립트를 실행하면 상세한 출력 결과가 표시되지만, `crontab`을 통해 예약 실행할 경우에는 직접적인 출력이 없습니다. 스크립트가 실행되고 있는지 확인하려면 다음 위치의 로그를 확인하십시오:  

/var/spool/mail/

Oracle 자동 재해 복구 도구

Vinchin Backup & Recovery 는 가상 머신 및 데이터베이스를 위한 강력한 백업 및 복구 도구로, 자동 VM 백업, 에이전트리스 백업, LAN/LAN-Free 백업, 오프사이트 복사, 즉시 복구, 효과적인 데이터 감소, 클라우드 아카이브 등과 같은 고급 백업 및 재해 복구 기능을 제공하며, 3-2-1 골든 백업 구조를 엄격히 따릅니다. 데이터 보안과 무결성을 포괄적으로 확보합니다. 또한 데이터 암호화 및 랜섬웨어 방지 보호 기능을 통해 데이터베이스 백업을 이중으로 보호할 수 있습니다.

Oracle 데이터베이스를 백업하는 데에는 4단계만 필요합니다:

1. 백업 대상 선택

Oracle 데이터베이스 백업

2. 백업 대상 선택

Oracle 데이터베이스 백업

3. 백업 전략 구성

백업 Oracle 데이터베이스

여기에서 백업 작업을 위한 일정을 설정할 수 있습니다. 매주 또는 매월 전체 백업을 수행하고 매일 증분 백업을 수행할 수 있습니다.

4. 작성한 공고 검토하고 제출

Oracle 데이터베이스 백업

지금 Vinchin 백업 및 복구의 60일간 기능 제한 없는 무료 체험을 신청하여 귀사의 Oracle 데이터를 손쉽게 보호하고 자동화된 백업과 신속한 복구를 실현해 보세요!

자동 백업 오라클 데이터베이스 FAQ

1. RMAN과 데이터 펌프의 차이점은 무엇입니까?

RMAN은 주로 백업과 복구를 위해 사용되며, 데이터베이스 파일의 물리적 백업, 증분 백업, 특정 시점 복구가 가능합니다. 반면, Data Pump는 테이블, 스키마 또는 전체 데이터베이스와 같은 데이터베이스 객체를 이식 가능한 형식으로 내보내기 및 가져오기를 수행하는 논리적 백업에 사용됩니다. RMAN은 전체 데이터베이스 복구에 가장 적합한 반면, Data Pump는 데이터 마이그레이션, 복제 및 선택적 데이터 추출에 이상적입니다.

2. RMAN 백업에서 단일 테이블을 복원하려면 어떻게 해야 합니까?

단일 테이블을 복원하려면 RMAN 테이블스페이스 시점 복구 또는 데이터 펌프를 사용하십시오.

데이터 펌프를 사용하는 예:

impdp system/password directory=DATA_PUMP_DIR dumpfile=backup.dmp remap_table=old_table:new_table

결론

Oracle Database의 자동 백업은 데이터 보안 보장, 인위적 오류 최소화 및 장애 발생 시 신속한 복구를 위해 필수적입니다. Data Pump와 RMAN과 같은 내장 도구 및 운영 체제 스케줄러를 활용함으로써 DBA는 Windows 및 Linux 시스템 모두에서 효율적인 백업 전략을 구현할 수 있습니다. 올바르게 설정된 자동 백업은 데이터 손실 위험을 줄이고 업무 연속성을 보장하므로 데이터베이스 유지 관리에 없어서는 안 되는 중요한 부분입니다.

공유하기:

Categories: Database Backup