• Linux系统InfluxDB数据和日志目录迁移教程


    前言:

    生产环境上,InfluDB数据存储所在磁盘即将无存储空间时,需要将数据迁移到更大的磁盘,或者机械硬盘更换固态硬盘时,都需要迁移旧数据,本文将介绍InfluxDB v1.8.x版本的数据迁移方法步骤。

    一.关闭InfluxDB写入服务和数据库

    1.需要对写入InfluxDB的服务进行停机,防止生产数据丢失,如果微服务是集群部署的,记得全部关闭。
    2.关闭InfluxDB数据库,任意目录下即可执行关闭命令:

    sudo service influxdb stop
    
    • 1

    二.在新磁盘上创建目录

    我们在新磁盘上创建出InfluxDB数据和日志的目录,方便复制数据,并且对文件夹进行读写权限授权,保证influxDB可以有写入新文件夹数据的权限。

    例:我这里的新磁盘位置是 /mnt/,在此目录下,为InfluxDB创建出/influxdb/metainfluxdb/datainfluxdb/walinfluxdb/logs四个文件夹,用于存储数据和日志,后面会讲解这几个文件夹如何配置。

    mkdir -p /mnt/influxdb/meta
    mkdir -p /mnt/influxdb/data
    mkdir -p /mnt/influxdb/wal
    mkdir -p /mnt/influxdb/logs
    
    ## 授权
    chmod -R 777 /mnt/influxdb
    chmod -R 777 /mnt/influxdb/data/
    chmod -R 777 /mnt/influxdb/meta
    chmod -R 777 /mnt/influxdb/wal
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    注意:datametawal 文件夹如果不授权,InfluxDB数据无法写入,会报错:

    在这里插入图片描述

    三.迁移数据到新目录

    InfluxDB默认数据存放位置在var/lib/influxdb,我们需要把旧数据全部复制到新目录:

    问题:为啥是复制数据而不是剪切?

    答:因为万一迁移失败,我们可以恢复下原来的配置文件,即可正常启动InfluxDB,数据库依然完好如初。
    等迁移顺利完成,验证数据没有丢失后,我们再将旧数据删除即可,生产环境,所有操作都要给自己留后路。

    迁移数据命令:

    cp -r   /var/lib/influxdb/data/*   /mnt/influxdb/data
    cp -r   /var/lib/influxdb/meta/*   /mnt/influxdb/meta
    cp -r   /var/lib/influxdb/wal/*   /mnt/influxdb/wal
    
    • 1
    • 2
    • 3

    四.修改influxdb.conf配置文件

    配置文件所在路径:/etc/influxdb/

    我们需要修改3个地方:

    #dir = "/var/lib/influxdb/meta"
    #meta路径,修改为:
      dir = "/mnt/influxdb/meta"
    
     #dir = "/var/lib/influxdb/data"
     #data路径,修改为:
      dir = "/mnt/influxdb/data"
    
    #wal-dir = "/var/lib/influxdb/wal"
    #wal路径,修改为:
      wal-dir = "/mnt/influxdb/wal"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    配置文件重启数据库后,自动生效。

    五.迁移日志

    1.创建日志过滤规则

    为了让InfluxDB运行日志输出到指定目录,我们需要配置个规则:

    cd /etc/rsyslog.d
    
    • 1

    在上面的rsyslog.d目录手动创建一个配置文件名为:influxdb.conf,其内容如下:

    ## 指定日志输出到:/mnt/influxdb/logs/influxdb.log
    if $programname == 'influxd' then {
       action(type="omfile" file="/mnt/influxdb/logs/influxdb.log")
       stop
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.创建日志文件

    将上一步中,规则配置文件指定的文件,手动创建出来:

    cd /mnt/influxdb/logs
    touch influxdb.log
    
    • 1
    • 2

    3.重启系统日志

    systemctl restart rsyslog
    
    • 1

    六.启动InfluxDB数据库

    任意目录下即可执行启动命令:

    sudo service influxdb start
    
    • 1

    查看运行日志:

    cd /mnt/influxdb/logs
    tail -f influxdb.log
    
    • 1
    • 2

    如果日志输出如下,则表示迁移成功,数据库正常运行:
    在这里插入图片描述
    此时可以使用InfluxDB studio连接查询测试一下,没问题就可以启动应用服务了。

    总结

    本文介绍了InfluxDB v1.8.x版本,数据目录和日志目录的迁移,数据迁移可以使InfluxDB磁盘扩容或者磁盘更换不影响正常使用,也不会丢失数据,日志迁移可以方便我们找到和查看InfluxDB运行日志,日志文件会逐渐增大,也不会撑爆系统盘导致InfluxDB宕机。希望本教程可以帮助你顺利完成数据迁移,喜欢本文请点赞、关注、收藏。

  • 相关阅读:
    数据治理指标标准实践
    描述符——接口描述符
    数据分析综述
    第 21 章 InnoDB Cluster
    Multi-Graph Fusion Networks for Urban Region Embedding
    自定义spring-boot-starter
    利用鸿蒙系统硬件实现音乐播放功能之优秀
    浅谈‘过早优化’
    zotero插件推荐
    【Python】使用 pyecharts 模块绘制动态时间线柱状图 ① ( 列表排序 | 使用 sorted 函数对容器进行排序 | 使用 list.sort 函数对列表进行排序 | 设置排序函数 )
  • 原文地址:https://blog.csdn.net/x541211190/article/details/128069223