美文网首页
ClickHouse 21.7.3.14-2(十四) 监控及备份

ClickHouse 21.7.3.14-2(十四) 监控及备份

作者: _大叔_ | 来源:发表于2021-11-15 13:01 被阅读0次

    监控

    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;
    

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

    备份

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

    创建备份路径

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

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

    执行备份命令

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

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

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

    #创建备份存储路径
    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/*
    

    恢复数据

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

    echo 'drop table 表名' | clickhouse-client
    

    恢复

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

    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
    

    使用 clickhouse-backup

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

    # 下载
    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
    

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

    相关文章

      网友评论

          本文标题:ClickHouse 21.7.3.14-2(十四) 监控及备份

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