技术博客 技术博客
  • JAVA
  • 仓颉
  • 设计模式
  • 人工智能
  • Spring
  • Mybatis
  • Maven
  • Git
  • Kafka
  • RabbitMQ
  • RocketMQ
  • Redis
  • Zookeeper
  • Nginx
  • 数据库套件
  • MySQL
  • Elasticsearch
  • MongoDB
  • Hadoop
  • ClickHouse
  • Hbase
  • Hive
  • Flink
  • Flume
  • SQLite
  • linux
  • Docker
  • Jenkins
  • Kubernetes
  • 工具
  • 前端
  • AI
GitHub (opens new window)
  • JAVA
  • 仓颉
  • 设计模式
  • 人工智能
  • Spring
  • Mybatis
  • Maven
  • Git
  • Kafka
  • RabbitMQ
  • RocketMQ
  • Redis
  • Zookeeper
  • Nginx
  • 数据库套件
  • MySQL
  • Elasticsearch
  • MongoDB
  • Hadoop
  • ClickHouse
  • Hbase
  • Hive
  • Flink
  • Flume
  • SQLite
  • linux
  • Docker
  • Jenkins
  • Kubernetes
  • 工具
  • 前端
  • AI
GitHub (opens new window)
  • mysql

    • MySQL 问题汇总
    • MySQL 索引介绍
    • MySQL 锁介绍
    • MySQL 索引优化工具 explain
    • MySQL 主从复制(GTID)
    • MySQL 8安装
    • MySQL 8.x新特性总结
    • MySQL UDF以及新类型JSON
    • MySQL 高可用MGR(一) 理论
    • MySQL 高可用MGR(二) 搭建
    • MySQL 高可用MGR(三) 测试
  • Elasticsearch

    • ES 7.8.0(一) 入门介绍
    • ES 7.8.0(二) 读、写和写索引流程以及文档分析过程
    • ES 7.8.0(三) 文档冲突
  • mongodb

    • mongodb
  • hadoop

    • Hadoop 伪分布式及集群
    • Hadoop 指令
    • Hadoop 读写流程详解
    • Hadoop SpringBoot集成
    • Hadoop MapReduce机制
    • Hadoop YARN
    • Hadoop MapReduce配置和编写job及数据倾斜的解决
    • Hadoop MapReduce自定义格式输入输出
  • clickhouse

    • ClickHouse 介绍及安装
    • ClickHouse 数据类型
    • ClickHouse 表引擎
    • ClickHouse SQL操作
    • ClickHouse 副本配置
    • ClickHouse 分片与集群部署
    • ClickHouse Explain及建表优化
    • ClickHouse 语法优化规则
    • ClickHouse 查询优化
    • ClickHouse 数据一致性
    • ClickHouse 物化视图
    • ClickHouse MaterializeMySQL引擎
    • ClickHouse 监控及备份
      • 监控
      • 备份
        • 创建备份路径
        • 执行备份命令
        • 将备份数据保存到其他路径
        • 恢复数据
      • 使用 clickhouse-backup
  • hbase

    • Hbase 介绍及安装
    • Hbase 优化
    • Hbase phoenix安装及使用
    • Hbase LSM-TREE
  • hive

    • Hive 介绍及安装
    • Hive 内外部表、分区表、分桶表概念及hiveSQL命令
    • Hive 数据类型
    • Hive 函数 MySQL联合
    • Hive 数据倾斜和优化
    • Hive Sqoop安装及指令
  • flink

    • Flink 介绍及安装
    • Flink 配置介绍及Demo
    • Flink API讲解
    • Flink 运行架构
    • Flink 时间语义及Watermark
    • Flink 状态管理
    • Flink 容错,检查点,保存点
    • Flink 状态一致性
    • Flink Table API 和 Flink SQL
    • Flink CEP编程
    • Flink Joining编程
    • Flink CDC
  • flume

    • Flume 日志收集系统介绍及安装
    • Flume Source支持的类型
    • Flume Sink支持的类型
    • Flume Channel支持的类型
    • Flume Selector
    • Flume Interceptor拦截器类型
    • Flume Process
  • sqlite

    • SQLite介绍
目录

ClickHouse 监控及备份

本文及后续所有文章都以 21.7.3.14-2 做为版本讲解和入门学习

# 监控

ClickHouse 运行时会将一些个自身的运行状态记录到众多系统表中 (system.*)。所以我们对于 CH 自身的一些运行指标的监控数据,也主要来自这些系统表。

但是直接查询这些系统表会有一些不足之处:

  • 这种方式太过底层,不够直观,我们还需要在此之上实现可视化展示;
  • 系统表只记录了 CH 自己的运行指标,有些时候我们需要外部系统的指标进行关联分析,例如 ZooKeeper、服务器 CPU、IO 等等。

