主資料庫傳送到備用資料庫的歸檔我們是採用指令碼定期刪除的,早期的指令碼為;
#!/bin/sh
export oracle_base=/opt/oracle
export oracle_home=$oracle_base/product/9.2
export oracle_sid=tbdb1in1
export bdump=/opt/oracle/admin/tbdb1/bdump
export home=/home/oracle
export path=$path:$oracle_home/bin:/sbin:/usr/sbin
grep "media recovery log" $bdump/alert_$.log|awk ''|sed -e 's/^/rm /' >$home/worksh/rmarchlog.sh
chmod +x $home/worksh/rmarchlog.sh
$home/worksh/rmarchlog.sh
cd $bdump
cat alert_$.log >>alert_$.log.bak
>alert_$.log
rm -f $home/worksh/rmarchlog.sh
但是,馬上就發現問題了,
1、是如果乙個日誌開始恢復,但是還沒有恢復完成的時候,其實在alert日誌中已經記載了media recovery log的資訊,如果這個時候,我開啟(open read only)來查詢資料庫,這個日誌實際上沒有恢復完,但是,因為在alert日誌中有其資訊,所以,日誌刪除程式就會誤刪這個日誌。
2、如果刪除成功,馬上執行該指令碼將產生乙個錯誤,因為alert日誌與歸檔目錄都沒有東西了,這個錯誤雖然不影響什麼,但是看上去也不好。
因為前幾次多刪除了領頭的日誌,而主庫也備份並刪除了,最後不得不從備份中恢復該日誌,所以,改寫了日誌刪除程式指令碼。
#!/bin/sh
export oracle_base=/opt/oracle
export oracle_home=$oracle_base/product/9.2
export oracle_sid=tbdb2in1
export bdump=/opt/oracle/admin/tbdb2/bdump
export home=/home/oracle
export path=$path:$oracle_home/bin:/sbin:/usr/sbin
grep "media recovery log" $bdump/alert_$.log|grep 1_|sed '$d'|awk ''|sed -e 's/^/rm /' > $home/worksh/rmarchlo
g.sh
grep "media recovery log" $bdump/alert_$.log|grep 1_|sed -n '$p' > $home/logs/logtmp.log
grep "media recovery log" $bdump/alert_$.log|grep 2_|sed '$d'|awk ''|sed -e 's/^/rm /' >> $home/worksh/rmarchl
og.sh
grep "media recovery log" $bdump/alert_$.log|grep 2_|sed -n '$p' >> $home/logs/logtmp.log
chmod +x $home/worksh/rmarchlog.sh
$home/worksh/rmarchlog.sh
cd $bdump
cat alert_$.log >>alert_$.log.bak
cat $home/logs/logtmp.log > alert_$.log
rm -f $home/worksh/rmarchlog.sh
改寫後的指令碼,保留每個執行緒中最後乙個日誌不刪除,並返回到alert日誌中,留到下一次刪除,解除了刪除錯誤(多刪除乙個)與刪除後馬上執行該指令碼產生錯誤的問題。
怎麼樣正確地刪除Ceph上的osd節點?
etc init.d ceph stop osd.0 systemctl stop ceph osd 0 ceph osd out osd.0告訴mon,這個節點已經不能服務了,需要在其他的osd上進行資料的恢復了 ceph osd crush remove osd.0從crush中刪除是告訴集群這...
怎麼樣恢復硬碟資料刪除的檔案
我是乙個數碼控,很多方面的數碼產品我都喜歡,大到單反電腦,小到硬碟裝置,我一一都有一些簡單的研究,數碼控們都有乙個通病,如果發現有新功能的產品出現,那就一定要想方設法的得到它,還好,我的定力算是不錯的,所以什麼iphone6一類的我沒有過於追求,畢竟現實的經濟條件在這裡,容不得我們亂來,不是富二代就...
怎麼樣列印cxgrid過濾後的資料
用語句cxgriddbtableview.controller.filter.filteringtext獲得篩選語句 你可以在程式中用adoquery來接受這條語句 還可以自己擴充套件 fsatreport的資料集指向query就可以了 試試。adoquery1.filtered true try ...