当前位置:网站首页>Accidentally deleted the data file of Clickhouse, can it be restored?
Accidentally deleted the data file of Clickhouse, can it be restored?
2022-07-04 05:35:00 【Common program ape】
I believe that for those who want to use it in the production environment clickhouse For children's shoes , We will definitely pay attention to the reliability of data storage , There are three common ways to achieve this :
- Bottom disk do RAID : This method is similar to CH It doesn't matter , It belongs to the protection mechanism at the hardware level
- utilize CH Provided ReplicatedMergeTree The engine stores multiple copies , This is the focus of this article , Let's talk about it in detail later
- Backup data regularly , When you need to restore, manually execute the command to import , This method is detailed in above
What will be described below is on the premise of making copies , Same old thing , Let's start the journey of exploration by asking and answering ~~
Q1: Go straight ahead , Let's say you accidentally deleted the data file , Can you recover ?
The answer must be yes , But the premise is that what I said above ReplicatedMergeTree The engine made a copy , And the copy data is not damaged .
Q2: Will it automatically recover ? Still need to execute any command ?
forehead , I can only say that it is semi-automatic , Because if you accidentally delete one parts In the catalog bin file , The system will not detect it automatically , Unless you restart the service ( I think in most cases we are definitely unwilling to do so ..). When will it be tested ? When you again select When querying this table , The detection will be triggered immediately , for the first time select The query will throw you an exception , Prompt that the file corresponding to this block cannot be found , Here's the picture :
If you query again, you won't report an error , Of course, you can't find the missing data in this local table , Isn't that a lie ? I thought it could be restored automatically ? Don't worry. , Because it's no use rushing , because CH Data loss has been detected in the background , It will throw the task of data recovery into a queue , But it will not immediately perform the tasks in the queue , But will wait for a period of time , I'm not sure how long it will take , My observation here is about ten minutes , When I checked the lost data again, I found that the data had been recovered . Do I have to wait so long ? Can you trigger automatic recovery immediately ? unfortunately , I haven't found the corresponding method , If any friend knows , Welcome to leave a message ~~
Q3: Then how do you know that there are tasks waiting in line behind the scenes ?
The two methods :
- One is to read the log
/var/log/clickhouse-server/clickhouse-server.log, You can see it when you query again ReplicatedMergeTreePartCheckThread Log
- Look at the system table
system.replication_queue
Q4: Go a little deeper , How does it judge that my file is damaged ?
It must be inseparable from you zookeeper Brother ,zookeeper Metadata information of each fragment and replica is recorded in , The checking thread compares the local file with zk Whether the metadata on is consistent , If it's not consistent , Will put the previous parts Directory move to detached Under the table of contents , And will parts The directory name is prefixed broken, And write a background task to the queue , Tell it to get from the replica node . When this task is actually called , It will send a request to the replica node , Copy the lost data back from the remote .
There is zk Under the circumstances , In case zk I don't work anymore ? Will still check , But this time it parts Directory move to detached After the catalog , The prefix added becomes unexpected, At this time, no background tasks will be submitted , There is no way to recover automatically .
summary
Let's summarize briefly , Three conditions for lost data recovery :
- This table uses ReplicatedMergeTree engine
- zookeeper Normal work
- The copy file was not damaged during this period
Meet the above three conditions , Your data will be more secure ~~
边栏推荐
- How to configure static IP for Kali virtual machine
- What are the reasons for the frequent high CPU of ECS?
- 【QT】制作MyComboBox点击事件
- 数据标注是一块肥肉,盯上这块肉的不止中国丨曼孚科技
- Thread pool: use thread pool to optimize query speed
- 光模块字母含义及参数简称大全
- 十二. golang其他
- Use of hutool Pinyin tool
- Flink1.13 basic SQL syntax (II) join operation
- FreeRTOS 中 RISC-V-Qemu-virt_GCC 的 锁机制 分析
猜你喜欢
![BUU-Crypto-[GUET-CTF2019]BabyRSA](/img/87/157066155e8d3a93e30a68eaf1781b.jpg)
BUU-Crypto-[GUET-CTF2019]BabyRSA

Actual cases and optimization solutions of cloud native architecture
![How to use postman to realize simple interface Association [add, delete, modify and query]](/img/e9/bf89eacdebcf2ec84c8a08c28b9ca8.png)
How to use postman to realize simple interface Association [add, delete, modify and query]

2022年T电梯修理操作证考试题库及模拟考试

2022年R2移动式压力容器充装复训题库及答案

ansys命令

Ping port artifact psping
![[QT] timer](/img/df/5db6af851ef19f33fd7e7a7ed46586.png)
[QT] timer
![[paper summary] zero shot semantic segmentation](/img/78/ee64118d86a7e43ec4d1cb97191fbe.jpg)
[paper summary] zero shot semantic segmentation

What is MQ?
随机推荐
C language simple student management system (including source code)
Graduation design of small programs -- small programs of food and recipes
Halcon图片标定,使得后续图片处理过后变成与模板图片一样
LC周赛300
What is MQ?
[wechat applet] template and configuration (wxml, wxss, global and page configuration, network data request)
Analysis of classical pointer and array written test questions in C language
IP时代来临,电竞酒店如何借好游戏的“东风”?
C语言简易学生管理系统(含源码)
Canoe panel learning video
Evolution of system architecture: differences and connections between SOA and microservice architecture
2022 t elevator repair operation certificate examination question bank and simulation examination
Flutter calls Gaode map app to realize location search, route planning and reverse geocoding
1480. 一维数组的动态和
2022年A特种设备相关管理(电梯)考试题模拟考试平台操作
[matlab] matlab simulation modulation system FM system
Yyds dry goods inventory TCP & UDP
How to use postman to realize simple interface Association [add, delete, modify and query]
LM small programmable controller software (based on CoDeSys) note 22: error 4268/4052
June 2022 summary