簡介:本文主要介紹Linux系統中的Oracle資料庫進行expdb備份過程,然後測試成功後。再通過Linux系統的計劃任務Crontab執行資料庫腳本按計劃進行備份,設計的内容包括資料備份腳本的編寫,計劃任務的制作等内容。詳細内容包括:
SH腳本程式以下面的行開始:#! /bin/sh
符号#!用來告訴系統它後面的參數是用來執行該檔案的程式。在這個例子中我們使用/bin/sh來執行程式。當編寫腳本完成時,如果要執行該腳本,還必須使其可執行。
要使編寫腳本可執行:# chmod +x filename 這樣才能用./filename 來運作。
Crontab執行備份計劃:# crontab –e
用crontab -e進入目前使用者的工作表編輯,是常見的vim界面。每行是一條指令。crontab的指令構成為 時間+動作,其時間有分、時、日、月、周五種,操作符有:
* 取值範圍内的所有數字
/ 每過多少個數字
- 從X到Z
,散列數字
一、登入linux系統
二、檢視資料庫版本
三、編寫資料庫備份腳本
#!/bin/bash
#source ~/.bash_profile
days=$(date '+%Y%m%d')
#echo $days
echo off
expdp username/password directory=dumpdir dumpfile=orcl_$days.dmp logfile=orcl_$days.log schemas=*** compression=ALL
cd /data/dumpdir
# tar指令打包并删除原檔案
tar -zcvf ***_$days.tar.gz ***_$days.dmp ***_$days.log --remove-files
# 保留一個星期的備份檔案
find /usr/local/backup -name "*.tar.gz" -mtime +7 -exec rm {} \;
echo 任務完成!
四、制訂備份計劃
1、計劃任務管理CRON
Linux系統經常使用的是crontab指令是cron table的簡寫,它是cron的配置檔案,也可以叫它作業清單,可以在以下檔案夾内找到相關配置檔案,一般以root使用者登陸并執行# crontab –e所生成的計劃任務存放在/var/spool/cron/ 目錄下。
/var/spool/cron/ 目錄下存放的是每個使用者包括root的crontab任務,每個任務以建立者的名字命名;
/etc/crontab 這個檔案負責排程各種管理和維護任務;
/etc/cron.d/ 這個目錄用來存放任何要執行的crontab檔案或腳本;
還可以把腳本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目錄中,讓它每小時/天/星期、月執行一次。
2、執行計劃任務指令# crontab –e編寫備份任務
執行指令# crontab -u username -e
編寫計劃任務腳本如下:
30 22 * * * /usr/local/backup.sh
備注:上述計劃任務意為每天晚上10:30執行/usr/local/backup/backup.sh備份腳本。
格式說明:第1列為分鐘,0~59;第2列為小時,0~23;第3列為日期,1~31;第4列為月份,1~12;第5列為星期,0~7(0和7表示星期天);第6列為要運作的指令(如果有多個指令用 && 隔開)。
3、其他crontab指令
crontab指令格式如下:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
備注:指令參數
-u user:用來設定某個使用者的crontab服務,例如,“-u xyz”表示設定xyz使用者的crontab服務,此參數一般有root使用者來運作。
file:file是指令檔案的名字,表示将file做為crontab的任務清單檔案并載入crontab。如果在指令行中沒有指定這個檔案,crontab指令将接受标準輸入上鍵入的指令,并将它們載入crontab。
-e:編輯某個使用者的crontab檔案内容。如果不指定使用者,則表示編輯目前使用者的crontab檔案。
-l:顯示某個使用者的crontab檔案内容,如果不指定使用者,則表示顯示目前使用者的crontab檔案内容。
-r:從/var/spool/cron目錄中删除某個使用者的crontab檔案,如果不指定使用者,則預設删除目前使用者的crontab檔案。
-i:在删除使用者的crontab檔案時給确認提示。
4、執行備份腳本進行測試
執行指令# sh backup.sh進行備份測試。如下圖