2014-09-04 70 views
4

我們正在使用原始數據限制爲1TB的Vertica社區版。如何在刪除記錄後釋放Vertica原始空間

最近達到1 TB原始數據限制,所以我們決定從所有表中刪除一些記錄。刪除舊記錄後,Vertica仍顯示使用率:104%

dbadmin=> SELECT GET_COMPLIANCE_STATUS(); 
GET_COMPLIANCE_STATUS 
---------------------------------------------------------------------------------------- 
Raw Data Size: 1.04TB +/- 0.10TB 
License Size : 1.00TB 
Utilization : 104% 
Audit Time : 2014-09-04 13:05:24.020979-04 
Compliance Status : The database is in compliance with respect to raw data size. 

No expiration date for a Perpetual license 

NOTICE: Recent audits suggests a change in compliance status. We are awaiting additional data points to confirm. 
(1 row) 

任何想法如何釋放該空間?

回答

10

使用DELETE刪除的行被標記爲刪除,不會立即從物理存儲中刪除。您需要等待合併發生,推進時期或運行PURGE。有關清除已刪除數據的更多信息,請參見documentation

3

除了Kermit的答案...

由於刪除是我習慣把根據各地日期分區數據和歸檔數據在其他地方我將放棄分區後昂貴。

+0

+1我希望OP這樣做只是在文件中讀取灰色音符。 – Kermit 2014-09-05 14:29:49

2

的記錄標記爲刪除,並通過刪除載體 您可以通過以下查詢找到刪除向量的數量指出

select count(1) from delete_vectors; 

要刪除的刪除矢量 您可以編寫包含

腳本
select make_ahm_now() 
select purge() 

然後計劃運行此腳本

1

當計算時會刪除已刪除的記錄g數據庫大小。因此,立即清除刪除向量沒有緊迫性。

立即看到您的許可證合規信息缺失的效果,可以立即觸發審計與

select audit_license_size(); 

正如其他人所說

select make_ahm_now(); select purge();

會永久刪除已刪除的記錄但這些操作可能會非常耗時,並會阻止像truncate(). 這樣的操作您可以通過使用

來減少中斷
select purge_table('<your table name'); 

代替

select purge()