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

Oracle 異地自動備份落地方案:Export + FTP + Crontab 零代碼實現

     編輯:Oracle 資料庫基礎

架構圖

主庫 ──(Export)──> 本地備份目錄 ──(FTP .netrc)──> 異地備份主機
     ▲                                      │
     └──────────(Crontab 排程)──────────────┘

核心三件套

1. Export 邏輯備份

# testbackup.sh
ORACLE_HOME=/export/home/oracle/815; export ORACLE_HOME
ORACLE_SID=ora815; export ORACLE_SID
rm -f /export/home/oracle/backup/*
rq=`date +%m%d`
$ORACLE_HOME/bin/exp mistest/test \
  file=/export/home/oracle/backup/exp${rq}.dmp \
  log=/export/home/oracle/backup/exp${rq}.log
  • 模式:完整資料庫模式(`FULL=Y` 隱含)。
  • 檔名含日期,自動輪轉覆蓋。

2. FTP 自動傳輸

建立 `~/.netrc`(權限 600):

machine 192.168.1.100
login oraclebk
password testbk2
macdef init
binary
lcd /export/home/oracle/backup
cd /database/oradata/backup
mput *
bye
  • `macdef init` 定義登入後自動執行的巨集指令。
  • `mput *` 上傳備份目錄所有檔案。

3. Crontab 排程

# crontab -e (oracle 用戶)
10 23 * * * /export/home/oracle/testbackup.sh
30 23 * * * ftp -i 192.168.1.100
  • 23:10 執行 Export,23:30 啟動 FTP 傳輸。
  • `ftp -i` 關閉互動提示,配合 `.netrc` 全自動。

安全與健壯化

  • .netrc `chmod 600`,僅擁有者可讀寫。
  • 備份腳本 `chmod 700`。
  • 異地主機防火牆僅開放主庫 IP FTP 埠(21/被動模式港口範圍)。
  • 加入檢查邏輯:Export 返回碼非 0 → 郵件告警、不執行 FTP。
  • 定期驗證:每月隨機抽取 `.dmp` `imp SHOW=Y` 檢視目錄、或實測還原。

進階替代方案

結語

Export+FTP+Crontab 雖屬「經典組合」,但在中小型環境、無共享儲存、預算有限時,仍是**最快落地、維護成本最低**的異地備份方案。核心在於 `.netrc` 實現 FTP 免互動、Crontab 實現排程自動化、檔名含日期實現自動輪轉。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
方案優點缺點
RMAN 備份 + NFS/ASM 遠端掛載塊級增量、壓縮、加密、整合度高需共享儲存或高速專線
Data Pump (expdp/impdp) + scp/rsync並行、可過濾、網路傳輸壓縮10g+、需 Directory 物件
GoldenGate / Data Guard即時同步、零資料遺失授權成本高、架構複雜