怎麼樣正確的刪除備用資料庫的日誌

2021-03-31 08:56:29 字數 1979 閱讀 3794

主資料庫傳送到備用資料庫的歸檔我們是採用指令碼定期刪除的,早期的指令碼為;

#!/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 ...