TxSQL binlog 日志清理方法

  其他常见问题
内容纲要

概要描述


TxSQL 数据目录空间占用高,存在大量 binlog 文件,是否可以进行清理,如何进行清理?
本文主要介绍清理 TxSQL binlog 日志文件的方法。

详细说明


  1. TxSQL 数据目录查看

    $ grep DATA_DIR /etc/txsql1/conf/install_conf.sh
     DATA_DIR=/vdir/mnt/disk1/hadoop/txsql1

    以上输出为 TxSQL 容器数据目录,物理节点 hostPath 则为去掉 /vdir 的部分 /mnt/disk1/hadoop/txsql1

  2. 进入数据目录查看文件占用情况
    $ cd /mnt/disk1/hadoop/txsql1/percona.workspace/binlog/ && ls -lrt
    file
  3. 找到当前节点的 TxSQL pod,并进入 pod

    $ kubectl get po -o wide | grep txsql1
    $ kubectl exec -it txsql-server-txsql1-997564c5c-457hp  bash  # txsql-server-txsql1-997564c5c-457hp 为上面获取到的 pod name

    file

  4. 进入当前 TxSQL 的 mysql 客户端
    $ /usr/bin/txsql/tools/txsql.sh localshell
  5. 查看 binlog 文件

    mysql> show master status\G;  -- 查看当前使用的 binlog 文件
    mysql> show binary logs;  -- 查看所有的 binlog 文件

    file
    file

  6. 使用 purge 命令,把 mysql-bin.XXXXXX 之前的所有文件都清理掉
    mysql-bin.XXXXXX 这个参数一般应该写上一步列出的编号最大的文件;
    如果文件较多,建议分批次执行,避免一次性清理 IO 过大。

    mysql> purge binary logs to 'mysql-bin.000054';
    mysql> purge binary logs to 'mysql-bin.000057'; 

    file

  7. 检查是否清理成功
    再次执行 show binary logs;
    file
    退出容器,查看节点数据目录 cd /mnt/disk1/hadoop/txsql1/percona.workspace/binlog/ && ls -lrt,之前的文件已经被清理
    file
  8. 同样的步骤清理其余 TxSQL 节点
    如果其他 TxSQL 节点也存在占用问题,参考之前的步骤进行清理即可
  9. 全部清理完毕,检查 TxSQL 状态
    每个 TxSQL 节点都清理完毕后,参考第 3 步的命令连接到任意健康的 TxSQL pod,执行命令检查状态,正常会输出 ok 和 master 节点信息
    $ /usr/bin/txsql/tools/txsql.sh status
    file

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。