当前位置:网站首页>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 ~~
边栏推荐
- [matlab] matlab simulation modulation system FM system
- VB.net GIF(制作、拆解——优化代码,类库——5)
- Programmers don't talk about morality, and use multithreading for Heisi's girlfriend
- Write a complete answer applet (including single choice questions, judgment questions and multiple topics) (III) single choice questions, judgment questions, and the first question display
- FreeRTOS 中 RISC-V-Qemu-virt_GCC 的 锁机制 分析
- [技术发展-25]:广播电视网、互联网、电信网、电网四网融合技术
- Flink1.13 basic SQL syntax (II) join operation
- 2022年A特种设备相关管理(电梯)考试题模拟考试平台操作
- C language simple student management system (including source code)
- 724. Find the central subscript of the array
猜你喜欢
How to configure static IP for Kali virtual machine
Introduction To AMBA 简单理解
2022年T电梯修理操作证考试题库及模拟考试
VB.net 简单的处理图片,黑白(类库——7)
Principle and practice of common defects in RSA encryption application
SQL injection - injection based on MSSQL (SQL Server)
光模块字母含义及参数简称大全
Analysis of classical pointer and array written test questions in C language
云原生架构实战案例及优化解决方案
How to use postman to realize simple interface Association [add, delete, modify and query]
随机推荐
Flink1.13 SQL basic syntax (I) DDL, DML
Void convolution, deformable convolution, deformable ROI pooling
BUU-Real-[PHP]XXE
What is MQ?
总线的基本概念
十二. golang其他
[matlab] general function of communication signal modulation Fourier transform
光模块字母含义及参数简称大全
VB. Net calls ffmpeg to simply process video (class Library-6)
Trie number dictionary tree
transformer坑了多少算力
Simulated small root pile
如何使用postman实现简单的接口关联【增删改查】
SQL performance optimization skills
2022 a special equipment related management (elevator) examination questions simulation examination platform operation
LM小型可编程控制器软件(基于CoDeSys)笔记二十一:错误3703
2022 question bank and answers for safety management personnel of hazardous chemical business units
Electronic components mall and data manual download website summary
Penetration tool - sqlmap
Signification des lettres du module optique et abréviation des paramètres Daquan