Aix下使用rman備份Oracle RAC資料庫(轉)

BSDLite發表於2007-08-16
Aix下使用rman備份Oracle RAC資料庫(轉)[@more@]環境:AIX5.2 HACMP5.1 Oracle9206RAC



使用rman增量備份,備份策略為:每週四執行零級備份,週五---週三執行1級增量備份,下週四再進行新的零級備份。這樣如果需要恢復的話,需要最多的備份資料為 1個零級備份+6個1級備份+當天的歸檔日誌。rman零級備份指令碼放於/home/oracle/ora0.sh,1級備份位於/home/oracle/ora1.sh 具體內容如下:

零級備份

#!/bin/sh

echo "start"; date

#env

ORACLE_BASE=/oracle/app/oracle

export ORACLE_BASE

ORACLE_HOME=/oracle/app/oracle/product/9.2.0

export ORACLE_HOME

ORACLE_SID=XXX

export ORACLE_SID

ORACLE_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export ORACLE_NLS33

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

export LD_LIRARY_PATH

PATH=/usr/css/sbin:$ORACLE_HOME/bin:/usr/bin:$PATH

export PATH

LANG=en_US

export LANG



#backup

$ORACLE_HOME/bin/rman<
connect target



run

{

allocate channel c1 device type disk ;

allocate channel c2 device type disk ;

allocate channel c3 device type disk ;

backup incremental level 0 database tag 'dbL0' format '/share1/backup/dbkup_%d_%T_%U_L0';

sql 'alter system archive log current' ;

backup archivelog all delete input format '/share2/arcbkup/arcbkup/arc_%d_%T_%U_L0';

release channel c1;

release channel c2;

release channel c3;

}

exit;

EOF

echo "end"; date



1級備份

#!/bin/sh

echo "start"; date

#env

ORACLE_BASE=/oracle/app/oracle

export ORACLE_BASE

ORACLE_HOME=/oracle/app/oracle/product/9.2.0

export ORACLE_HOME

ORACLE_SID=XXX

export ORACLE_SID

ORACLE_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export ORACLE_NLS33

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

export LD_LIRARY_PATH

PATH=/usr/css/sbin:$ORACLE_HOME/bin:/usr/bin:$PATH

export PATH

LANG=en_US

export LANG



#backup

$ORACLE_HOME/bin/rman<
connect target

run

{

allocate channel c1 device type disk ;

allocate channel c2 device type disk ;

allocate channel c3 device type disk ;

backup incremental level 1 database tag 'dbL1' format '/share1/backup/dbkup_%d_%T_%U_L1';

sql 'alter system archive log current' ;

backup archivelog all delete input format '/share2/arcbkup/arcbkup/arc_%d_%T_%U_ L1';

release channel c1;

release channel c2;

release channel c3;

}

exit;

EOF

echo "end";date







在cron任務中定時實現定時備份,即加入以下條目

0 1 * * 0,1,2,3,5,6 /home/oracle/ora1.sh 每天(除週四)凌晨1點執行一級備份

0 0 * * 4 /home/oracle/ora0.sh 每週四0點執行0級備份





資料庫全備份路徑是在 /share1/backup



資料庫歸檔日誌路徑分別為/share2/archive/archive1;/share2/archive/archive2

(該目錄檔案請不要使用rm命令刪除)



資料庫歸檔日誌備份路徑為/share2/arcbkup/arcbkup

資料庫控制檔案自動備份路徑為 /share1/spbkup



/share1 /share2檔案系統為兩臺機器(兩個例項)可以共同訪問的檔案系統,所以保證了歸檔日誌共享,以達到恢復目的。因為資料庫恢復時,只需要在一個例項上進行恢復,但是需要讀取兩個例項產生的歸檔日誌,所以歸檔日誌目錄必須共享。反過來,備份的時候,只需要在一個例項上進行即可。







以下是資料庫全備份指令碼:

rman備份指令碼放於/home/oracle/backup.sh,具體內容如下:

#!/bin/sh

echo "start"; date

#env

ORACLE_BASE=/oracle/app/oracle

export ORACLE_BASE

ORACLE_HOME=/oracle/app/oracle/product/9.2.0

export ORACLE_HOME

ORACLE_SID=XXX

export ORACLE_SID

ORACLE_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export ORACLE_NLS33

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

export LD_LIRARY_PATH

PATH=/usr/css/sbin:$ORACLE_HOME/bin:/usr/bin:$PATH

export PATH

LANG=en_US

export LANG



#backup

$ORACLE_HOME/bin/rman<
connect target



run

{

allocate channel c1 device type disk;

backup database format '/share1/backup/dbkup_%d_%T_%U';

sql 'alter system archive log current';

backup archivelog all delete input format '/share2/arcbkup/arcbkup/arc_%d_%T_%U';

}

exit;

EOF

echo "end"; date



在cron任務中定時實現定時備份,即加入這一條目

0 3 10 * * /home/oracle/backup.sh 即在每月10號凌晨3點執行備份指令碼。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-962365/,如需轉載,請註明出處,否則將追究法律責任。

相關文章