麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > Oracle > 正文

Oracle自動備份腳本

2024-08-29 13:58:53
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Oracle自動備份腳本的相關資料,需要的朋友可以參考下
 

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

#!/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 $USERif [ $USER != root ]thenecho "檢測到安裝用戶不是root用戶,請用root用戶登錄再執行安裝文件"exit 1fiecho "開始安裝oracle數據庫備份工具.........................."echo "請輸入備份程序的安裝目錄:"read installdirmkdir -p $installdirresult=$?while [ $result -ne 0 ]doecho "無法創建目錄,請重新輸入或退出安裝。輸入y重新輸入,輸入n退出安裝。"read redoif [ $redo != y ]thenecho "用戶退出安裝。"exit 0fiecho "請輸入備份程序的安裝目錄:"read installdirmkdir $installdirresult=$?doneecho "安裝目錄創建完成。"echo "請輸入執行備份用戶(一般為oracle用戶):"read execuserid $execuserresult=$?while [ $result -ne 0 ]doecho "不存在該用戶,是否更換其它用戶或者退出安裝新建用戶,輸入y更換用戶,輸入n退出安裝"read redoif [ $redo != y ]thenecho "用戶退出安裝"exit 0fiecho "請輸入執行備份的用戶(一般為tnmsdb2用戶)"read execuserid $execuserresult=$?doneecho "你希望建立備份的數據庫數量(一般為1)"read backnumif [ $backnum -eq 0 ]thenecho "無備份數據庫,退出安裝"exit 0fiscount=0while [ $scount -lt $backnum ]doecho "請輸入第"$(($scount+1))"個備份登錄登錄oracle數據庫的用戶名和密碼,以及本地服務名"echo "用戶名"read username[$scount]echo "密碼"read password[$scount]echo "服務名"read sname[$scount]su -l -c"sqlplus /nolog" $execuser<<insertwhenever sqlerror exit sql.sqlcode;connect ${username[$scount]}/${password[$scount]}@${sname[$scount]}exitinsertresult=$?if [ $result -ne 0 ]thenecho "輸入數據庫信息無法被連接,是否重新輸入?輸入y重新輸入,輸入n退出安裝。"read redoif [ $redo != y ]thenecho "用戶退出安裝"exit 0fielsescount=$(($scount+1))fidoneecho "輸入值守時間,值守時間的格式為 mm hh dd MM E 。"echo "m代表分鐘,h代表小時,d代表日期,M代表月份,E代表星期"echo "不輸入則為任意時間"scount=0iscontinue=ywhile [ $iscontinue == y ]doecho "輸入第$(($scount+1))個值守時間"echo "分鐘"read minecho "小時"read hourecho "日期"read dayif [ ! $day ]thenday="*"fiecho "月份"read mouthif [ ! $mouth ]thenmouth="*"fiweek="*"backtime[$scount]="$min $hour $day $mouth $week"echo -e "${backtime[$scount]}"echo "是否輸入更多值守時間?輸入y繼續,輸入n進入下一步。"read iscontinuescount=$(($scount+1))doneecho "是否要進行遠程備份?輸入y為進行遠程備份,輸入n進入下一步"scount=0read iscontinuewhile [ $iscontinue == y ]doecho "請選擇遠程備份類型,輸入s為sftp備份類型,否則為ftp備份類型"read issif [ $iss == s ]thenrtype[$scount]="sftp"elsertype[$scount]="ftp"fiecho "請輸入遠程備份地址,可以為域名,計算機名或者ip地址"read rurl[$scount]echo "請輸入遠程備份登錄名"read rname[$scount]echo "請輸入遠程備份登錄密碼"read rpass[$scount]echo "是否輸入更多遠程備份地址?輸入y重新輸入,n進入下一步"read iscontinuescount=$(($scount+1))done# installdir# execuser# username password sname# backtime# rtype rurl rname rpassecho "您所作的備份配置如下:"sresult=$(echo -n "$installdir" | grep '^/')if [ ! $sresult ]theninstalldir="$PWD/$installdir"elseinstalldir=$installdirfiecho "本地備份目錄為$installdir"echo "執行備份系統用戶為$execuser"echo "系統備份數據庫:"allcount=${#username[@]}scount=0while [ $scount -lt $allcount ]doecho "${username[$scount]}/${password[$scount]}@${sname[$scount]}"scount=$(($scount+1))doneecho "執行備份的值守時間表,*代表任意"scount=0backnum=${#backtime[@]}while [ $scount -lt $backnum ]doecho "${backtime[$scount]}"scount=$(($scount+1))donernum=${#rtype[@]}if [ $rnum -ne 0 ]thenecho "遠程備份的服務地址為:"scount=0while [ $scount -lt $rnum ]doecho "連接方式:${rtype[$scount]},連接地址:${rurl[$scount]},用戶名:${rname[$scount]},密碼:${rpass[$scount]}"scount=$(($scount+1))donefiecho "是否確認安裝?輸入y繼續,輸入n退出安裝"read isgoonif [ $isgoon != y ]thenexit 0;fiecho "正在生產目錄結構................................";mkdir -p $installdir/logsmkdir -p $installdir/tempmkdir -p $installdir/zipchown -Rvf $execuser $installdirecho "目錄結構生成完成................................"echo "生成備份執行文件................................"echo "#!/bin/bash">$installdir/runback.shecho "source ~/.bash_profile">>$installdir/runback.shecho "nowdate=/$(date +%Y-%m-%d_%k.%M.%S)">>$installdir/runback.shecho "nowmouth=/$(date +%Y-%m)">>$installdir/runback.shecho "echo /"/$nowdate開始備份......................................./">>$installdir/logs//$nowmouth.log">>$installdir/runback.shscount=0snum=${#username[@]}while [ $scount -lt $snum ]doecho "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.shscount=$(($scount+1))doneecho "echo /"/$(date +%Y-%m-%d_%k.%M.%S)完成備份......................................./">>$installdir/logs//$nowmouth.log">>$installdir/runback.shecho "echo /"/$(date +%Y-%m-%d_%k.%M.%S)開始打包......................................./">>$installdir/logs//$nowmouth.log">>$installdir/runback.shecho "gzip $installdir/zip//$nowdate.zip $installdir/temp/>>$installdir/logs//$nowmouth.log 2>&1">>$installdir/runback.shecho "rm -Rvf $installdir/temp/*>>$installdir/logs//$nowmouth.log 2>&1">>$installdir/runback.shecho "echo /"/$(date +%Y-%m-%d_%k.%M.%S)打包完成......................................./">>$installdir/logs//$nowmouth.log">>$installdir/runback.shscount=0if [ ${#rtype[@]} -ne 0 ]thenecho "echo /"/$(date +%Y-%m-%d_%k.%M.%S)進行遠程備份......................................./">>$installdir/logs//$nowmouth.log">>$installdir/runback.shsnum=${#rtype[@]}while [ $scount -lt $snum ]doecho "lftp -u ${rname[$scount]},${rpass[$scount]} ${rtype[$scount]}://${rurl[$scount]}<<remote">>$installdir/runback.shecho "mkdir remotedbback">>$installdir/runback.shecho "cd remotedbback">>$installdir/runback.shecho "mput $installdir/zip//$nowdate.zip">>$installdir/runback.shecho "exit">>$installdir/runback.shecho "remote">>$installdir/runback.shscount=$(($scount+1))doneecho "echo /"/$(date +%Y-%m-%d_%k.%M.%S)完成遠程備份......................................./">>$installdir/logs//$nowmouth.log">>$installdir/runback.shfiecho "exit 0">>$installdir/runback.shchmod 775 $installdir/runback.shchown $execuser $installdir/runback.shecho "生成備份執行文件完成............................"echo "開始定制值守時間................................"scount=0snum=${#backtime[@]}while [ $scount -lt $snum ]doecho "${backtime[$scount]} $installdir/runback.sh">>$installdir/planlistscount=$(($scount+1))donesu -l -c"crontab $installdir/planlist" oracleecho "完成值守時間定制................................"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必須有更改權限,否則無法備份。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产成人强伦免费视频网站 | 欧美一级毛片一级毛片 | 久久国产精品久久久久久久久久 | 国产精品久久久久久久久久久天堂 | 99re热精品视频 | 男女隐私免费视频 | 国产一区毛片 | av电影免费观看 | 国产一区二区三区高清 | 狠狠婷婷综合久久久久久妖精 | 欧美激情精品久久久久久黑人 | 国产高清一区 | 成人毛片免费在线 | 九九热精品在线视频 | 97中文字幕第一一一页 | 国产精品免费一区二区三区都可以 | 国产女同疯狂激烈互摸 | 天堂在线中文资源 | 黄色av网站免费看 | 精品国产成人 | 国产黄色网页 | 成人一区二区三区四区 | 99久久婷婷国产综合精品青牛牛 | 亚洲片在线观看 | 色av成人天堂桃色av | 日本爽快片100色毛片视频 | 成年人免费黄色片 | 一区二区三区视频在线播放 | 欧美成人一区免费视频 | 久久久www成人免费毛片 | 欧美精品一区二区久久久 | 精品国产九九九 | 亚洲爱爱网站 | 色婷婷一区二区三区 | 538任你躁在线精品视频网站 | 久久久久久久久久性 | 国产乱淫av一区二区三区 | 91九色网址 | 国产成人精品无人区一区 | 免费黄网站在线播放 | 香蕉久草视频 |