標籤: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資料庫並上傳到備份伺服器 指令碼實現