前言:

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

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

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

sudo service influxdb stop

二.在新磁盘上创建目录

我们在新磁盘上创建出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

注意: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

四.修改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.创建日志过滤规则

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

cd /etc/rsyslog.d

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

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

2.创建日志文件

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

cd /mnt/influxdb/logs
touch influxdb.log

3.重启系统日志

systemctl restart rsyslog

六.启动InfluxDB数据库

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

sudo service influxdb start

查看运行日志:

cd /mnt/influxdb/logs
tail -f influxdb.log

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

总结

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

Logo

更多推荐