最近半个月来,没有做数据库,一直忙于其他事情,突然一忙这边的事情,还多多少少有那么一点点地生硬,不过还好,最近数据库备份的事情还是解决了。
昨天写了一个数据库自动备份的脚本,等待30秒以后,再ftp到另一个目录下。
首先作了一个设置环境的脚本ora_env
ORACLE_HOME=/oracle/OraHome;export ORACLE_HOME
ORACLE_SID=MOSS;export ORACLE_SID
LD_LIBRARY_PATH=$ORACLE_HOME/lib;export LD_LIBRARY_PATH
ORA_NLS32=$ORACLE-HOME/ocommon/nls/admin/data;export ORA_NLS
PATH=.:/usr/ccs/bin:/oracle/OraHome/bin:/usr/ucb:$ORACLE_HOME/bin:$PATH;export PATH
DISPLAY=localhost:0.0;export DISPLAY
NLS_LANG=american_america.zhs16cgb231280;export NLS_LANG
然后写了一个ftp的脚本
FTP_USER="oracle"
FTP_PWD="gateway"
FTP_HOST="133.193.6.9"
FTP_DATA_DIR="/oracle/back"
STORE_DIR="/oracle/JiFei/"
rq=`date +%y%m%d`
echo $GATE_DATA
export FTP_USER
export FTP_PWD
export FTP_HOST
export FTP_DATA_DIR
export STORE_DIR
if [[ ${FTP_HOST} = " " ]]
then
echo 'sorry the machine was not found'
exit 0
else
cd ${STORE_DIR}
ftp -n -i -v << !
open ${FTP_HOST}
user ${FTP_USER} ${FTP_PWD}
cd ${FTP_DATA_DIR}
lcd ${STORE_DIR}
bin
mget exp$rq.dmp
bye
!
fi
还有一个ora_back的脚本
!/usr/bin/sh
/oracle/bin/./ora_env
rq=`date +%y%m%d`
ORACLE_SID=MOSS; export ORACLE_SID
ORACLE_HOME=/oracle/OraHome;export ORACLE_HOME
PATH=.:/usr/ccs/bin:/oracle/bin:$ORACLE_HOME/bin:/usr/ucb:$PATH;export PATH
/oracle/OraHome/bin/exp buffer=50000 indexes=y rows=y constraints=y feedback=6000 compress=N file=/oracle/back/exp$rq.dmp log=/oracle/back/exp$rq.log
#exp file=/oracle/back/exp$rq.dmp log=/oracle/back/exp$rq.log parfile=/oracle/exp.txt
sleep 30
ftp_file
备份以后需要等待30秒然后再ftp到另一个目录
root用户付给他们权限
chmod 755 ora_env
chmod 755 ora_back
chmod 755 ftp_file
再用crontab 工具定时自动运行ora_back脚本
crontab -e 编辑脚本 crontab -l查看定时脚本
我修改的是root的脚本
30 0 18 * * /oracle/bin/ora_back
现在已经ok了,呵呵
有什么疑义,请msn 联系
阅读(859) | 评论(0) | 转发(0) |