首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

UNIX 環境下 Oracle 資料庫自動化備份全攻略:Export、磁帶、異地三層防護

     編輯:Oracle 資料庫基礎

備份策略規劃

建立三層次自動備份機制:

  1. 每日 23:00 執行 EXPORT 邏輯備份
  2. 每日 02:00 將備份檔寫入磁帶(離線存儲)
  3. 每日 04:00 透過 FTP 傳送至異地備援主機(異地容災)

第一層:Export 邏輯備份

環境初始化腳本 (ora-env)

ORACLE_HOME=$ORACLE_HOME; export ORACLE_HOME
ORACLE_SID=ora73; export ORACLE_SID
ORACLE_TERM=sun; export ORACLE_TERM
LD_LIBRARY_PATH=$ORACLE_HOME/lib; export LD_LIBRARY_PATH
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
PATH=.:/usr/ccs/bin:/usr/ucb:$ORACLE_HOME/bin:$PATH; export PATH
DISPLAY=host1:0; export DISPLAY
NLS_LANG=american_america.zhs16cgb231280; export NLS_LANG

備份執行腳本 (ora-backup)

./Oracle/ora-env
# 初始化 Oracle 環境
rq=`date +"%m%d"`
# 取得當天日期 (MMDD)
rm /backup/*
# 清空備份目錄
exp test/test file=/backup/xx$rq.dmp log=/backup/xx$rq.log
# 導出 test 用戶,檔名含日期如 xx1210.dmp

第二層:磁帶備份 (tar-backup)

tar rvf /dev/rmt/0n /backup/*

參數說明: r 追加不覆寫、v 顯示進度、f 指定裝置、n 不倒帶。/dev/rmt/0 為第一台磁帶機。

第三層:異地 FTP 自動傳輸

.netrc 自動登入設定檔

machine host2
login oracle
password oracle
macdef init
bin
lcd /backup
cd /pub
mput *
bye

設定權限 chmod 600 .netrc,確保僅擁有者可讀。FTP 執行時會自動讀取此檔完成無人值守傳輸。

Crontab 排程設定

以 oracle 用戶執行 crontab -e 編輯:

0 23 * * * /Oracle/ora-backup
# 每日 23:00 備份資料庫
0 2 * * * /Oracle/tar-backup
# 每日 02:00 磁帶備份
0 4 * * * ftp -i host2
# 每日 04:00 異地備份

維護建議

  • 定期更換磁帶(視備份量與磁帶容量而定)
  • 定期清理 /backup 目錄舊檔
  • 確保兩台主機位於同一高速區域網路,加快傳輸速度
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved