【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
相关推荐
youtootech6 小时前
HarmonyOS《柚兔学伴》项目实战08-关系型数据库入门——待办事项持久化
jvm·数据库·华为·harmonyos
微三云 - 廖会灵 (私域系统开发)6 小时前
电商系统国际化架构设计:多语言、多币种、多时区、多税制的全链路实现
java·前端·数据库
周杰伦的稻香6 小时前
PostgreSQL中的METHOD(认证方法)
数据库·postgresql
万岳科技系统开发6 小时前
智慧医院小程序开发满足医疗机构多场景服务需求
数据库·学习·小程序
kisbad7 小时前
Day 012|Embedding 和向量数据库:知识库检索到底在检什么
数据库·python·embedding·agent
谷禾牛博7 小时前
肠道菌群检测流程及差异和技术门槛在哪里?
数据库·经验分享·功能测试
Zhu7587 小时前
对docker环境的postgresql数据库做快速初始化
数据库·docker·postgresql
Wang's Blog7 小时前
Go-Zero项目开发5: 数据库与缓存一致性问题及 go-zero 缓存机制解析
数据库·缓存·golang
布朗克1687 小时前
Go 入门到精通-18-文件操作
java·数据库·golang
ShoreKiten8 小时前
SQL注入之SQL Server增删改查
数据库·sql