【问题标题】:How to free up vertica raw space after deleting records删除记录后如何释放 vertica 原始空间
【发布时间】:2014-09-04 21:52:14
【问题描述】:

我们使用的是 Vertica 社区版,其原始数据限制为 1TB。

最近达到了 1 TB 的原始数据限制,因此我们决定从所有表中删除一些记录。删除旧记录后,Vertica 仍显示 Utilization : 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)

知道如何释放该空间吗?

【问题讨论】:

    标签: database vertica


    【解决方案1】:

    使用DELETE 删除的行被标记为删除,并且不会立即从物理存储中删除。您需要等待合并发生、推进 epoch 或运行PURGE。有关清除已删除数据的更多信息,请访问documentation

    【讨论】:

      【解决方案2】:

      除了克米特的回答...

      由于删除成本很高,我过去常常根据日期将数据放在分区上,在将数据归档到其他地方后,我会删除分区。

      【讨论】:

      • +1 我希望 OP 阅读文档中关于这样做的灰色说明。
      【解决方案3】:

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

      select count(1) from delete_vectors;
      

      删除删除向量 您可以编写一个脚本,其中包含

      select make_ahm_now()
      select purge()
      

      然后安排运行这个脚本

      【讨论】:

        【解决方案4】:

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

        要立即查看删除对许可证合规性的影响,您可以触发立即审核

        select audit_license_size();
        

        正如其他人所说的

        select make_ahm_now(); select purge();

        将永久删除已删除的记录,但这些操作可能非常耗时,并且会阻止像 truncate(). 这样的操作 您可以通过使用来减少中断

          select purge_table('<your table name');
        

        而不是

          select purge()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-07-24
          • 2019-01-04
          • 2017-09-23
          • 1970-01-01
          • 2018-08-10
          • 1970-01-01
          相关资源
          最近更新 更多