【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
相关推荐
xier_ran2 小时前
【infra之路】GPU 存储层次总结:L1 / L2 / HBM
java·网络·数据库
山甫aa3 小时前
Javaweb---MyBatis增删改查
java·数据库·后端·mybatis·springboot
@insist1234 小时前
系统集成项目管理工程师-信息和文档管理
网络·数据库·软考·系统集成项目管理工程师·软考中项·软件水平考试
残 风6 小时前
PostgreSQL 存储机制详解
数据库·postgresql·开源·数据库开发
JacksonMx6 小时前
Java CompletableFuture 异步编程实战:从入门到架构师避坑指南
linux·数据库·python
tachibana26 小时前
性能指标的口径选择
数据库·人工智能·架构·大模型·llm
机器人梦想家7 小时前
具身机器人视觉服务的异步回调与并发控制
数据库·算法·机器人
小妖同学学AI8 小时前
开源向量数据库的王者:Milvus 深度解析,专为 AI 应用打造的云原生搜索引擎!
数据库·开源·milvus
l1258658 小时前
# RAG上线评估指标体系:六大核心指标与压测实战全解析
数据库·人工智能·python·mysql·langchain·milvus