Oracle自動備份腳本的實現

問題描述:sql

Oracle自動備份腳本的實現。shell

錯誤提示1:數據庫

Message file RMAN.msb not foundapp

Verify that Oracle_HOME is set properlyless

。。。。。。測試

錯誤緣由:ui

自動執行的不可以識別相應的命令,須要在自動備份腳本中顯式的聲明Oracle的環境變量。spa

錯誤提示2:debug

standard in must be a ttyorm

。。。。。。

錯誤緣由:

不能在cron使用su或者管道等操做,必須將su命令移動到相關的shell腳本中。

錯誤提示3:

Argument     Value          Description

-----------------------------------------------------------------------------

target       quoted-string  connect-string for target database

catalog      quoted-string  connect-string for recovery catalog

nocatalog    none           if specified, then no recovery catalog

cmdfile      quoted-string  name of input command file

log          quoted-string  name of output message log file

trace        quoted-string  name of output debugging message log file

append       none           if specified, log is opened in append mode

debug        optional-args  activate debugging

msgno        none           show RMAN-nnnn prefix for all messages

send         quoted-string  send a command to the media manager

pipe         string         building block for pipe names

timeout      integer        number of seconds to wait for pipe input

checksyntax  none           check the command file for syntax errors

-----------------------------------------------------------------------------

Both single and double quotes (' or ") are accepted for a quoted-string.

Quotes are not required unless the string contains embedded white-space.

 

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-00556: could not open CMDFILE "backup_ar.rcv"

 

。。。。。。

錯誤緣由:

須要在cmdfile中指明絕對路徑,不能由於shell腳本調用的cmdfile是在同一個目錄下就能夠直接使用文件名或者直接使用./

正確示例代碼:

一、#cron文件

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

#表示天天12,18點對數據庫歸檔日至進行全備份

二、入口shell文件,文件名:backup_ar.sh

export Oracle_HOME=/home/u01/app/Oracle/Oracle/product/10.2.0/db_1

export Oracle_SID=test

export LANG=en_US.UTF-8

/home/u01/app/Oracle/Oracle/product/10.2.0/db_1/bin/rman cmdfile = backup_ar.rcv

三、rman備份腳本

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;

}

解決方法:

一、兩種辦法

一是用root的crontab,*/2 * * * * a.sh --》su - Oracle -c a.sh

一是在a.sh里加上Oracle的環境。

二、咱們作的cron測試:

實例:

Vi /etc/cron.minly/new.sh

內容:

Su – Oracle –c 「/home/Oracle/mginfo.sh」

Vi /home/Oracle/mginfo.sh

內容:

Exp mginfotech/mginfotech file=mginfotech.dmp log=mginfotech.log

Vi /etc/crontab

內容:

59 23 * * * root run-parts /etc/cron.minly

每晚23:59分鐘執行

cron中沒法讀取環境變量

在shell中顯示地export環境變量

export Oracle_HOME=/opt/ora9/product/9.2

export Oracle_SID=Oracle

export NLS_LANG=xxxxx

相關文章
相關標籤/搜索