clickhouse-backup备份还原表需要注意的问题
clickhouse-backup备份还原表需要注意的问题
通过clickhouse-bakcup备份而后还原一些对象,比如表。
还原的时候会直接将表的数据状态重置为备份时候的样子,就是备份是什么样子,还原之后就是什么样子。
(Oracle的数据泵用久了就觉得其他数据库的类型工具功能太简单了,有点不习惯)
备份一张表。
CK01 :) select count(*) from zkm.zkm; SELECT count(*) FROM zkm.zkm Query id: 23cd0253-2d96-4522-bfd9-68fd860f7f46 ┌─count()─┐ │ 100 │ └─────────┘ 1 rows in set. Elapsed: 0.003 sec. [root@dev-app76 zkm]# clickhouse-backup create -t zkm.zkm [root@dev-app76 zkm]# clickhouse-backup list 2023/03/27 11:17:48.609140 info clickhouse connection prepared: tcp://localhost:9000 run ping logger=clickhouse 2023/03/27 11:17:48.612478 info clickhouse connection open: tcp://localhost:9000 logger=clickhouse 2023/03/27 11:17:48.612580 info SELECT value FROM `system`.`build_options` where name='VERSION_INTEGER' logger=clickhouse 2023/03/27 11:17:48.619137 info SELECT * FROM system.disks; logger=clickhouse 2023-03-27T03-17-21 4.42KiB 27/03/2023 03:17:21 local 2023/03/27 11:17:48.627518 info clickhouse connection closed logger=clickhouse
模拟业务对表数据做变更。
CK01 :) insert into zkm.zkm select * from zkm.zkm; INSERT INTO zkm.zkm SELECT * FROM zkm.zkm Query id: 25e8bad9-9f09-44e9-a3fc-bb1db39b1cca Ok. 0 rows in set. Elapsed: 0.014 sec. CK01 :) select count(*) from zkm.zkm; SELECT count(*) FROM zkm.zkm Query id: ecd76c71-b978-4bcb-bd8e-70b336730e81 ┌─count()─┐ │ 200 │ └─────────┘ 1 rows in set. Elapsed: 0.003 sec. CK01 :) optimize table zkm.zkm final; OPTIMIZE TABLE zkm.zkm FINAL Query id: 52d0047f-4042-4396-a8ca-d2fd1912a6a8 Ok. 0 rows in set. Elapsed: 0.006 sec.
表在磁盘生分区目录情况。
[root@dev-app76 zkm]# pwd /clickhouse/data/zkm/zkm [root@dev-app76 zkm]# ll total 20 drwxr-x--- 2 clickhouse clickhouse 4096 Mar 27 11:15 all_1_1_0 drwxr-x--- 2 clickhouse clickhouse 4096 Mar 27 11:18 all_1_2_1 drwxr-x--- 2 clickhouse clickhouse 4096 Mar 27 11:18 all_2_2_0 drwxr-x--- 2 clickhouse clickhouse 4096 Mar 27 11:15 detached -rw-r----- 1 clickhouse clickhouse 1 Mar 27 11:15 format_version.txt ...隔一段时间... [root@dev-app76 zkm]# ll total 12 drwxr-x--- 2 clickhouse clickhouse 4096 Mar 27 11:18 all_1_2_1 drwxr-x--- 2 clickhouse clickhouse 4096 Mar 27 11:15 detached -rw-r----- 1 clickhouse clickhouse 1 Mar 27 11:15 format_version.txt
PS:中间分区目录合并后,目录“all_1_1_0”里边的文件硬链接数原本是2,合并完成后目录消失。
而目录“/clickhouse/backup/2023-03-27T03-17-21/shadow/zkm/zkm/default/all_1_1_0”的硬链接数从2变为1。
备份文件的对应表的分区目录情况。
[root@dev-app76 default]# pwd /clickhouse/backup/2023-03-27T03-17-21/shadow/zkm/zkm/default [root@dev-app76 default]# ll total 4 drwxr-x--- 2 root root 4096 Mar 27 11:17 all_1_1_0
还原表。
[root@dev-app76 zkm]# clickhouse-backup restore 2023-03-27T03-17-21 -t zkm.zkm 2023/03/27 11:30:41.426243 info clickhouse connection prepared: tcp://localhost:9000 run ping logger=clickhouse 2023/03/27 11:30:41.430581 info clickhouse connection open: tcp://localhost:9000 logger=clickhouse 2023/03/27 11:30:41.430648 info SELECT value FROM `system`.`build_options` where name='VERSION_INTEGER' logger=clickhouse 2023/03/27 11:30:41.437394 info SELECT * FROM system.disks; logger=clickhouse 2023/03/27 11:30:41.446092 info SELECT engine FROM system.databases WHERE name = 'zkm' logger=clickhouse 2023/03/27 11:30:41.453617 info DROP TABLE IF EXISTS `zkm`.`zkm` NO DELAY logger=clickhouse 2023/03/27 11:30:41.459703 info CREATE DATABASE IF NOT EXISTS `zkm` logger=clickhouse 2023/03/27 11:30:41.463289 info CREATE TABLE zkm.zkm UUID '70b9d6ee-793b-48d9-992a-53c247e95885' (`SEQ_NO` String, `CODE_SCC` String, `TRADE_CODE` String, `IE_FLAG` String, `CODE_TS` String, `TRADE_MARKET` String, `TRADE_MODE` String, `AMOUNT_RMB` Float32, `AMOUNT_USD` Float32, `STAT_DATE` Date, `CREATE_TIME` DateTime, `CRE_DATE` Date) ENGINE = MergeTree ORDER BY CREATE_TIME SETTINGS index_granularity = 8192 logger=clickhouse 2023/03/27 11:30:41.473515 info SELECT count() FROM system.settings WHERE name = 'show_table_uuid_in_table_create_query_if_not_nil' logger=clickhouse 2023/03/27 11:30:41.480224 info SELECT name FROM system.databases WHERE engine IN ('MySQL','PostgreSQL','MaterializedPostgreSQL') logger=clickhouse 2023/03/27 11:30:41.485506 info SELECT countIf(name='data_path') is_data_path_present, countIf(name='data_paths') is_data_paths_present, countIf(name='uuid') is_uuid_present, countIf(name='create_table_query') is_create_table_query_present, countIf(name='total_bytes') is_total_bytes_present FROM system.columns WHERE database='system' AND table='tables' logger=clickhouse 2023/03/27 11:30:41.493416 info SELECT database, name, engine , data_paths , uuid , create_table_query , coalesce(total_bytes, 0) AS total_bytes FROM system.tables WHERE is_temporary = 0 AND match(concat(database,'.',name),'zkm\.zkm') ORDER BY total_bytes DESC SETTINGS show_table_uuid_in_table_create_query_if_not_nil=1 logger=clickhouse 2023/03/27 11:30:41.594886 info SELECT sum(bytes_on_disk) as size FROM system.parts WHERE active AND database='zkm' AND table='zkm' GROUP BY database, table logger=clickhouse 2023/03/27 11:30:41.603278 info ALTER TABLE `zkm`.`zkm` ATTACH PART 'all_1_1_0' logger=clickhouse 2023/03/27 11:30:41.608316 info done backup=2023-03-27T03-17-21 operation=restore table=zkm.zkm 2023/03/27 11:30:41.608378 info done backup=2023-03-27T03-17-21 duration=135ms operation=restore 2023/03/27 11:30:41.608416 info done backup=2023-03-27T03-17-21 operation=restore 2023/03/27 11:30:41.608478 info clickhouse connection closed logger=clickhouse
表在磁盘生分区目录情况。
[root@dev-app76 zkm]# pwd /clickhouse/data/zkm/zkm [root@dev-app76 zkm]# ll total 12 drwxr-x--- 2 clickhouse clickhouse 4096 Mar 27 11:30 all_1_1_0 drwxr-x--- 2 clickhouse clickhouse 4096 Mar 27 11:30 detached -rw-r----- 1 clickhouse clickhouse 1 Mar 27 11:30 format_version.txt
数据条数变为了100条。
CK01 :) select count(*) from zkm; SELECT count(*) FROM zkm Query id: d3563bee-fe41-476b-9d96-362056e7ef10 ┌─count()─┐ │ 100 │ └─────────┘ 1 rows in set. Elapsed: 0.003 sec.
分类:
ClickHouse
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?