生產系統下,RMAN的2級備份。以及恢復

coolhe發表於2010-08-18

思路:

   1. 每天0點做一次0級備份,下午4點做一次1級備份。

   2. 0級,1級備份時,都將當前的控制檔案隨同rman一起備份。 0級備份時還包括 密碼檔案,spfile檔案,tnsname.ora,listener.ora .,

   3. 備份結束後,將備份檔案放到FTP伺服器上。 即使是生產系統當機,我們依靠這些備份,可以恢復0級備份,1級備份。

   4. 採用壓縮備份。

 

測試總結:

   1。Dbf 尺寸為100G 的資料庫備份後,大小在20G左右。1級備份我們生產系統的在2G左右。

   2.  恢復時,將恢復用主機上存在的redo移走。 把flash_recover_area下的例項下檔案也移走。最好是密碼檔案,spfile檔案,tnsname.ora,listener.ora 去都覆蓋一下恢復用主機上原有的檔案。

  

 

0. root的Crontab

=============

#Oracle Rman備份
0 4 * * * su - oracle -c "cd /home/oracle/rman_data/script;./level0.sh"  > /root/test   -- 4點0級備份
30 16 * * * su - oracle -c "cd /home/oracle/rman_data/script;./level1.sh"  > /root/test -- 16點1級備份

 

1.備份功能指令碼的目錄結構

===============

[oracle@test1 rman_data]$ pwd
/home/oracle/rman_data
[oracle@test1 rman_data]$ ll
總用量 16
drwxr-xr-x  9 oracle oinstall 4096  5月  6 13:41 data1  --備份資料
drwxr-xr-x  2 oracle oinstall 4096  5月 18 10:11 logs   --日誌檔案
drwxr-xr-x  2 oracle oinstall 4096  5月 18 14:43 script  --備份指令碼

 

pwd

/home/oracle/rman_data/script
[oracle@test1 script]$ ll
總用量 20
-rwxr--r--  1 oracle oinstall  555  5月 15 16:47 ftp2bakmachine.sh -- 把備份的資料放到FTP伺服器上
-rwxr--r--  1 oracle oinstall 4119  5月 18 14:35 level0.sh  -- 0級備份
-rwxr--r--  1 oracle oinstall 1925  5月 17 16:07 level1.sh  -- 1級備份

 

 

[oracle@test1 data1]$ pwd
/home/oracle/rman_data/data1
[oracle@test1 data1]$ ll
總用量 28
drwxr-xr-x  4 oracle oinstall 4096  5月 13 14:37 week0
drwxr-xr-x  4 oracle oinstall 4096  5月 13 14:37 week1
drwxr-xr-x  4 oracle oinstall 4096  5月 13 14:37 week2
drwxr-xr-x  4 oracle oinstall 4096  5月 13 16:52 week3
drwxr-xr-x  4 oracle oinstall 4096  5月 13 14:37 week4
drwxr-xr-x  4 oracle oinstall 4096  5月 13 14:37 week5
drwxr-xr-x  4 oracle oinstall 4096  5月 16 21:13 week6


[oracle@test1 week0]$ pwd
/home/oracle/rman_data/data1/week0
[oracle@test1 week0]$ ll
總用量 16
drwxr-xr-x  2 oracle oinstall 4096  5月 18 04:06 data_level0
drwxr-xr-x  2 oracle oinstall 4096  5月 18 04:06 data_level1

 

說明:

    每天都有1級,0級備份。

    week0~week6 是週日到週六的總目錄。

    每個week{n}下有 data_level0,data_level1 2 個目錄,分別放0級備份,和1級備份。

 

2.備份指令碼檔案說明

=======

[oracle@test1 script]$ more ftp2bakmachine.sh
FTP_SERVER_DIR=$1
FTP_CLIEAT=$2
FTP_SERVER_DIR_YESTERDAY=$3
LOGFILE=$4
TEE=/usr/bin/tee
echo FTP_CLIEAT=[${FTP_CLIEAT}]
echo FTP_SERVER_DIR=[${FTP_SERVER_DIR}]
echo FTP_SERVER_DIR_YESTERDAY=[${FTP_SERVER_DIR_YESTERDAY}]

FTP_SERVER_IP=IP地址
FTP_USER_NAME=FTP使用者名稱
FTP_USER_PWD=FTP密碼

ftp  -n ${FTP_SERVER_IP} <user ${FTP_USER_NAME} ${FTP_USER_PWD}
bin
prompt off
cd ${FTP_SERVER_DIR_YESTERDAY}
mdel *
cd  $FTP_SERVER_DIR
mdel *
lcd  ${FTP_CLIEAT}
mput *
! pwd
! ls -alh
cd  $FTP_SERVER_DIR
pwd
ls -alh
close
bye
quit
EOF

 

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

相關文章