首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 自動備份腳本部署避坑指南:從 Cron 到 RMAN 完整實錄

     編輯:Oracle 資料庫相關知識

三大經典錯誤與解決方案

錯誤現象根因解決辦法
RMAN.msb not found / Oracle_HOME 未識別Cron 環境變量缺失Shell 腳本中显式 export ORACLE_HOME、ORACLE_SID、NLS_LANG
standard in must be a ttyCron 禁用 su/管道將 su 命令移入 Shell 腳本內部執行
could not open CMDFILE "backup_ar.rcv"相對路徑失效RMAN cmdfile 必須使用絕對路徑

標準化部署三層腳本架構

1. Crontab 排程

0 12,18 * * * /home/oracle/bak_sh/backup_ar.sh

2. 入口 Shell (/home/oracle/bak_sh/backup_ar.sh)

export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
export ORACLE_SID=test
export LANG=en_US.UTF-8
$ORACLE_HOME/bin/rman cmdfile=/home/oracle/bak_sh/backup_ar.rcv

3. RMAN 備份腳本 (backup_ar.rcv)

CONNECT TARGET /
CONNECT CATALOG rman/rman@rman
RUN {
ALLOCATE CHANNEL d1 DEVICE TYPE DISK;
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
BACKUP ARCHIVELOG ALL DELETE INPUT
FORMAT '/opt/rmanback/full_%u_%p_%c.ac' FILESPERSET=3;
RELEASE CHANNEL d1;
}

關鍵原則

  • 環境變量在 Shell 內建立,避免 Cron 繼承問題
  • 所有路徑使用絕對路徑
  • RMAN 目錄連接資訊集中管理
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved