設計每日三階段自動備份流程:23:00導出 → 02:00磁帶備份 → 04:00異地同步,透過Cron排程實現零人工干預運維。
#!/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
#!/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,便於保留與識別#!/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、校驗和比對)