• ClickHouse监控及备份


    1.监控概述

    ClickHouse 运行时会将一些个自身的运行状态记录到众多系统表中( system.*)。所以我们对于 CH 自身的一些运行指标的监控数据,也主要来自这些系统表。
    但是直接查询这些系统表会有一些不足之处:
    ➢ 这种方式太过底层,不够直观,我们还需要在此之上实现可视化展示;
    ➢ 系统表只记录了 CH 自己的运行指标,有些时候我们需要外部系统的指标进行关联分析,例如 ZooKeeper、服务器 CPU、IO 等等。
    现在 Prometheus + Grafana 的组合比较流行,安装简单易上手,可以集成很多框架,包括服务器的负载, 其中 Prometheus 负责收集各类系统的运行指标; Grafana 负责可视化的部分。
    ClickHouse 从 v20.1.2.4 开始,内置了对接 Prometheus 的功能,配置的方式也很简单,可以将其作为 Prometheus 的 Endpoint 服务,从而自动的将 metrics 、 events 和asynchronous_metrics 三张系统的表的数据发送给 Prometheus。
     

    2.ClickHouse配置

    2.1修改配置文件

    vim /etc/clickhouse-server/config.xml
    <prometheus>
        <endpoint>/metrics</endpoint>
        <port>9363</port>
        <metrics>true</metrics>   
        <events>true</events>
        <asynchronous_metrics>true</asynchronous_metrics>
        <status_info>true</status_info>
    </prometheus>
    如果有多个 CH 节点,分发配置。
    重启CK
    clickhouse-server restart
     
    看到信息说明 ClickHouse 开启 Metrics 服务成功。
     
     
    可在此处找模板,拿着模板ID直接拷贝到grafana中即可
    可用14432这个模板
     

      

    数据备份官网参考:
     

    3.手动实现备份及恢复

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

    3.1创建备份路径

    (1)创建用于存放备份数据的目录 shadow
    sudo mkdir -p /var/lib/clickhouse/shadow/
    chown clickhouse:clickhouse /var/lib/clickhouse/shadow/
    如果目录存在,先清空目录下的数据
     

    3.2执行备份命令

    echo -n 'alter table t_order_rmt freeze' | clickhouse-client --password
     

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

    #创建备份存储路径
    sudo mkdir -p /var/lib/clickhouse/backup/
    #拷贝数据到备份路径
    sudo cp -r /var/lib/clickhouse/shadow/ /var/lib/clickhouse/backup/my-backup-name
    #为下次备份准备,删除 shadow 下的数据
    sudo rm -rf /var/lib/clickhouse/shadow/*
     

    3.4恢复数据

    (1)模拟删除备份过的表
    echo ' drop table t_order_rmt ' | clickhouse-client --password
     
    (2)重新创建表
    CREATE TABLE default.t_order_rmt
    (
        `id` UInt32,
        `sku_id` String,
        `total_amount` Decimal(16, 2),
        `create_time` DateTime
    )
    ENGINE = ReplacingMergeTree(create_time)
    PARTITION BY toYYYYMMDD(create_time)
    PRIMARY KEY id
    ORDER BY (id, sku_id)
    SETTINGS index_granularity = 8192;
     
    (3)将备份复制到 detached 目录
    sudo cp -rl  backup/my-backup-name/1/store/6c4/6c493710-ae3e-4847-a0e2-e98132de3f40/* data/default/t_order_rmt/detached/
    ClickHouse 使用文件系统硬链接来实现即时备份,而不会导致ClickHouse 服务停机(或锁定)。这些硬链接可以进一步用于有效的备份存储。在支持硬链接的文件系统(例如本地文件系统或NFS)上,将 cp 与-l 标志一起使用(或将 rsync 与–hard-links 和–numeric-ids 标志一起使用)以避免复制数据。
     
    (4)执行 attach
    echo 'alter table t_order_rmt attach partition 20200601'| clickhouse-client --password
    (5)查看数据
    [root@superset-BI clickhouse]# echo 'select count() from t_order_rmt' | clickhouse-client --password
    Password for user (default):
    3
    成功
     
     

    4.使用clickhouse-backup

    4.1下载安装

    将 clickhouse-backup-1.0.0-1.x86_64.rpm 上传至/opt/software/目录下,安装:
    sudo rpm -ivh clickhouse-backup-1.0.0-1.x86_64.rpm
     

    4.2配置文件

    cat /etc/clickhouse-backup/config.yml
     

    4.3创建备份

    (1)查看可用命令
    clickhouse-backup help
    (2)显示要备份的表
    clickhouse-backup tables
    (3)创建备份
    sudo clickhouse-backup create
    (4)查看现有的本地备份
    sudo clickhouse-backup list
    备份存储在中/var/lib/clickhouse/backup/BACKUPNAME。备份名称默认为时间戳,但是可以选择使用–name 标志指定备份名称。备份包含两个目录:一个“metadata”目录,其中包含重新创建架构所需的 DDL SQL 语句;以及一个“shadow”目录,其中包含作为 ALTER TABLE ...FREEZE 操作结果的数据。
     

    4.4从备份恢复数据

    (1)模拟删除备份过的表
    echo 'drop table t_order_rmt' | clickhouse-client --password
    (2)从备份还原
    sudo clickhouse-backup restore 2021-07-25T23-14-50
    --schema 参数:只还原表结构。
    --data 参数:只还原数据。
    --table 参数:备份(或还原)特定表。也可以使用一个正则表达式,例如,针对特定的数据库:--table=dbname.*。
     
    其它
    (1)API 文档:https : //github.com/AlexAkulov/clickhouse-backup#api
    (2)注意事项:切勿更改文件夹/var/lib/clickhouse/backup 的权限,可能会导致数据损坏。
    (3)远程备份
    ➢ 较新版本才支持,需要设置 config 里的 s3 相关配置
    ➢ 上传到远程存储:sudo clickhouse-backup upload xxxx
    ➢ 从远程存储下载:sudo clickhouse-backup download xxxx
    ➢ 保存周期: backups_to_keep_local,本地保存周期,单位天
    backups_to_keep_remote,远程存储保存周期,单位天0 均表示不删除
     
     
     
  • 相关阅读:
    pig实战 pig常用语法总结,教你快速入门——算法篇
    本科生码农应该会的6种基本排序算法(《数据结构与算法》)
    java 大块内存做数据缓存 大数据的高效收发
    一键安装zookeeper脚本制作篇 相关经验浅谈
    C语言第01次作业顺序、分支结构
    C语言 第三次作业函数
    hashmap笔记
    ArrayList排序与对象的序列化
    插入排序笔记(MIT算法导论课程)
    java解析四则运算表达式
  • 原文地址:https://www.cnblogs.com/EnzoDin/p/16255817.html
Copyright © 2020-2023  润新知