写一个oracle备份脚本,每天备份,然后保存7天!
采用数据泵的方式备份,首先要建立备份目录
查看默认备份目录,会显示对应的用户和其备份路径
select * from dba_directories;
对备份目录进行授权(DBDUMP 为directory名称,根据具体查询情况而定,mhsj为用户名)
grant read,write on directory DBDUMP to mhsj;备注:
如果想新创建directory,则为如下语句:
SQL>create directory DBDUMP as '/home/dumpdata/';
如果要更改dumpdir目录的路径,则为如下语句:
SQL>create or replace directory DBDUMP as '/home/dumpfiles';
如果需要赋予用户权限
SQL>grant read,write on directory DBDUMP to mhsj;
备份脚本
#!/bin/bash # #about backup database #set -x #author mhsj.net Dsid=ORCL #实例名 Duser=mhsj #用户 Dpasswd=mhsj #密码 PATCH_LOG="/var/log/oracle_dump.log" Date=`date +"%Y%m%d"` echo -en "`date "+%F %T "` \t" > $PATCH_LOG [ ! -a $PATCH_LOG] && touch $PATCH_LOG chmod 777 $PATCH_LOG check_status() { if [ $? -eq 0 ] then echo -e "$1 $2 ... [ OK ] " |tee -a $PATCH_LOG else echo -e "\033[1;31;40m $1 $2...... [FAILED] \033[0m" echo " $1 $2 ... [FAILED]" >> $PATCH_LOG fi } dump_oracle() { echo "bakup Oracle database ...... Starting" expdp $Duser/$Dpasswd@$Dsid directory=DBDUMP dumpfile="$Dsid-$Date.DMP" logfile="$Dsid-Date.log" >> $PATCH_LOG check_status bakup Oracle } del_file() { find /home/dumpfiles/ -mtime +7 -type f | xargs rm -rf #这里具体的路径根据数据泵的备份路径而定 } dump_oracle && del_file
然后切换oracle用户
su - oracle
配置计划任务(每天晚上9点半)
crontab -e
30 21 * * * /home/oracle/db_bk.sh
转载请注明:梦绘设计 » 数据库 » ORACLE 备份脚本(expdp方式)
版权声明
本站《作品展示》类文章均为原创,转载必须注明出处,技术分享类文章部分来源于网络,版权归原作者所有,若侵权请留言。