我们正在使用原始数据限制为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)
知道如何释放这个空间吗?
答案 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()