Dataguard 環境中做shrink帶來的影響

2021-06-10 08:14:31 字數 902 閱讀 7164

資料庫表空間告警,用下面的語句檢查發現有幾張表占用的空間比較大。

但實際這幾張表的資料量並不多,所以準備用shrink來收縮一下。

sql>select segment_name, segment_type, sum(bytes) / 1024 / 1024 mb

from user_segments

group by segment_name, segment_type

--開啟行遷移功能

alter table table_name enable row movement ;

-- 收縮表與相關索引 

alter table table_name shrink space cascade;

指令碼寫好後,在中午業務不忙的時候執行了shrink動作。

執行完shrink後,檢查表空間使用率,發現表空間得到了釋放。

但事情到此並沒有結束,只是剛剛開始。

由於shrink是通過dml操作來降低hwm的,所以會產生大量redo。隨之而來的還

有undo表空間的不斷增大,歸檔日誌不斷增加,歸檔的切換頻率增大。如果數

據庫的undo足夠用,歸檔空間足夠用頂多會對效能帶來點影響。還好中午的時

候沒什麼人用系統,undo,歸檔也都夠用,也沒有效能問題。

但是下午發現兩個備庫上的資料與生產的資料相差很多,檢查資料同步情況。發

現由於shink操作,產生的大量的歸檔。導致主庫與備庫之間的資料同步有差異。

由於歸檔量比較大,網路也不是很給力,最終導致很多歸檔檔案沒能及時傳遞過

去。從而導致了primary和phyical standby之間資料差異較大。還好這些歸檔日

誌能自動的補傳過去。

還好對standby資料的實時性要求不是很好,否則這次就闖大禍了。看來生產環境的任何操作都要小心啊。

單機上快速搭建乙個Data Guard環境

保證主庫test在database logging,archive狀態下,並能正常執行狀態。一.修改 oracle home dbs inittest.ora db name test db unique name test local listener address protocol tcp h...

單機上快速搭建乙個Data Guard環境

保證主庫test在database logging,archive狀態下,並能正常執行狀態。一.修改 oracle home dbs inittest.ora db name test db unique name test local listener address protocol tcp h...

單機上快速搭建乙個Data Guard環境

保證主庫test在database logging,archive狀態下,並能正常執行狀態。一.修改 二.修改 三.建立相應目錄 四.建立密碼檔案 orapwd file oracle home dbs orapwtest password oracle entries 5 orapwd file ...