美文网首页
clickhouse-FREEZE分区操作

clickhouse-FREEZE分区操作

作者: 越狱的灵感 | 来源:发表于2022-06-12 12:22 被阅读0次

原理

在对应的分区目录shard下创建一个linux 硬链接,不影响源表的读写,不占用额外的磁盘空间,也正因为如此切记不要修改文件权限,否则会破clickhouse的原始数据。

参考文档:https://clickhouse.tech/docs/en/sql-reference/statements/alter/partition/#alter_attach-partition-from

操作演示

1,冻结表

--冻结表之前建议OPTIMIZE下,合并一些分区,方便文件拷贝
OPTIMIZE TABLE demo_db.demo_table  FINAL
 
--冻结表
echo -n 'alter table demo_db.demo_table freeze' | clickhouse-client -h xxxx --port 29000 -u default --password xxxxx

注意:生产环境一般都是使用多磁盘存储策略,硬链接不是默认的/var/lib/clickhouse/shard/路径,是集群配置的多磁盘存储路径与store文件夹平级的路径,如我这边就是 /data*/clickhouse 路径。


1.png

2,查看表分区磁盘分布

--查看part在磁盘中的分布
SELECT name, table,disk_name, path FROM system.parts WHERE (table = 'demo_table')
2.png

注意:生产环境会有多个路径,都需要拷贝备份,注意记住path路径中的md5值。

3,备份文件到其他的目录(最好将路径也拷贝了,方便记住md5值)

cp -r /data4/clickhouse/shadow/1/store/ed5/ed52238e-30bf-4090-bc95-9207927d186c/20210510_0_1_2/   /data10/ck_backup

4,清空表数据(未破坏表元数据信息)

TRUNCATE TABLE demo_db.demo_table ON CLUSTER demo0100allp_v1

注意:当前操作的前提是没有破坏表的元数据,如果元数据破坏,需要拷贝到clickhouse的指定目录下,我这边是在 /ssd2/clickhouse/metadata。

5,restore表数据

--拷贝到detached目录
cp -r  /data10/ck_backup/* /data1/clickhouse/store/ed5/ed52238e-30bf-4090-bc95-9207927d186c/detached/
 
--授权
chown clickhouse:clickhouse -R /data1/clickhouse/store/ed5/ed52238e-30bf-4090-bc95-9207927d186c/detached/*
 
--attach 数据
echo -n "alter table demo_db.demo_table attach PART '20210510_0_1_2'" | clickhouse-client -h xxxx  --port 29000 -u default --password xxxx

注意:PART 和 PARTITION的区别。拷贝备份的数据到store路径下,切记md5路径要和之前的一样,但是磁盘可以随机选一个。查询数据,可以发现数据已经恢复。

6,删除shard目录下的文件。

Tips

alter table xxxx freeze 基本上没啥人会这样玩,而且要操作集群,机器一多就。。。比较麻烦 !!!一般是那种自动化的运维工具,这个功能还是可以用用。

相关文章

  • clickhouse-FREEZE分区操作

    原理 在对应的分区目录shard下创建一个linux 硬链接,不影响源表的读写,不占用额外的磁盘空间,也正因为如此...

  • windows操作EFI分区

    windows 操作EFI分区 实现 - 显示EFI分区 操作EFI分区重新打开一个命令行 打开notepad ...

  • linux 分区说明

    一、磁盘管理 1、分区类型:主分区、扩展分区、逻辑分区 2、分区要求: 分区不是必须的操作 主分区最多创建4个 主...

  • LVM扩展分区教程

    分区操作有风险,操作之前务必备份重要数据 1、原分区信息 2、 进行磁盘分区 如果是新增磁盘,则将新磁盘分区即可,...

  • 表分区查询与操作

    分区查询操作 查询是否分区表 或 或

  • SQL笔记

    分区查询操作 查询是否分区表 或 或

  • Spark_day04

    RDD的 Shuffle 和 分区 RDD的分区操作2.Shuffle 的原理 分区的作用 RDD 使用分区来分布...

  • Hive【基础02】 | 分区操作

    一、分区概念 二、分区操作 1. 创建分区表 2. 加载数据到分区表 3. 增加分区 4. 查看分区 5. 删除分...

  • partitionBy (通过分区器进行分区)

    作用:对pairRDD进行分区操作,通过指定的分区器决定数据计算的分区,spark默认使用的分区器是HashPar...

  • Mysql的分区详解

    分区: 分区的功能不是在存储引擎层实现的。因此不只是InnoDB才支持分区。MyISAM、NDB都支持分区操作。 ...

网友评论

      本文标题:clickhouse-FREEZE分区操作

      本文链接:https://www.haomeiwen.com/subject/rimjmrtx.html