본문 바로가기

DB/oracle

오라클 DB 주기적으로 덤프하기

반응형

 개요

 작은 규모의 프로젝트 진행 시 데이터베이스를 풀 백업을 잘 하지 않고 진행하는 경우가 많은데, 얼마전 쿼리 중 Where 이 없이 업데이틑 되는 경우가 발생하여 데이터가 꼬였다....상시 백업이 안되면 최소 한달 주기정도로 백업을 하는 내부백업 정책을 만들어 도입하기로 하였다.  

 덤프 방법

덤프 전에 덤프 디렉토리를 생성한다.

SQL> CREATE DIRECTORY DIR_DUMP as '/oracle/backup/dump';


아래 쿼리로 디렉토리 정보를 확인 할 수 있다.

SELECT * FROM dba_directories;


덤프 생성용 쉘스크립트 생성

vi /oracle/backup/dump/makeDumpfile.sh
#!/bin/bash

USER=`whoami`
echo $USER

echo "You are logged in as $USER";

if [ $USER != "oracle" ]; then
  echo "Must be logged on as oracle to run this script."
  exit
fi

YYMMDD=`date +"%y%m%d"`
DUMP_FILE_NAME="DUMP_${YYMMDD}.dmp"
LOG_FILE_NAME="DUMP_${YYMMDD}.log"

if [ ! -e $DUMP_FILE_NAME ] then
   echo $DUMP_FILE_NAME
   echo $LOG_FILE_NAME

   expdp "'/ as sysdba'" directory=DIR_DUMP dumpfile=${DUMP_FILE_NAME} logfile=${LOG_FILE_NAME} schemas=NPCOOWN,NPCOAPP,NPFCOWN,NPFCAPP,NPMSOWN,NPMSAPP,NPRVOWN,NPRVAPP,ME,NCMSOWN

else
   echo "Same File exists"
fi


파일 생성 후 실행 권한을 주자

chmod u+x /home/oracle/migom/makeDumpfile.sh
chmod g+x /home/oracle/migom/makeDumpfile.sh


매월 1월 1일 덤프파일을 만들도록 크론탭에 등록

crontab -e


SHELL=/bin/bash
00 01 01 * * /oracle/backup/dump/makeDumpfile.sh


crontab -l


실행 후 오라클 덤프 디렉토리인  /oracle/backup/dump 디렉토리에 덤프파일과 로그파일이 잘 생성되었는지 확인한다.

반응형

'DB > oracle' 카테고리의 다른 글

SYS 계정 패스워드 변경  (0) 2024.08.20
오라클에서 Unix Timpstamp 조회  (0) 2016.11.29
시퀀스 현재 값 확인  (1) 2011.11.14
오라클 alert log 경로 보기  (0) 2011.06.08
테이블 컬럼 순서 조절하기  (0) 2011.03.25
댓글