clickhouse 异常
-
报错: Code: 16. DB::Exception: Received from localhost:9000. DB::Exception: There is no physical column ver(表字段) in table…
处理方案: 检查metadata下sql文件数据是否正常
-
报错: Cannot create table from metadata file /var/lib/clickhouse/metadata/db_name//tab_name.sql, error
处理方案: 检查metadata下sql文件数据是否正常
-
报错: Code: 210. DB::NetException: Connection refused (localhost:9000)
-
处理方案:
- 检查clickhouse服务是否开启
- 检查防火墙是否关闭(或9000端口是否正常访问)
- 检查配置文件是否正常
- 检查zk是否正常
操作
clickhouse sit环境进行DDL操作:
ALTER TABLE tab_name DROP COLUMN ver;
操作以后, select * from … 出现如下异常:
Code: 16. DB::Exception: Received from localhost:9000. DB::Exception: There is no physical column ver(表字段) in table…
排查
- 查看表结构,显示字段已经删除
DESC tab_name;
-- 或者
SHOW CREATE TABLE tab_name;
- 查看数据,显示字段数据已经删除
cd /var/lib/clickhouse/data/db_name/tab_name && ls
## 找一个数据目录,显示已经无 ver 字段
为了解决问题,重新创建了另外一张同字段的业务表,原表没有删除。不幸的事发生了,公司电器功率高,sit机房断电,服务挂了。来电启动服务器,一直启动不了,就去追踪日志
# 启动服务失败
service clickhouse-server start
# 查看服务有异常
sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml
# 日志查看
tail -300f /var/log/clickhouse-server/clickhouse-server.log
tail -300f /var/log/clickhouse-server/clickhouse-server.err.log
2021.04.30 13:01:21.471806 [ 1 ] {} Application: Caught exception while loading metadata: Code: 132, e.displayText() = DB::Exception: Cannot create table from metadata file /var/lib/clickhouse/metadata/db_name//tab_name.sql, error: DB::Exception: Version column ver does not exist in table declaration., stack trace: 0. 0x5575ae975640 StackTrace::StackTrace() /usr/bin/clickhouse
大致意思是说,metadata有ver字段记录,而表及数据目录无此字段
metadata/db_name/tab_name.sql含ver字段如下:
解决方案
- 删除/var/lib/clickhouse/metadata/db_name/下的tab_name.sql;
rm -rf /var/lib/clickhouse/metadata/db_name/tab_name.sql
- 删除/var/lib/clickhouse/data/db_name/tab_name数据;
rm -rf /var/lib/clickhouse/data/db_name/tab_name
3. 启动服务
# 启动服务正常
service clickhouse-server start
# 查看状态,已经启动
service clickhouse-server status
# 检验正常
clickhouse-client -m
# 库检查正常
show databases;