我读过https://clickhouse.tech/docs/en/sql-reference/statements/misc/#misc_operations-重命名并知道所有表都在全局锁定下重命名。
我的更名案是
rename table t_real_table to t_archive, t_new_data to t_real_table
为了把旧的 t_real_table
并生成新生成的表 t_new_data
充当 t_real_table
.
我有时会发现一些疑问( select * from t_real_table
)失败( Table t_real_table doesn't exist
)在重命名过程中。重命名似乎不是一个非常短暂的过程。我想知道重命名表时到底发生了什么,以便找到避免此类失败的方法。
它在修改吗 metadata/t_real_table.sql
至 metadata/t_archive.sql
以及修改 data/default/t_real_table/
至 data/default/t_archive/
,然后修改 metadata/t_new_data.sql
至 metadata/t_real_table.sql
以及修改 data/default/t_new_data/
至 data/default/t_real_table/
?
如果是这样的话,我想改名不会持续这么久。但是如何避免重命名过程中的失败呢?原子引擎可信吗
1条答案
按热度按时间zed5wv101#
https://github.com/clickhouse/clickhouse/issues/11555#issuecomment-642011592
文件错误。没有全局锁,已在中删除
6757