資料庫備份是 DBA 生命線,手動備份易忘、易錯。本文提供生產環境級 Oracle 自動備份方案:exp 使用者模式導出 → 壓縮 → 磁帶歸檔,配合 Shell 腳本與 Cron 定時任務,實現零人工干預的每日冷備份流程。
exp userid=test/test file=... owner=test),備份特定 Schema,粒度細、恢復快。/dev/rmt/0n),離線、長期保存、防勒索軟體加密。#!/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
#!/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 含日期區分。#!/bin/ksh
tar rvf /dev/rmt/0n /backup/?
r:追加寫入不覆蓋舊備份。v:顯示檔案資訊。f:指定磁帶裝置。n:不倒帶,留待下次追加。chmod 755 ora-env ora-backup tar-backupcrontab -e(oracle 用戶):0 2 * * * /path/to/ora-backup && /path/to/tar-backup/backup/xxMMDD.log 導出日誌、tar -tvf /dev/rmt/0n 列出磁帶內容。alter system switch logfile 確保一致性。compress=Y(10g+)減小導出檔體積。imp/Data Pump),確保備份可用。Shell + Cron + 磁帶,經典而可靠的 Oracle 自動備份鐵三角,讓 DBA 晚上能安心睡覺,資料安全有保障。