当前位置:网站首页>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 ~~
边栏推荐
- Evolution of system architecture: differences and connections between SOA and microservice architecture
- FreeRTOS 中 RISC-V-Qemu-virt_GCC 的 锁机制 分析
- [技术发展-25]:广播电视网、互联网、电信网、电网四网融合技术
- 2022 R2 mobile pressure vessel filling retraining question bank and answers
- Flink1.13 SQL basic syntax (I) DDL, DML
- What are the reasons for the frequent high CPU of ECS?
- [matlab] matlab simulation - low pass Gaussian white noise
- 19.Frambuffer应用编程
- Descriptive analysis of data distribution characteristics (data exploration)
- Programming example of stm32f1 and stm32subeide -74hc595 drives 4-bit 7-segment nixie tube
猜你喜欢

KMP match string

2022年A特种设备相关管理(电梯)考试题模拟考试平台操作

2022g2 power station boiler stoker special operation certificate examination question bank and answers

Unity is connected to the weather system

RSA加密应用常见缺陷的原理与实践

ansys命令

Flutter ‘/usr/lib/libswiftCore. dylib‘ (no such file)

2022 t elevator repair operation certificate examination question bank and simulation examination

What is MQ?

空洞卷积、可变形卷积、可变形ROI Pooling
随机推荐
Signification des lettres du module optique et abréviation des paramètres Daquan
VB. Net calls ffmpeg to simply process video (class Library-6)
[wechat applet] template and configuration (wxml, wxss, global and page configuration, network data request)
Notepad++--显示相关的配置
[matlab] matlab simulates digital baseband transmission system eye diagram of bipolar baseband signal (cosine roll off forming pulse)
BUU-Real-[PHP]XXE
[QT] create mycombobox click event
Viewing and using binary log of MySQL
724. Find the central subscript of the array
【雕爷学编程】Arduino动手做(105)---压电陶瓷振动模块
2022 t elevator repair operation certificate examination question bank and simulation examination
JS string splicing enhancement
Graduation design of small programs -- small programs of food and recipes
力扣(LeetCode)184. 部门工资最高的员工(2022.07.03)
1480. 一维数组的动态和
[matlab] matlab simulation modulation system - DSB system
Talk about the SQL server version of DTM sub transaction barrier function
LC weekly 300
Analysis of classical pointer and array written test questions in C language
1480. Dynamic sum of one-dimensional array