MAKE_AHM_NOW
将 Ancient History Mark (AHM) 设置为允许的最大值。这使您可以清除所有已删除的数据。
当心
运行此函数后,将无法查询当前时期之前的历史数据。只有数据库管理员才能使用此函数。MAKE_AHM_NOW
执行以下操作:
-
推进时间。
-
将 AHM 设置为 上一个完好的时期 (LGE),至少设置为执行
MAKE_AHM_NOW
时的当前时期。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
MAKE_AHM_NOW ( [ true ] )
参数
- true
- 当以下条件之一为 true 时,允许 AHM 推进:
-
一个或多个节点发生故障。
-
一个投影正在通过另一个投影进行刷新(保留刷新)。
在这两种情况下,必须将此实参提供给
MAKE_AHM_NOW
,否则 Vertica 会返回错误。如果在保留刷新期间执行MAKE_AHM_NOW(true)
,Vertica 将回滚刷新操作并推进 AHM。当心
如果函数将 AHM 推进到超过故障节点的上一个完好的时期,则这些节点必须从头开始恢复所有数据。 -
超级用户
在节点发生故障时设置 AHM
如果群集中的任何节点发生故障,则必须使用 true 实参调用 MAKE_AHM_NOW
;否则,函数将返回错误。
注意
此要求仅适用于企业模式;在 Eon 模式下,它将被忽略。在以下示例中,即使节点发生故障,MAKE_AHM_NOW
仍会推进 AHM:
=> SELECT MAKE_AHM_NOW(true);
WARNING: Received no response from v_vmartdb_node0002 in get cluster LGE
WARNING: Received no response from v_vmartdb_node0002 in get cluster LGE
WARNING: Received no response from v_vmartdb_node0002 in set AHM
MAKE_AHM_NOW
------------------------------
AHM set (New AHM Epoch: 684)
(1 row)