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

UNIX 環境下 Oracle 資料庫自動備份完整實作指南

     編輯:Oracle 資料庫基礎

前言:為何需要自動化備份機制

身為系統管理員,每日手動執行資料庫備份不僅繁瑣,更隱藏著人為疏失的風險。一旦在系統故障發生前恰好遺漏備份,將導致資料無法恢復,造成嚴重損失。本文將分享在 UNIX 環境下實現 Oracle 資料庫全自動備份的完整方案,涵蓋匯出備份、磁帶歸檔與異地容災三大層面,助您構建零人工介入的備份體系。

備份策略規劃與時間排程

本方案採用分時段、多層次的備份架構:

  • 23:00 執行 Export 邏輯備份,產出 .dmp 與 .log 檔案
  • 02:00 將備份檔案寫入磁帶裝置,實現離線歸檔
  • 04:00 透過 FTP 自動傳輸至異地 UNIX 主機,完成異地容災

第一階段:資料庫 Export 匯出備份

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

建立專用環境設定檔,集中管理 Oracle 運作參數:

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_NLS32=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS32
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)

採用用戶模式匯出,檔案命名包含日期標識(如 xx1210.dmp),便於識別與管理:

./oracle/ora-env          # 載入環境變數
rq=`date +\"%m%d\"`        # 取得 MMDD 格式日期
rm /backup/*              # 清空備份目錄
exp test/test file=/backup/xx$rq.dmp log=/backup/xx$rq.log

關鍵點說明: 使用 test/test 作為示範帳號密碼,實際部署請替換為具備 DBA 權限的專用備份帳號;建議搭配 COMPRESS=Y 參數壓縮區段,DIRECT=Y 參數提升效能。

第二階段:磁帶歸檔備份

磁帶備份腳本 (tar-backup)

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

參數解析:

  • r:附加模式寫入,不覆蓋既有磁帶資料
  • v:顯示詳細傳輸過程
  • f:指定磁帶裝置路徑(/dev/rmt/0 為第一台磁帶機)
  • n:操作完成後不倒帶,利於後續續寫

第三階段:異地容災備份 (FTP 自動化)

.netrc 自動登入設定檔

放置於執行 FTP 的用戶家目錄,權限必須設為 600(僅擁有者可讀寫):

machine host2              # 目標主機名稱
login oracle               # 遠端登入帳號
password oracle            # 遠端登入密碼
macdef init                # 定義自動執行巨集
binary                     # 二進制傳輸模式
lcd /backup                # 切換本地備份目錄
cd /pub                    # 切換遠端接收目錄
mput *                     # 上傳所有備份檔案
bye                        # 結束 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 異地同步

運維建議與最佳實踐

  1. 磁帶輪換策略:依備份檔案大小與磁帶容量規劃輪換週期(建議每週更換,並保留至少 3 代磁帶)
  2. 備份目錄清理:定期清理 /backup 目錄舊檔,防止磁碟空間耗盡
  3. 日誌監控:建立腳本自動檢查 .log 檔案中的錯誤訊息,並發送告警通知
  4. 恢復演練:每季進行至少一次完整恢復演練,驗證備份可用性

結語

透過上述三層備份架構(本地邏輯備份 → 磁帶離線歸檔 → 異地遠端同步),系統管理員可從繁瑣的手動操作中解脫,專注於更高價值的系統優化與架構規劃工作。此方案不僅實現了備份自動化,更通過「3-2-1 備份原則」(3 份副本、2 種媒介、1 異地)顯著提升資料安全等級。

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