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

UNIX 環境下 Oracle 自動備份全自動化方案:Export + 磁帶 + 異地三重保障

     編輯:Oracle 資料庫基礎

備份策略總覽

時間任務工具/腳本目的
23:00邏輯導出exp + ora_backup.sh每日增量/全量導出至磁碟
02:00磁帶歸檔tar + tar_backup.sh離線媒體保存,防磁碟損壞
04:00異地同步FTP + .netrc 自動登入跨機房容災,防單點故障

一、環境初始化腳本 ora_env.sh

#!/bin/ksh
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

二、Export 導出腳本 ora_backup.sh

#!/bin/ksh
. /Oracle/ora_env.sh

# 日期變數 MMDD
RQ=`date +%m%d`

# 清空舊備份目錄
rm -f /backup/*

# 執行導出(用戶模式)
exp test/test file=/backup/xx${RQ}.dmp log=/backup/xx${RQ}.log

三、磁帶備份腳本 tar_backup.sh

#!/bin/ksh
# r=append, v=verbose, f=device, n=no-rewind
tar rvf /dev/rmt/0n /backup/

/dev/rmt/0 為第一台磁帶機,n 尾碼表示不倒帶,利於多次追加。

四、異地 FTP 自動化 .netrc

machine host2
login oracle
password oracle
macdef init
bin
lcd /backup
cd /pub
mput *
bye
  • 置於 oracle 用戶 $HOME 下,權限 chmod 600 .netrc
  • FTP 啟動時自動讀取並執行 init 巨集
  • 備份主機需建立 /pub 目錄,建議同一 LAN 內千兆網路

五、Crontab 排程部署

# 以 oracle 用戶執行 crontab -e
0 23 * * * /Oracle/ora_backup.sh
0 2  * * * /Oracle/tar_backup.sh
0 4  * * * ftp -i host2

六、運維注意事項

  1. 磁帶輪換:依備份量與磁帶容量制定換帶週期(如 LTO-7 6TB 可支撐數週)
  2. 磁碟清理:定期清理 /backup 歷史檔案,保留近 7 天
  3. 驗證機制:每周隨機抽檢 imp 還原測試,記錄 RTO/RPO
  4. 擴展建議:引入 RMAN 增量備份、Data Guard 實時同步、雲端冷備份桶

結語

三層備份體系(磁碟即時、磁帶歸檔、異地容災)配合 Crontab 全自動化,將 DBA 從繁瑣手工操作釋放。核心在於腳本冪等性、權限最小化、驗證常態化三大工程化原則。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved