Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Oracle 資料庫自動備份方案:Export 導出 + 磁帶歸檔 Shell 腳本實戰

編輯:系統常見問題解答

資料庫備份是 DBA 生命線,手動備份易忘、易錯。本文提供生產環境級 Oracle 自動備份方案:exp 使用者模式導出 → 壓縮 → 磁帶歸檔,配合 Shell 腳本與 Cron 定時任務,實現零人工干預的每日冷備份流程。

架構概覽

  • 備份模式:使用者模式(exp userid=test/test file=... owner=test),備份特定 Schema,粒度細、恢復快。
  • 儲存介質:磁帶機(/dev/rmt/0n),離線、長期保存、防勒索軟體加密。
  • 自動化:三支 Shell 腳本(環境變數初始化、導出、磁帶寫入)+ Cron 定時觸發。

腳本實作(放置於 $ORACLE_HOME 或專用備份目錄)

1. ora-env:環境變數初始化

#!/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_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

2. ora-backup:Export 導出(檔名含日期)

#!/bin/ksh
. ./ora-env
rq=`date +%m%d`
rm -rf /backup/*
exp test/test file=/backup/xx$rq.dmp log=/backup/xx$rq.log
  • test/test:Schema/密碼(生產環境請用外部密碼檔/錢包)。
  • /backup:備份暫存目錄,每次導出前清空。
  • 導出檔 xxMMDD.dmp、日誌 xxMMDD.log 含日期區分。

3. tar-backup:磁帶歸檔(不倒帶追加)

#!/bin/ksh
tar rvf /dev/rmt/0n /backup/?
  • r:追加寫入不覆蓋舊備份。
  • v:顯示檔案資訊。
  • f:指定磁帶裝置。
  • n:不倒帶,留待下次追加。

部署與排程

  1. 賦予執行權限:
    chmod 755 ora-env ora-backup tar-backup
  2. 編輯 crontab -e(oracle 用戶):
    0 2 * * * /path/to/ora-backup && /path/to/tar-backup
    每天凌晨 2 點執行導出與歸檔。
  3. 驗證:檢查磁帶機指示燈、/backup/xxMMDD.log 導出日誌、tar -tvf /dev/rmt/0n 列出磁帶內容。

進階強化

  • 導出前執行 alter system switch logfile 確保一致性。
  • 加入 compress=Y(10g+)減小導出檔體積。
  • 備份腳本輸出重導向至日誌檔,配合 Logrotate 管理。
  • 異地備份:磁帶離庫 + 導出檔同步至遠端存儲(rsync/雲端)。
  • 定期演練恢復測試(imp/Data Pump),確保備份可用。

Shell + Cron + 磁帶,經典而可靠的 Oracle 自動備份鐵三角,讓 DBA 晚上能安心睡覺,資料安全有保障。

Copyright © Windows教程網 All Rights Reserved