停用存储位置
您可以停用存储位置以停止使用它。停用某个存储位置只是禁止 Vertica 将数据或临时文件存储到其中,而不会移除实际位置。先前存储在已停用位置中的所有数据最终将由 Tuple Mover 合并。使用 RETIRE_LOCATION 函数停用位置。
以下示例从单个节点停用位置:
=> SELECT RETIRE_LOCATION('/secondStorageLocation/' , 'v_vmartdb_node0004');
要停用所有节点上的存储位置,请为第二个实参使用空字符串 (''
)。如果位置是 SHARED,则只能在所有节点上停用它。
您可以通过传递可选的第三个实参 enforce 为 true
来加快存储位置的停用和删除操作。该函数使用此指令将数据从存储位置中移出,而不必等待 Tuple Mover 来处理,这样您便能够立即删除该位置。
此外,还可以使用 ENFORCE_OBJECT_STORAGE_POLICY 函数立即触发所有存储位置的移动操作,从而可用于删除这些位置。这种方法等效于使用 enforce 实参。
以下示例显示了如何停用所有节点上的存储位置,以便可以立即删除它:
=> SELECT RETIRE_LOCATION('/secondStorageLocation/' , '', true);
注意
如果存储策略中使用的位置是最后一个可用于存储其关联对象的位置,您无法将其停用,除非将 enforce 设置为true
。
可将数据文件和临时文件存储在一个存储位置或多个单独的存储位置中。
有关在停用某个位置后删除该位置的详细信息,请参阅删除存储位置。