Linux下自動備份Oracle資料庫並刪除指定天數前的備份

來源:互聯網
上載者:User

標籤:教程   -name   can   file   安裝oracle   作業系統   lan   bin   帳號   

說明:

Oracle資料庫伺服器

作業系統:CentOS

IP:192.168.0.198

連接埠:1521

SID:orcl

Oracle資料庫版本:Oracle11gR2

具體操作:

1、root使用者登入伺服器

mkdir -p /backup/oracledata  #建立OracleDatabase Backup目錄

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

2、建立OracleDatabase Backup指令碼

vi /backup/oracledata/ordatabak.sh  #建立檔案,輸入以下代碼

#!/bin/sh

export ORACLE_BASE=/data/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_SID=orcl

export ORACLE_TERM=xterm

export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export LANG=C

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

#以上代碼為Oracle資料庫運行帳號oracle的系統內容變數設定,必須添加,否則crontab任務計劃不能執行。

# oracle使用者的系統內容變數路徑:/home/oracle/.bash_profile

date=date +%Y_%m_%d   #擷取系統當前日期時間

days=7  #設定刪除7天之前的備份檔案

orsid=192.168.0.198:1521/orcl  #Oracle資料庫伺服器IP、連接埠、SID

orowner=OSYUNWEI  #備份此使用者下面的資料

bakuser=OSYUNWEI  #用此使用者來執行備份,必須要有備份操作的許可權

bakpass=OSYUNWEI  #執行備忘的使用者密碼

bakdir=/backup/oracledata  #備份檔案路徑,需要提前建立好

bakdata=$orowner"_"$date.dmp #備份資料庫名稱

baklog=$orowner"_"$date.log #備份執行時候產生的記錄檔名稱

ordatabak=$orowner"_"$date.tar.gz #最後儲存的OracleDatabase Backup檔案

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天前的備份(注意:{} \中間有空格)

:wq #儲存退出

chmod +x /backup/oracledata/ordatabak.sh   #添加指令碼執行許可權

3、vi /etc/crontab  #編輯系統任務計劃,添加以下代碼到最後一行

30 2 * * * oracle  /backup/oracledata/ordatabak.sh  #每天淩晨2點30分,以oracle使用者執行ordatabak.sh備份檔案

:wq! #儲存退出

service crond restart #重啟crond

每天淩晨2點30分,會自動備份資料庫到/backup/oracledata/OSYUNWEI目錄中,儲存為.tar.gz壓縮檔,並且刪除7天前的備份,即只保留最近7天的資料。

備忘:以上所有的代碼都是在英文半形狀態下輸入。

至此,Linux下自動備份Oracle資料庫並刪除指定天數前的備份教程完成。

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.