天天看點

Linux系統中的Oracle資料備份(一)——orcl系統資料備份

簡介:本文主要介紹Linux系統中的Oracle資料庫進行expdb備份過程,然後測試成功後。再通過Linux系統的計劃任務Crontab執行資料庫腳本按計劃進行備份,設計的内容包括資料備份腳本的編寫,計劃任務的制作等内容。詳細内容包括:

SH腳本程式以下面的行開始:#! /bin/sh

符号#!用來告訴系統它後面的參數是用來執行該檔案的程式。在這個例子中我們使用/bin/sh來執行程式。當編寫腳本完成時,如果要執行該腳本,還必須使其可執行。

要使編寫腳本可執行:# chmod +x filename 這樣才能用./filename 來運作。

Crontab執行備份計劃:# crontab –e

用crontab -e進入目前使用者的工作表編輯,是常見的vim界面。每行是一條指令。crontab的指令構成為 時間+動作,其時間有分、時、日、月、周五種,操作符有:

* 取值範圍内的所有數字

/ 每過多少個數字

- 從X到Z

,散列數字

一、登入linux系統

Linux系統中的Oracle資料備份(一)——orcl系統資料備份

二、檢視資料庫版本

Linux系統中的Oracle資料備份(一)——orcl系統資料備份

三、編寫資料庫備份腳本

#!/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 任務完成!

Linux系統中的Oracle資料備份(一)——orcl系統資料備份

四、制訂備份計劃

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

Linux系統中的Oracle資料備份(一)——orcl系統資料備份

編寫計劃任務腳本如下:

30 22 * * * /usr/local/backup.sh

Linux系統中的Oracle資料備份(一)——orcl系統資料備份

備注:上述計劃任務意為每天晚上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進行備份測試。如下圖

Linux系統中的Oracle資料備份(一)——orcl系統資料備份