linux自動備份oracle資料庫並上傳到備份伺服器 指令碼實現

來源:互聯網
上載者:User

標籤:product   oracle版本   date   chm   通過   user   cron   簡單   個人   

實際項目中,備份資料是不可缺少的一步,完成資料的自動備份減少個人的工作量,是我們的目標。之前很少寫過指令碼,不過這些簡單的操作還是可以做到的!話不多說,開始具體介紹:
oracle版本:10.2.0
作業系統:linuxredhat6.3
具體操作:
(1)在伺服器上建立備份目錄,並賦予許可權
mkdir -p /backup/oracledata #建立OracleDatabase Backup目錄

chown -R oracle:oinstall /backup/oracledata -R #設定目錄許可權為oinstall使用者組的oracle使用者(使用者oracle與使用者組oinstall是在安裝Oracle資料庫時設定的)

(2)完成備份指令碼

vi /backup/oracledata/ordatabak.sh #建立檔案
加入下面資訊:
#!/bin/sh ORACLE資訊可以通過 .bash_profile 查看
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_TERM=xterm
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin:/usr/bin:/sbin:/usr/sbin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib: /usr/local/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
#以上代碼為Oracle資料庫運行帳號oracle的系統內容變數設定,必須添加,否則crontab任務計劃不能執行。
dateTime=`date +%Y_%m_%d` #當前系統時間
days=7 #刪除7天前的備份資料s
orsid=‘127.0.0.1:1521/orcl‘ #oralce串連資訊
orowner=oracle # 備份此使用者下面的資料
bakuser=oracle #用此使用者來執行備份,必須要有備份操作的許可權
bakpass=oracle #執行備忘的使用者密碼
bakdir=/DATA/bakorcldata/moodle #備份檔案路徑,需要提前建立好
bakdata=$orowner"_"$dateTime.dmp #備份資料庫名稱
baklog=$orowner"_"$dateTime.log #備份執行時候產生的記錄檔名稱
ordatabak=$orowner"_"$dateTime.tar.gz #最後儲存的OracleDatabase Backup檔案
remotePath=/opt/oracle/bakorcl/ #上傳到遠程伺服器的路徑

cd $bakdir #進入備份目錄
mkdir -p $orowner #按需要備份的Oracle使用者建立目錄
cd $orowner #進入目錄
exp $bakuser/[email protected]$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog #執行備份
tar -zcvf $ordatabak $bakdata $baklog #壓縮備份檔案和記錄檔

find $bakdir/$orowner -type f -name "*.log" -exec rm {} \; #刪除備份檔案
find $bakdir/$orowner -type f -name "*.dmp" -exec rm {} \; #刪除記錄檔
find $bakdir/$orowner -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \; #刪除7天前的備份(注意:{} \中間有空格)
scp $bakdir/$orowner/$ordatabak 192.168.0.10:$remotePath #將備份檔案上傳到遠程伺服器 如果不輸人密碼上傳請參考http://blog.sina.com.cn/s/blog_957ef38b0102vuxy.html
:wq! 儲存 退出

(3)添加指令碼執行許可權
chmod +x /backup/oracledata/ordatabak.sh #添加指令碼執行許可權
(4)編輯系統任務執行計畫
crontab -e
輸入一下資訊“:

00 01 * * * /DATA/bakorcldata/oradatabak.sh#每天淩晨1點,以oracle使用者執行ordatabak.sh備份檔案

:wq! #儲存退出

重啟crontab

service crond restart

從此每天的淩晨1點 系統會自動完成資料庫的備份,壓縮,並上傳到遠程伺服器的指定路徑下!

(轉)linux自動備份oracle資料庫並上傳到備份伺服器 指令碼實現

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.