现在 Prometheus + Grafana 的组合比较流行,安装简单易上手,可以集成很多框架,包括服务器的负载,其中 Prometheus 负责收集各类系统的运行指标;Grafana 负责可视化的部分。

ClickHouse 从 v20.1.2.4 开始,内置了对接 Prometheus 的功能,配置的方式也很简单,可以将其作为 Prometheus 的 Endpoint 服务,从而自动的将 metrics 、 events 和 asynchronous_metrics 三张系统的表的数据发送给 Prometheus。

select * from system.metrics;
select * from system.events;
select * from system.asynchronous_metrics;
1
2
3

具体的监控配置可以见 链接:https://pan.baidu.com/s/1KdVZ9h-h5x-HjzBLsadaXA 提取码:tffo

# 备份

ClickHouse 允许使用 ALTER TABLE ... FREEZE PARTITION ... 查询以创建表分区的本地副本。这是利用硬链接 (hardlink) 到 /var/lib/clickhouse/shadow/ 文件夹中实现的,所以它通常不会因为旧数据而占用额外的磁盘空间。 创建的文件副本不由 ClickHouse 服务器处理,所以不需要任何额外的外部系统就有一个简单的备份。防止硬件问题,最好将它们远程复制到另一个位置,然后删除本地副本。官方地址 (opens new window)

# 创建备份路径

创建用于存放备份数据的目录 shadow,shadow 只能相当于一个中转站。

mkdir -p /var/lib/clickhouse/shadow/
# 修改权限
chown clickhouse:clickhouse shadow
1
2
3

# 执行备份命令

在外部执行命令,冻结的表依然可以使用,不会导致无法使用的。

echo -n 'alter table 表名 freeze' | clickhouse-client
1

# 将备份数据保存到其他路径

#创建备份存储路径
mkdir -p /var/lib/clickhouse/backup/

#拷贝数据到备份路径
cp -r /var/lib/clickhouse/shadow/ /var/lib/clickhouse/backup/表名-时间

# 修改备份文件的所有权限
chown -R clickhouse:clickhouse backup/

#为下次备份准备,删除 shadow 下的数据
rm -rf /var/lib/clickhouse/shadow/*
1
2
3
4
5
6
7
8
9
10
11

# 恢复数据

可以把之前的表先删掉,然后重新建表

echo 'drop table 表名' | clickhouse-client
1

恢复

cp -rl /var/lib/clickhouse/backup/表名-时间/1/store/一串uuid/* data/default/表名/detached/
1

ClickHouse 使用文件系统硬链接来实现即时备份,而不会导致 ClickHouse 服务停机(或锁定)。这些硬链接可以进一步用于有效的备份存储。在支持硬链接的文件系统(例如本地文件系统或 NFS)上,将 cp 与 -l 标志一起使用(或将 rsync 与 –hard-links 和 –numeric-ids 标志一起使用)以避免复制数据。

执行 attach

# 整张表恢复
echo 'alter table 表名 attach' | clickhouse-client
# 按分区恢复
echo 'alter table 表名 attach partition 20200601' | clickhouse-client
1
2
3
4

# 使用 clickhouse-backup

上面的过程,我们可以使用 Clickhouse 的备份工具 clickhouse-backup 帮我们自动化实现。工具地址 (opens new window)

# 下载
wget https://github.com/AlexAkulov/clickhouse-backup/releases/download/v1.2.1/clickhouse-backup-1.2.1-1.x86_64.rpm
# 安装
rpm -ivh clickhouse-backup-1.0.0-1.x86_64.rpm
# 查看命令
clickhouse-backup help
# 显示要备份的表
 clickhouse-backup tables
# 创建备份
clickhouse-backup create
# 备份到远程
clickhouse-backup upload
# 创建并备份到远程机器
clickhouse-backup create_remote
# 恢复
clickhouse-backup restore 备份的文件
# 查看现有的本地备份
clickhouse-backup list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

备份存储在中 /var/lib/clickhouse/backup/BACKUPNAME。备份名称默认为时间戳,但是可以选择使用–name 标志指定备份名称。备份包含两个目录:一个 “metadata” 目录,其中包含重新创建架构所需的 DDL SQL 语句;以及一个 “shadow” 目录,其中包含作为 ALTER TABLE ...FREEZE 操作结果的数据。

上次更新: 6/11/2025, 4:10:30 PM
ClickHouse MaterializeMySQL引擎
Hbase 介绍及安装

← ClickHouse MaterializeMySQL引擎 Hbase 介绍及安装→

Theme by Vdoing | Copyright © 2023-2025
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式