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

UNIX環境Oracle資料庫自動化備份實戰:三層備份架構腳本實作

     編輯:Oracle 資料庫基礎

從導出到異地備份的全自動化Shell腳本方案

設計每日三階段自動備份流程:23:00導出 → 02:00磁帶備份 → 04:00異地同步,透過Cron排程實現零人工干預運維。

一、環境初始化腳本(ora_env)

#!/bin/ksh
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1; 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)

#!/bin/ksh
. /oracle/ora_env                    # 載入環境變數
RQ=`date +%m%d`                      # 日期變數 MMDD
rm -rf /backup/*                     # 清理舊備份
exp test/test file=/backup/xx$RQ.dmp log=/backup/xx$RQ.log
  • 採用用戶模式導出(exp userid=test/test)
  • 檔案命名含日期xxMMDD.dmp,便於保留與識別
  • 同步產出Log檔供稽核

三、磁帶備份腳本(tar_backup)

#!/bin/ksh
tar rvf /dev/rmt/0n /backup/
  • r:附加模式不覆蓋既有磁帶內容
  • v:顯示處理檔案資訊
  • f:指定磁帶裝置(/dev/rmt/0為第一台)
  • n:備份完成不倒帶,支援多次追加

四、權限與排程部署

chmod 755 ora_env ora_backup tar_backup

# Oracle用戶下編輯crontab
crontab -e
# 內容:
0 23 * * * /oracle/ora_backup      # 每日23:00 導出
0 2  * * * /oracle/tar_backup      # 每日02:00 磁帶
0 4  * * * ftp -i host2            # 每日04:00 異地同步(見下文)

五、運維建議

  • 定期輪換磁帶(視備份量與容量)
  • 定期清理/backup目錄避免磁碟滿
  • 建議加入備份驗證步驟(imp show=y、校驗和比對)
  • 升級建議:遷移至RMAN增量備份+Data Guard/GoldenGate異地容災
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved