【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
相关推荐
霖霖总总43 分钟前
[小技巧19]MySQL 权限管理全指南:用户、角色、授权与安全实践
数据库·mysql·安全
heartbeat..5 小时前
Spring AOP 全面详解(通俗易懂 + 核心知识点 + 完整案例)
java·数据库·spring·aop
麦聪聊数据7 小时前
MySQL并发与锁:从“防止超卖”到排查“死锁”
数据库·sql·mysql
AC赳赳老秦8 小时前
DeepSeek 私有化部署避坑指南:敏感数据本地化处理与合规性检测详解
大数据·开发语言·数据库·人工智能·自动化·php·deepseek
YMatrix 官方技术社区9 小时前
YMatrix 存储引擎解密:MARS3 存储引擎如何超越传统行存、列存实现“时序+分析“场景性能大幅提升?
开发语言·数据库·时序数据库·数据库架构·智慧工厂·存储引擎·ymatrix
辞砚技术录10 小时前
MySQL面试题——索引2nd
数据库·mysql·面试
linweidong10 小时前
C++thread pool(线程池)设计应关注哪些扩展性问题?
java·数据库·c++
欧亚学术11 小时前
突发!刚刚新增17本期刊被剔除!
数据库·论文·sci·期刊·博士·scopus·发表
黑白极客11 小时前
怎么给字符串字段加索引?日志系统 一条更新语句是怎么执行的
java·数据库·sql·mysql·引擎
大厂技术总监下海12 小时前
数据湖加速、实时数仓、统一查询层:Apache Doris 如何成为现代数据架构的“高性能中枢”?
大数据·数据库·算法·apache