每天自動備份Oracle資料庫

夢共裡醉發表於2020-01-06
本文以  7.6系統與Oracle 11g為例,教你如何在 下設定每天自動備份Oracle資料庫。
一.先找到資料庫的環境變數

如果是在root賬戶下,須先登入到資料庫所在賬戶

su oracle
cat ~/.bash_profile

教你如何在Linux下設定每天自動備份Oracle資料庫教你如何在Linux下設定每天自動備份Oracle資料庫

export PATH
export ORACLE_BASE=/home/nnc_db/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl

環境變數就已經找到了!

二.編輯備份的 檔案
vi bak.sh

先把環境變數複製貼上到bak.s檔案,

然後定義一個變數date(它的作用是為每天備份的檔案命名便於識別),使用expdp 匯出資料庫,程式碼如下:

date=$(date +%Y%m%d)
expdp 資料庫賬號/資料庫密碼@資料庫例項名 dumpfile=${date}_db_auto_backup.dmp schemas=資料庫賬號名 compression=all

退出儲存。

三.使用Linux的crontab 設定定時任務
crontab -e

crontab -e的作用是使用文字編輯器設定定時任務(crontab具體用法在此不贅述);

輸入後在文字編輯器輸入

0 0 * * * /home/nnc_db/bak.sh

以上程式碼意為每天的0點0分執行/home/nnc_db下的bak.sh件,也就是第二步所建立的檔案,需根據自身的備份時間以及檔案目錄調整;

然後重啟crond服務即可

service crond restart
四.測試任務是否成功執行

根據我在網上收集的資料來看,有朋友說crontab -e設定成功後三分鐘不會生效!也就是說假如你在上午10:00設定好任務,想要測試能否成功,把下次的定時任務設到10:02分,有可能會出現問題!但是這裡我用

* * * * * /home/nnc_db/bak.sh

設定為每一分鐘執行一次,發現沒有問題。 還有一個新手大坑就是你直接執行 檔案會在命令列輸出詳細過程,而設定定時任務執行是沒有反應的!所以想要看自己的指令碼是否自動執行了需要到/var/spool/mail/下看日誌檔案,如圖

教你如何在Linux下設定每天自動備份Oracle資料庫教你如何在Linux下設定每天自動備份Oracle資料庫


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2672036/,如需轉載,請註明出處,否則將追究法律責任。

相關文章