设置清除策略
清除数据的首选方法是建立一个策略来确定哪个已删除的数据符合清除条件。当 Tuple Mover 执行 合并操作时,会自动清除符合条件的数据。
Vertica 提供了两种方法用于确定已删除的数据何时符合清除条件:
-
指定保存删除数据的时间
-
指定保存的 时期数
指定保存删除数据的时间
指定保存删除数据的时间是确定可以清除哪些已删除数据的首选方法。默认情况下,仅当节点处于关闭状态时,Vertica 才会保存历史数据。
要更改保存已删除数据的指定时间,请使用 HistoryRetentionTime
配置参数:
=> ALTER DATABASE DEFAULT SET HistoryRetentionTime = {seconds | -1};
在上述语法中:
-
Seconds 是保存已删除数据的时长(单位为秒)。
-
-1 表示您不想使用
HistoryRetentionTime
配置参数确定哪些已删除数据符合清除条件。如果您更想使用其他方法 (HistoryRetentionEpochs
) 来确定可以清除哪些已删除数据,可使用此设置。
以下示例将历史时期保留级别设置为 240 秒:
=> ALTER DATABASE DEFAULT SET HistoryRetentionTime = 240;
指定保存的时期数
除非您有理由限制时期数,否则 Vertica 建议您指定保存删除数据的时间。
要通过 HistoryRetentionEpochs
配置参数指定保存的历史时期数:
-
关闭
HistoryRetentionTime
配置参数:=> ALTER DATABASE DEFAULT SET HistoryRetentionTime = -1;
-
通过
HistoryRetentionEpochs
配置参数设置历史时期保留级别:=> ALTER DATABASE DEFAULT SET HistoryRetentionEpochs = {num_epochs | -1};
-
num_epochs 是要保存的历史时期数。
-
-1 表示您不想使用
HistoryRetentionEpochs
配置参数从时期映射中截取历史时期。默认情况下,HistoryRetentionEpochs
设置为 -1。
-
以下示例将要保存的历史时期数设置为 40:
=> ALTER DATABASE DEFAULT SET HistoryRetentionEpochs = 40;
将立即在数据库群集内的所有节点上实施修改。您无需重新启动数据库。
注意
如果同时指定了HistoryRetentionTime
和 HistoryRetentionEpochs
,则优先使用 HistoryRetentionTime
。
有关更多详细信息,请参阅时期管理参数。有关 Vertica 如何使用时期的信息,请参阅时期。
禁用清除
如果要保留所有历史数据,可按以下方式将历史时期保留参数的值设置为 -1:
=> ALTER DABABASE mydb SET HistoryRetentionTime = -1;
=> ALTER DATABASE DEFAULT SET HistoryRetentionEpochs = -1;