如何在删除记录后释放vertica原始空间

时间:2014-09-04 21:52:15

标签: database vertica

我们正在使用原始数据限制为1TB的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)

知道如何释放这个空间吗?

4 个答案:

答案 0 :(得分:11)

使用DELETE删除的行标记为删除,不会立即从物理存储中删除。您需要等待合并发生,推进纪元或运行PURGE。有关清除已删除数据的详细信息,请参见documentation

答案 1 :(得分:3)

除了Kermit的回答......

由于删除费用昂贵,我过去常常根据日期将数据放在分区上,在将数据归档到其他地方后,我会删除分区。

答案 2 :(得分:2)

标记为删除并由删除向量指示的记录 您可以通过以下查询找到删除矢量的计数

select count(1) from delete_vectors;

删除删除矢量 您可以编写包含

的脚本
select make_ahm_now()
select purge()

然后安排运行此脚本

答案 3 :(得分:1)

计算数据库大小时排除已删除的记录。因此,立即清除删除向量并不紧迫。

要立即看到删除对许可证合规性的影响,您可以使用

触发立即审核
select audit_license_size();

正如其他人所说的那样

select make_ahm_now(); select purge();

将永久删除已删除的记录,但这些操作非常耗时,并会阻止truncate().等操作 您可以使用

减少中断
  select purge_table('<your table name');

而不是

  select purge()