oracle數據庫定時備份腳本 Oracle備份腳本



文章插圖
oracle數據庫定時備份腳本 Oracle備份腳本

文章插圖
好久沒更新頭條號內容了,突然想起來這個號了,決定還是要繼續更新,哈哈哈,希望大家繼續支持,看完后動動小手關注和點贊下哦~~~
oracle12c shell腳本自動備份 線上環境可用 Centos7.4環境
shell腳本內容如下:
#!/bin/sh#環境變量生效backNod=e172.16.2.101 #備份庫地址提前做好免密rt ORACLE_HOSTNAME=oracle-primaryexport ORACLE_UNQNAME=oracle-primaryexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1export ORACLE_SID=orclexport PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/u01/app/oracle/product/12.2.0/dbhome_1/binbackPath=/home/oracledata/date=`date +%Y_%m_%d` # 獲取系統當前日期時間days=60 #設置刪除60天之前的備份文件serverNode=172.16.2.124orsid=orcl #Oracle數據庫服務器IP、端口、SIDorowner=byyy #備份此用戶下面的數據bakuser=byyy #用此用戶來執行備份,必須要有備份操作的權限bakpass=123456 #執行備注的用戶密碼bakdir=/data/backup/oracledata #備份文件路徑,需要提前創建好bakdata=http://www.mnbkw.com/jxjc/186723/$orowner_$date.dmp #備份數據庫名稱baklog=$orowner_$date.log #備份執行時候生成的日志文件名稱ordatabak=$orowner_$date.tar.gz #最后保存的Oracle數據庫備份文件#cd $bakdir #進入備份目錄#mkdir -p $bakdir/$orowner #按需要備份的Oracle用戶創建目錄exp $bakuser/$bakpass@$serverNode/$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata #執行備份tar -zcvf $bakdir/$orowner/$ordatabak $bakdir/$orowner/$bakdata $bakdir/$orowner/$baklog #壓縮備份文件和日志文件#導入到備份庫scp $bakdir/$orowner/$ordatabak $backNode:$backPathfind $bakdir/$orowner -type f -name *.dmp -exec rm {} ; #刪除備份文件find $bakdir/$orowner -type f -name *.log -exec rm {} ; #刪除日志文件find $bakdir/$orowner -type f -name *.tar.gz -daystart -mtime +$days -exec rm -rf {} ; #刪除60天前的備份(注意:{} 中間有空格)#刪除60天之前的數據庫備份文件ssh $backNode"find $backPath -type f -name '*.tar.gz' -daystart -mtime +$days-exec rm -rf {};"echo "數據庫備份成功:$date"【oracle數據庫定時備份腳本 Oracle備份腳本】定時任務crontab 內容如下
添加可執行權限:chmod +x /opt/module/oracle/ordatabak.sh添加系統定時任務每周日執行一次數據庫全量備份echo "0 0 * * 0 /opt/module/oracle/ordatabak.sh &> /dev/null" > /data/crontabcrontab /data/crontabcrontab -l 查看定時任務備注:如果定時任務無法正常執行,在crontab文件中添加變量
SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/*/3 * * * * /usr/sbin/ntpdate 172.16.2.102&> /dev/null0 0 * * * /opt/module/oracle/ordatabak.sh