【Clickhouse】DB::Exception: Table is in readonly mode问题解决

1. 问题描述

公司电力检修,机房断电再上电之后clickhouse的一张表出现了只读现象

复制代码
2024.05.20 16:58:08.702472 [ 173655 ] {17C25AD8068BBE9A} <Error> executeQuery: Code: 242, e.displayText() = DB::Exception: Table is in readonly mode (version 20.5.2.7 (official build)) (from [::ffff:10.114.4.50]:10074) (in query: INSERT INTO tb_alyinfo_state (mould_name,mould_leafuri,mould_update_time,sheet_name ,analyze_time,record_uuid,processor,processor_domain ,log_sn,close_type,link_num,analyze_result,analyze_state ,bpcs_num,bpcs_state,dts_num,dts_state ,create_time,update_time) VALUES ), Stack trace (when copying this message, always include the lines below):

0. Poco::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x10ed0da0 in /usr/bin/clickhouse
1. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int) @ 0x95c923d in /usr/bin/clickhouse
2. ? @ 0xe2c3b7a in /usr/bin/clickhouse
3. DB::StorageReplicatedMergeTree::write(std::__1::shared_ptr<DB::IAST> const&, DB::Context const&) @ 0xe26f359 in /usr/bin/clickhouse
4. DB::PushingToViewsBlockOutputStream::PushingToViewsBlockOutputStream(std::__1::shared_ptr<DB::IStorage> const&, DB::Context const&, std::__1::shared_ptr<DB::IAST> const&, bool) @ 0xdd3d03e in /usr/bin/clickhouse
5. DB::InterpreterInsertQuery::execute() @ 0xdd32447 in /usr/bin/clickhouse
6. ? @ 0xe074a59 in /usr/bin/clickhouse
7. DB::executeQuery(DB::ReadBuffer&, DB::WriteBuffer&, bool, DB::Context&, std::__1::function<void (std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)>) @ 0xe078553 in /usr/bin/clickhouse
8. DB::HTTPHandler::processQuery(Poco::Net::HTTPServerRequest&, HTMLForm&, Poco::Net::HTTPServerResponse&, DB::HTTPHandler::Output&) @ 0xe634b09 in /usr/bin/clickhouse
9. DB::HTTPHandler::handleRequest(Poco::Net::HTTPServerRequest&, Poco::Net::HTTPServerResponse&) @ 0xe6382ba in /usr/bin/clickhouse
10. Poco::Net::HTTPServerConnection::run() @ 0x10db5183 in /usr/bin/clickhouse
11. Poco::Net::TCPServerConnection::start() @ 0x10deebcb in /usr/bin/clickhouse
12. Poco::Net::TCPServerDispatcher::run() @ 0x10def05b in /usr/bin/clickhouse
13. Poco::PooledThread::run() @ 0x10f6db86 in /usr/bin/clickhouse
14. Poco::ThreadImpl::runnableEntry(void*) @ 0x10f68f80 in /usr/bin/clickhouse
15. start_thread @ 0x8609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
16. __clone @ 0x11f353 in /usr/lib/x86_64-linux-gnu/libc-2.31.so

1. 解决方法

被锁住的表为table,可以考虑复制一张ddl相同的表table_1,将数据复制到新表,再改名

sql 复制代码
insert into table_1 select * from table;
rename table to table_2 on cluster clickhouse_cluster;
rename table_1 to table on cluster clickhouse_cluster;
drop table table_2 on cluster clickhouse_cluster;

2. 查看只读表

sql 复制代码
select table,zookeeper_path,replica_path from `system`.replicas where is_readonly
相关推荐
+VX:Fegn089535 分钟前
计算机毕业设计|基于springboot + vue蛋糕店管理系统(源码+数据库+文档)
前端·数据库·vue.js·spring boot·课程设计
哈__2 小时前
KES-Operator重塑Kubernetes环境下的KES数据库集群管理
数据库·kubernetes·operator·kes
IvorySQL4 小时前
IvorySQL 5.6 发布:PG 18.6 内核升级,沙盒即开即用
数据库·人工智能·postgresql
CNSSIRD数据库5 小时前
中国企业环境信用数据库2003-2026
大数据·数据库·数据分析·论文笔记
fd32005 小时前
达梦数据库更新统计信息后仍走旧执行计划解决方案
数据库
华章酱6 小时前
MySQL幻读是怎么出现的
数据库·mysql·幻读
浅念-6 小时前
Redis基础详解:单线程模型、String与Hash数据结构
服务器·数据库·redis·sql·mysql·nosql数据库·nosql
updayday8546 小时前
离职域账号状态变更与Ping64操作记录核对
大数据·网络·数据库·安全·智能路由器
Nturmoils7 小时前
只恢复一张表,别把整个库都还回去
数据库
龙腾AI白云7 小时前
大语言模型:从语言理解到通用智能的跃迁
数据库·人工智能·机器学习·知识图谱