婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Oracle自動備份腳本

Oracle自動備份腳本

熱門標簽:圖吧網站地圖標注 哪個400外呼系統好 地圖標注養老院 開發外呼系統 百度地圖標注途經點 愛客外呼系統怎么樣 山東crm外呼系統軟件 慧營銷crm外呼系統丹丹 哈爾濱電話機器人銷售招聘

廢話不多說了,直接給大家貼代碼了,具體代碼如下所示:

#!/bin/sh
#******************************************************************
# File: oraclebak.sh
# Creation Date: 2014/1/22 17:57:32
# Last Modified: 2014/1/22 17:57:34
# 腳本功能:oracle備份腳本
# 執行方法:1、第一次執行需要root用戶執行,腳本會以詢問的方式創建備份目錄和相關參數
# 2、腳本會自動寫入crontab調度里面定時執行,crontab設置是在第一次執行的時候自動添加的
#******************************************************************
echo $USER
if [ $USER != root ]
then
echo "檢測到安裝用戶不是root用戶,請用root用戶登錄再執行安裝文件"
exit 1
fi
echo "開始安裝oracle數據庫備份工具.........................."
echo "請輸入備份程序的安裝目錄:"
read installdir
mkdir -p $installdir
result=$?
while [ $result -ne 0 ]
do
echo "無法創建目錄,請重新輸入或退出安裝。輸入y重新輸入,輸入n退出安裝。"
read redo
if [ $redo != y ]
then
echo "用戶退出安裝。"
exit 0
fi
echo "請輸入備份程序的安裝目錄:"
read installdir
mkdir $installdir
result=$?
done
echo "安裝目錄創建完成。"
echo "請輸入執行備份用戶(一般為oracle用戶):"
read execuser
id $execuser
result=$?
while [ $result -ne 0 ]
do
echo "不存在該用戶,是否更換其它用戶或者退出安裝新建用戶,輸入y更換用戶,輸入n退出安裝"
read redo
if [ $redo != y ]
then
echo "用戶退出安裝"
exit 0
fi
echo "請輸入執行備份的用戶(一般為tnmsdb2用戶)"
read execuser
id $execuser
result=$?
done
echo "你希望建立備份的數據庫數量(一般為1)"
read backnum
if [ $backnum -eq 0 ]
then
echo "無備份數據庫,退出安裝"
exit 0
fi
scount=0
while [ $scount -lt $backnum ]
do
echo "請輸入第"$(($scount+1))"個備份登錄登錄oracle數據庫的用戶名和密碼,以及本地服務名"
echo "用戶名"
read username[$scount]
echo "密碼"
read password[$scount]
echo "服務名"
read sname[$scount]
su -l -c"sqlplus /nolog" $execuserinsert
whenever sqlerror exit sql.sqlcode;
connect ${username[$scount]}/${password[$scount]}@${sname[$scount]}
exit
insert
result=$?
if [ $result -ne 0 ]
then
echo "輸入數據庫信息無法被連接,是否重新輸入?輸入y重新輸入,輸入n退出安裝。"
read redo
if [ $redo != y ]
then
echo "用戶退出安裝"
exit 0
fi
else
scount=$(($scount+1))
fi
done
echo "輸入值守時間,值守時間的格式為 mm hh dd MM E 。"
echo "m代表分鐘,h代表小時,d代表日期,M代表月份,E代表星期"
echo "不輸入則為任意時間"
scount=0
iscontinue=y
while [ $iscontinue == y ]
do
echo "輸入第$(($scount+1))個值守時間"
echo "分鐘"
read min
echo "小時"
read hour
echo "日期"
read day
if [ ! $day ]
then
day="*"
fi
echo "月份"
read mouth
if [ ! $mouth ]
then
mouth="*"
fi
week="*"
backtime[$scount]="$min $hour $day $mouth $week"
echo -e "${backtime[$scount]}"
echo "是否輸入更多值守時間?輸入y繼續,輸入n進入下一步。"
read iscontinue
scount=$(($scount+1))
done
echo "是否要進行遠程備份?輸入y為進行遠程備份,輸入n進入下一步"
scount=0
read iscontinue
while [ $iscontinue == y ]
do
echo "請選擇遠程備份類型,輸入s為sftp備份類型,否則為ftp備份類型"
read iss
if [ $iss == s ]
then
rtype[$scount]="sftp"
else
rtype[$scount]="ftp"
fi
echo "請輸入遠程備份地址,可以為域名,計算機名或者ip地址"
read rurl[$scount]
echo "請輸入遠程備份登錄名"
read rname[$scount]
echo "請輸入遠程備份登錄密碼"
read rpass[$scount]
echo "是否輸入更多遠程備份地址?輸入y重新輸入,n進入下一步"
read iscontinue
scount=$(($scount+1))
done
# installdir
# execuser
# username password sname
# backtime
# rtype rurl rname rpass
echo "您所作的備份配置如下:"
sresult=$(echo -n "$installdir" | grep '^/')
if [ ! $sresult ]
then
installdir="$PWD/$installdir"
else
installdir=$installdir
fi
echo "本地備份目錄為$installdir"
echo "執行備份系統用戶為$execuser"
echo "系統備份數據庫:"
allcount=${#username[@]}
scount=0
while [ $scount -lt $allcount ]
do
echo "${username[$scount]}/${password[$scount]}@${sname[$scount]}"
scount=$(($scount+1))
done
echo "執行備份的值守時間表,*代表任意"
scount=0
backnum=${#backtime[@]}
while [ $scount -lt $backnum ]
do
echo "${backtime[$scount]}"
scount=$(($scount+1))
done
rnum=${#rtype[@]}
if [ $rnum -ne 0 ]
then
echo "遠程備份的服務地址為:"
scount=0
while [ $scount -lt $rnum ]
do
echo "連接方式:${rtype[$scount]},連接地址:${rurl[$scount]},用戶名:${rname[$scount]},密碼:${rpass[$scount]}"
scount=$(($scount+1))
done
fi
echo "是否確認安裝?輸入y繼續,輸入n退出安裝"
read isgoon
if [ $isgoon != y ]
then
exit 0;
fi
echo "正在生產目錄結構................................";
mkdir -p $installdir/logs
mkdir -p $installdir/temp
mkdir -p $installdir/zip
chown -Rvf $execuser $installdir
echo "目錄結構生成完成................................"
echo "生成備份執行文件................................"
echo "#!/bin/bash">$installdir/runback.sh
echo "source ~/.bash_profile">>$installdir/runback.sh
echo "nowdate=\$(date +%Y-%m-%d_%k.%M.%S)">>$installdir/runback.sh
echo "nowmouth=\$(date +%Y-%m)">>$installdir/runback.sh
echo "echo \"\$nowdate開始備份.......................................\">>$installdir/logs/\$nowmouth.log">>$installdir/runback.sh
scount=0
snum=${#username[@]}
while [ $scount -lt $snum ]
do
echo "exp ${username[$scount]}/${password[$scount]}@${sname[$scount]} file=$installdir/temp/${username[$scount]}_${sname[$scount]}\$nowdate.dmp compress=N>>$installdir/logs/\$nowmouth.log 2>1">>$installdir/runback.sh
scount=$(($scount+1))
done
echo "echo \"\$(date +%Y-%m-%d_%k.%M.%S)完成備份.......................................\">>$installdir/logs/\$nowmouth.log">>$installdir/runback.sh
echo "echo \"\$(date +%Y-%m-%d_%k.%M.%S)開始打包.......................................\">>$installdir/logs/\$nowmouth.log">>$installdir/runback.sh
echo "gzip $installdir/zip/\$nowdate.zip $installdir/temp/>>$installdir/logs/\$nowmouth.log 2>1">>$installdir/runback.sh
echo "rm -Rvf $installdir/temp/*>>$installdir/logs/\$nowmouth.log 2>1">>$installdir/runback.sh
echo "echo \"\$(date +%Y-%m-%d_%k.%M.%S)打包完成.......................................\">>$installdir/logs/\$nowmouth.log">>$installdir/runback.sh
scount=0
if [ ${#rtype[@]} -ne 0 ]
then
echo "echo \"\$(date +%Y-%m-%d_%k.%M.%S)進行遠程備份.......................................\">>$installdir/logs/\$nowmouth.log">>$installdir/runback.sh
snum=${#rtype[@]}
while [ $scount -lt $snum ]
do
echo "lftp -u ${rname[$scount]},${rpass[$scount]} ${rtype[$scount]}://${rurl[$scount]}remote">>$installdir/runback.sh
echo "mkdir remotedbback">>$installdir/runback.sh
echo "cd remotedbback">>$installdir/runback.sh
echo "mput $installdir/zip/\$nowdate.zip">>$installdir/runback.sh
echo "exit">>$installdir/runback.sh
echo "remote">>$installdir/runback.sh
scount=$(($scount+1))
done
echo "echo \"\$(date +%Y-%m-%d_%k.%M.%S)完成遠程備份.......................................\">>$installdir/logs/\$nowmouth.log">>$installdir/runback.sh
fi
echo "exit 0">>$installdir/runback.sh
chmod 775 $installdir/runback.sh
chown $execuser $installdir/runback.sh
echo "生成備份執行文件完成............................"
echo "開始定制值守時間................................"
scount=0
snum=${#backtime[@]}
while [ $scount -lt $snum ]
do
echo "${backtime[$scount]} $installdir/runback.sh">>$installdir/planlist
scount=$(($scount+1))
done
su -l -c"crontab $installdir/planlist" oracle
echo "完成值守時間定制................................"
exit 0

接下來給大家介紹linux oracle自動備份腳本

1、備份腳本:

#!/bin/sh 
export ORACLE_BASE=/home/oracle 
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 
export ORACLE_SID=orcl 
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin 
export DATA_DIR=/home/bakup/data 
export LOGS_DIR=/home/bakup/logs 
export DELTIME=`date -d "7 days ago" +%Y%m%d` 
export BAKUPTIME=`date +%Y%m%d%H%M%S` 
mkdir -p $DATA_DIR 
mkdir -p $LOGS_DIR 
echo "Starting bakup..." 
echo "Bakup file path $DATA_DIR/$BAKUPTIME.dmp" 
exp shop/lyisABC0987@orcl file=$DATA_DIR/$BAKUPTIME.dmp log=$LOGS_DIR/$BAKUPTIME.log 
echo "Delete the file bakup before 7 days..." 
rm -rf $DATA_DIR/$DELTIME*.dmp 
rm -rf $LOGS_DIR/$DELTIME*.log 
echo "Delete the file bakup successfully. " 
echo "Bakup completed." 

2、添加到任務調度

crontab -u oracle -e
* 3 * * * /home/bakup/bakup.sh
即每天凌晨3點進行備份
如需每天備份多次,可設置不同時間段備份:
例如:* 3,13,18 * * * /home/bakup/bakup.sh,即每天3點、13點、18點進行備份。
說明:文件備份目錄,用戶oracle必須有更改權限,否則無法備份。

您可能感興趣的文章:
  • Oracle數據庫自動備份腳本分享(超實用)
  • Linux中Oracle服務啟動和停止腳本與開機自啟動
  • Oracle數據庫執行腳本常用命令小結
  • Linux下通過腳本自動備份Oracle數據庫并刪除指定天數前的備份
  • oracle自動巡檢腳本生成html報告的方法

標簽:和田 開封 周口 甘肅 固原 武漢 承德 青島

巨人網絡通訊聲明:本文標題《Oracle自動備份腳本》,本文關鍵詞  Oracle,自動,備份,腳本,Oracle,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Oracle自動備份腳本》相關的同類信息!
  • 本頁收集關于Oracle自動備份腳本的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 稷山县| 女性| 泸溪县| 马边| 客服| 芜湖县| 依安县| 南皮县| 灵山县| 虹口区| 定西市| 历史| 清河县| 崇明县| 清流县| 专栏| 合作市| 延川县| 南昌县| 呼和浩特市| 始兴县| 石河子市| 余姚市| 黎平县| 南康市| 新民市| 克拉玛依市| 宜兰市| 滁州市| 三都| 邓州市| 得荣县| 天津市| 如皋市| 广元市| 垫江县| 横峰县| 拉孜县| 新兴县| 吉林省| 宁津县|