14
2017
08

Linux下远程备份Oracle数据库脚本

备份脚本的思路如下:

exp 导出数据,将dmp数据文件压缩为 tar.gz包,再通过Ftp传送到远程FTP服务器上。

通过设置crontab,将此脚本设置为定时任务,即可定时自动备份数据到远程FTP服务器上。



#!/bin/bash
 
export ORACLE_HOME=/home/oracle/app/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
 
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export PATH
 
WORK_PATH=/home/oracle/db_data/  #导出数据的目录
DB_USER=db_user  #数据库用户名
DB_PWD=db_mima   #数据库密码
 
DB_SID=orcl
 
DATE=`date '+%Y%m%d_%H%M%S'`     #文件名后缀为日期
BACK_FILE=${DB_USER}.dmp_${DATE}
BACK_LOG=${DB_USER}.log_${DATE}
TAR_FILE=$BACK_FILE.tar.gz
 
FTP_IP=192.168.1.101  #FTP服务器IP
FTP_USER=ftpuser    #FTP用户名
FTP_PWD=mima        #FTP密码
FTP_REMOTE_PATH=/data/data_bak/    #FTP远端目录
FTP_LOCAL_PATH=/home/oracle/db_data
 
echo $BACK_FILE
echo $TAR_FILE
 
#exp
 
CMD=${DB_USER}/${DB_PWD}@${DB_SID} file=${WORK_PATH}$BACK_FILE log=${WORK_PATH}$BACK_LOG
 
echo $CMD 
 
exp ${DB_USER}/${DB_PWD}@${DB_SID} file=${WORK_PATH}$BACK_FILE log=${WORK_PATH}$BACK_LOG
 

#tar
cd ${WORK_PATH}   ;tar -czvf ${TAR_FILE} $BACK_FILE $BACK_LOG
 
#ftp
ftp -nv >>${WORK_PATH}ftp.log <<EOF
#ftp -ndv<<EOF
open $FTP_IP
user $FTP_USER $FTP_PWD
binary
hash
prompt
cd   $FTP_REMOTE_PATH
lcd  $FTP_LOCAL_PATH
mput $TAR_FILE
close
bye
EOF


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。