ORACLE 11g 生產中高水位線 HWM 處理

2021-10-25 03:52:37 字數 3771 閱讀 7985

資料庫中表不斷的insert,delete,update,導致表和索引出現碎片。這會導致hwm之前有很多的空閒空間,而oracle在做全表掃瞄的時候會讀取hwm一下的所有塊,這樣會產生更多的io,影響效能。

oracle提供了shrink space碎片整理的功能,對於索引要採取rebuild online的方式進行碎片整理。

高水位的管理機制在 mssm 和 assm 中不同,在以往的手動段空間管理中(mssm),高水位標記 hwm,乙個段分成三部分,header block,used block(row data),unusedblock,其中 used block 和 unused block 之間的分界線就是高水位標記 hwm,當進行全表掃瞄的時候,會掃瞄到 hwm 下的所有資料塊,即使 used block 中很多資料被刪除了,全表掃瞄還是以hwm為準。

在自動段管理(assm)中,利用點陣圖來代替空閒列表,當會話向表插入資料時,資料庫只格式乙個單獨的位圖塊,而不是像 mssm 中那樣,會預先格式化一組塊。在assm表空間中,除了乙個 hwm 外,還有乙個低 hwm。在 mssm 中,hwm 推進時,所有的塊都會格式化並立即生效,這樣 oracle 就可以安全的讀取這些塊。但是對於 assm,當 hwm推進時,oracle 並不會立即格式所有的塊,只是在第一次使用的時候才會對這些塊進行格式化。也就是說,在第一次使用的的時候,即進行 insert 操作時,資料會插入到塊中的任意水位線,位於低水位線(lhmw)和高水位線(hhmw)之間。因此在這個區域的許多塊就不會被格式化。

生產中這s_operatelog, s_t_rtnrp_status, s_t_send_report三張表實際使用量不大(即truncate分割槽後),表空間資料檔案還是占用很高,幾個t,現需要釋放不用的空間。

以下是生產中的三張表,且都是按天生成的分割槽表(不足乙個月的資料,一年資料量很大)

可以看出使用的並不是很大。

檢視表使用的表空間

檢視表空間使用情況:

可以看出幾個表空間占用空間很大,尤其是前三個表空間。

檢視表空間資料檔案情況:

select a.tablespace_name,

a.file_name,

round(a.bytes/1024/1024/1024,2) as "current_bytes(gb)",

round(a.bytes/1024/1024/1024 - b.resize_to/1024/1024/1024,2) as "shrink_by_bytes(gb)",

round(b.resize_to/1024/1024/1024,2) as "resize_to_bytes(gb)"

from   dba_data_files a,

(select file_id, max((block_id+blocks-1)*&v_block_size) as resize_to

from   dba_extents

group by file_id) b

where  a.file_id = b.file_id

and a.tablespace_name in

'smart_oplog01',

'smart_nrrpsta01',

'smart_nrrpsta02',

'smart_nsnrp01',

'smart_nsnrp02'

order by a.tablespace_name, a.file_name;

塊大小是16k的。16384

後三列表示當前占用大小,能夠收縮大小,最小的resize大小。

1)    shrink對應的表

alter table table_name enable row movement;--啟動行移動功能

alter table table_name shrink space compact;  --只整理碎片 不**空間

-- 重置高水位,此時不能有dml操作

alter table table_name shrink space; --整理碎片並**空間,並調整水位線。業務少時執行

alter table table_name disable row movement;--關閉行移動

2)    resize 資料檔案

收縮前表空間使用如下:

收縮後表空間使用如下:

磁碟組使用如下:

原+fdatadg磁碟中使用達到96%,釋放了20%的空間。

解除安裝oracle 11g

估計和以前的版本一樣,先刪除物理檔案,然後再刪除登錄檔的檔案。大致方法如下 1 刪除物理檔案 1 oracle安裝檔案。2 系統目錄下,program files檔案下的oracle檔案 2 登錄檔中大概有這麼幾個地方 hkey local machine software 刪除oracle目錄 h...

oracle 11G 解除安裝

oracle deinstall deconfig tool start check operation start 安裝檢查配置開始 選擇進行解除安裝的 oracle 主目錄型別為 sidb 檢查主產品清單位置是否存在 c program files oracle inventory 安裝檢查配置...

oracle 11g 解除安裝

準備把之前的oracle卸了重新裝一遍,打算裸敲個web專案 完全解除安裝oracle11g步驟 1 首先停止所有oracle服務,右鍵我的電腦 管理 服務 在o開頭的服務裡,停掉所有的orcl或是oracle開頭的 2 開始選單裡找到oracle orahome81 oracle安裝產品 univ...