linux es3+oracle9i備份規劃腳本_修訂版
2024-08-29 13:37:32
供稿:網友
 
             針對PRD系統的安全性及數據的可靠性,做出了一下的備份策略和腳本。 環境: 
操作系統:linux Enterprise SERVER 3 
數據庫:  Oracle 9I ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                                                                                             1)系統備份(file level) 
   對于整個文件系統的備份,它的初衷就是當系統文件丟失、服務器硬件的物理損壞造成的系統無法正常運行時,采用 
通過系統的備份文件來快速恢復損壞的系統,使操作系統在最短的時間修復。根據上面的分析,系統的備份可以在系統 
硬件或軟件發生改變時進行備份,無須定制備份計劃。也可以定期手工備份(如3個月)。 備份腳本文件名:system_bck.sh 
腳本內容如下: 
#!/bin/sh 
cd / 
tar cvf rman:/dev/st0 . --ignore-failed-read 說明:a.rman 是遠程的LINUX操作平臺的備份機,這樣可以把數據直接存至異地。 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2)數據庫備份(database level -- eXP/imp) 
   對于數據庫的備份有很多種,比如:數據庫的在線熱備份、脫機的冷備份,ORACLE exp/imp的工具備份,Rman備份和 
第三方的備份軟件的備份。在對PRD系統進行分析后,決定首先采取exp/imp對ORACLE 數據庫進行計劃性的邏輯備份,這樣 
可以節省本地的硬盤空間,也是ORACLE的一種有效的備份工具。 備份腳本文件名:exp_full.sh 
腳本內容如下: 
#!/bin/tcsh 
source /usr/local/ora9i/.cshrc 
setenv rq `date +%Y%m%d` 
rm -fr /Oradata/backup/exp_plan/exp_full_* 
exp userid=system/manager full=Y file='/Oradata/backup/exp_plan/exp_full_$rq.dmp' log='/Oradata/backup/exp_plan/exp_full_$rq.log' 說明:a.以上是做數據庫的完全數據庫導出,文件名稱為變量 rq 的值。(如exp_full_20050311) 
     b.這個邏輯導出的文件存放在本地服務器,并且保留一份,也就是當天有效。因為本地磁盤采用的是RAID5陣列,所以 
       沒有把這個導出文件在另存到異地。(由于RAID5的可靠性,異地轉存的混亂,所以沒有轉存到異地)。 
     c.用crontab進行定期的執行:23 00 * * * /Oradata/backup/exp_plan/exp_full.sh +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3)數據庫脫機冷備份 
  脫機冷備份的備份方式是在數據庫正常關機的條件下,對數據庫的數據文件,重做日志文件,控制文件,歸檔文件, 
和服務器參數文件進行備份,這樣可以保留某一時間段數據的完事性,2)可以依托于3)的備份結構。 備份腳本文件名:cool_full_bck.sh 
腳本內容如下: 
#!/bin/sh 
# 
#本地備份目錄為 
#/Oradata/backup/cool_bck/sda1   
#/Oradata/backup/cool_bck/sda2 
# 
export ORACLE_HOME=/usr/local/ora9i/OraHome 
$ORACLE_HOME/bin/sqlplus "/as sysdba" <<EOF 
shutdown immediate 
host "rm -fr /Oradata/backup/cool_bck/*" 
host "mkdir -p /Oradata/backup/cool_bck/sda1" 
host "mkdir -p /Oradata/backup/cool_bck/sda2" 
host "cp -fr /Oradata/FIT_DB/FIT/* /Oradata/backup/cool_bck/sda2" 
host "cp -fr /usr/local/ora9i/Oradata/FIT_DB/FIT/* /Oradata/backup/cool_bck/sda1" 
host "cp -fr $ORACLE_HOME/dbs/*.ora /Oradata/backup/cool_bck" 
startup 
<<EOF 
                         備份腳本文件名:cool_tar_remote.sh 
腳本內容如下: 
#!/bin/sh 
#遠程備份機器名為 rman 
#此腳本為以追加方式寫入磁帶機 
cd /Oradata/backup/cool_bck 
tar rcvf rman:/dev/st0 . 備份腳本文件名:cool_tar_remote.sh 
腳本內容如下: 
#!/bin/sh 
#遠程備份機器名為 rman 
#此腳本以覆蓋方式寫入磁帶機 
cd /Oradata/backup/cool_bck 
tar cvf rman:/dev/st0 . 說明: a.00 21 * * 0 /Oradata/backup/exp_plan/cool_full_bck.sh         #每周做數據庫的脫機全備份 
     b.30 23 * * 0 /Oradata/backup/exp_plan/cool_tar_remote.sh       #將本地的數據備份到遠程磁帶機上 
     c.00 03 28 * * /Oradata/backup/exp_plan/cool_tar_remote_ow.sh   #每月的28日對磁帶機進行覆蓋備份 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 附加方式: 
數據庫備份(database level -- Rman) 
  采用Rman做異地的備份,這樣也是對2)的一個補充,在異地服務器安裝RMAN catalog,磁帶機,創建腳本;并對腳本定 
期的執行。這樣本地有exp/imp的導出文件和RAID5的安全性,遠程有Rman的磁帶備份,可以說是對數據的雙重保護。在數據 
量增大時,可以考慮第三方備份軟件,如:veritas netbackup, Ca ,legato等備份軟件。 備份腳本文件名:ora_bck 
腳本內容如下: 
{configure default device type to "sBT_tape" parallelism 3; 
configure exclude for tablespace temp; 
allocate ch01 device type "sbt_tape"; 
allocate ch02 device type "sbt_tape"; 
allocate ch03 device type "sbt_tape"; 
backup database; 
backup current controlfile; 
backup archivelog all; 
} 說明 :a.這備份方式可以做為與3)方式的可選項,見議備份方式不要太多,以免造成混亂。