当前位置:网站首页>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 ~~
边栏推荐
- Zzulioj:1201: mode problem
- SQL performance optimization skills
- Simulated small root pile
- Programmers don't talk about morality, and use multithreading for Heisi's girlfriend
- Evolution of system architecture: differences and connections between SOA and microservice architecture
- LM小型可编程控制器软件(基于CoDeSys)笔记二十二:错误4268/4052
- IP时代来临,电竞酒店如何借好游戏的“东风”?
- Remote desktop client RDP
- 724. Find the central subscript of the array
- Letter meaning and parameter abbreviation of optical module Daquan
猜你喜欢

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

C语言简易学生管理系统(含源码)

Principle and practice of common defects in RSA encryption application
![BUU-Crypto-[HDCTF2019]basic rsa](/img/d0/8e451dabb2a6897f6680220d16d04d.jpg)
BUU-Crypto-[HDCTF2019]basic rsa

ETCD数据库源码分析——初始化总览

Unity is connected to the weather system

Letter meaning and parameter abbreviation of optical module Daquan

VB.net GIF(制作、拆解——优化代码,类库——5)

如何使用postman实现简单的接口关联【增删改查】

ANSYS command
随机推荐
[matlab] communication signal modulation general function - low pass filter
力扣(LeetCode)184. 部门工资最高的员工(2022.07.03)
c语言经典指针和数组笔试题解析
XII Golang others
Daily question brushing record (12)
[wechat applet] template and configuration (wxml, wxss, global and page configuration, network data request)
Etcd database source code analysis - initialization overview
BUU-Crypto-Cipher
LC weekly 300
2022 t elevator repair operation certificate examination question bank and simulation examination
BUU-Reverse-easyre
2022危险化学品经营单位安全管理人员上岗证题库及答案
2022年T电梯修理操作证考试题库及模拟考试
Two sides of the evening: tell me about the bloom filter and cuckoo filter? Application scenario? I'm confused..
[matlab] communication signal modulation general function interpolation function
Simulink and Arduino serial port communication
How to use postman to realize simple interface Association [add, delete, modify and query]
Leetcode 184 Employees with the highest wages in the Department (July 3, 2022)
Risc-v-qemu-virt in FreeRTOS_ Lock mechanism analysis of GCC
ping端口神器psping