Standby Database for report

Karsus發表於2008-01-22

原先的reportProduction DB上跑,已經使得其不堪重負。User多次反映有時速度很慢,影響工作效率。

[@more@]

Standby Database for report

原先的reportProduction DB上跑,已經使得其不堪重負。User多次反映有時速度很慢,影響工作效率。

RHEL4 + 9IR2

目前已經有一臺Physical Standby Database,但主要目的是備援,不適合用來做Report DB

因此需要另外再搭建一臺standby database for report.

詳細搭建不多說,這臺Report DBLOG傳輸和LOG apply完全靠OS上的機制。

9ir2Standby database本可以從另一個standby DB上接收Archived log,這個稱作cascaded redo log destinations。這種機制依賴於LGWR transport method,這對於Server負載本已經很高的Production DB來說,依然是負擔。

所以還是依靠CRON & shell來實現從現有的standby DB上拉回Archived log

首先要和應用人員確定可以用來Apply Archived log的時間段,然後再確定一次Apply需要多久的時間。

以上確定好之後,便可以確定CRONJob的時間設定。

由於一天產生的Archived log數量眾多,因此會分時先將Archived log透過SCPCopy過來。

COPYshell:

#!/bin/sh

if [ ! ${#} -eq "3" ]; then

echo "Usage is "

echo $0 '"a trusted host" "archived log dest" "time range"'

exit 1

fi

copyfile='/tmp/ready_to_copy.lst'

export copyfile

ssh $1 "/usr/bin/find $2/*.arc -mmin -$3" > $copyfile

cat $copyfile | while read FILENAME

do

scp $1:$FILENAME $2

done

然後在每天的特定時間段便可Apply log

主要還是呼叫這樣一段SQL:

host echo "Shutdown Database!!"

shutdown immediate;

host echo "Sleep 35 secs"

host sleep 35;

host echo "Start Database Mount!!"

startup nomount;

host echo "Alter database mount standby database;"

alter database mount standby database;

host echo "Recover standby database automatically"

recover automatic standby database;

host echo "Alter database open read only"

alter database open read only;

目前執行一週多正常。只是在Report DBV$archived_log上的資訊不能同步。

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

相關文章