Influxdb 从XDB导出数据

Influxdb 从XDB导出数据,influxdb,Influxdb,是否有方法(插件或工具)从数据库(或数据库本身)导出数据?我正在寻找此功能,因为我需要将数据库从当前主机迁移到另一个主机。您可以转储每个表并通过REST接口加载它们: curl "http://hosta:8086/db/dbname/series?u=root&p=root&q=select%20*%20from%20series_name%3B" > series_name.json curl -XPOST -d @series_name.json "http://ho

是否有方法(插件或工具)从数据库(或数据库本身)导出数据?我正在寻找此功能,因为我需要将数据库从当前主机迁移到另一个主机。

您可以转储每个表并通过REST接口加载它们:

curl "http://hosta:8086/db/dbname/series?u=root&p=root&q=select%20*%20from%20series_name%3B" > series_name.json
curl -XPOST -d @series_name.json "http://hostb:8086/db/dbname/series?u=root&p=root"

或者,您想向集群添加新主机吗?这很简单,你可以免费获得主副本

正如ezotrank所说,您可以转储每个表。但ezotrank的答案中缺少“-d”。应该是:

curl "http://hosta:8086/db/dbname/series?u=root&p=root&q=select%20*%20from%20series_name%3B" > series_name.json
curl -XPOST -d @series_name.json "http://hostb:8086/db/dbname/series?u=root&p=root"
(Ezotrank,对不起,我本想直接在你的答案上发表评论,但我还没有足够的信誉点来发表评论。)

导出数据:

sudo service influxdb start (Or leave this step if service is already running)
influxd backup -database grpcdb /opt/data  
grpcdb是DB的名称,在本例中,备份将保存在/opt/data目录下

导入数据:

sudo service influxdb stop  (Service should not be running)
influxd restore -metadir /var/lib/influxdb/meta /opt/data
influxd restore -database grpcdb -datadir /var/lib/influxdb/data /opt/data
sudo service influxdb start

如果我使用curl,我会超时,如果我使用
influxd backup
它的格式我看不懂

我得到了这样的好结果:

influx -host influxdb.mydomain.com -database primary -format csv -execute "select time,value from \"continuous\" where channel='ch123'" > outtest.csv

如果您可以访问运行influxdb的机器,我会说使用这个命令。该命令简单且非常快速。它会将您的数据库转储到中。然后可以使用命令导入此转储

1.5
开始,XDB OSS备份实用程序提供了一个更新的选项,更加方便:

-portable
:以新的XDB Enterprise兼容格式生成备份文件。强烈建议所有XDB OSS用户使用

出口

要备份所有内容,请执行以下操作:

influxd backup -portable <path-to-backup>
influxd备份-可移植
要仅备份myperf数据库,请执行以下操作:

influxd backup -portable -database myperf <path-to-backup>
influxd备份-可移植-数据库myperf
进口

要还原在备份目录中找到的所有数据库,请执行以下操作:

influxd restore -portable <path-to-backup>
xd恢复-可移植
要仅还原myperf数据库(myperf数据库必须不存在),请执行以下操作:

influxd restore-portable-db myperf

其他选项包括指定
时间戳
分片
等。请参阅所有其他支持的选项。

如果要以可读格式导出,最好使用inspect命令。 要导出名为HomeData的数据库,命令为:

sudo influx_inspect export -waldir /var/lib/influxdb/wal -datadir /var/lib/influxdb -out "influx_backup.db" -database HomeData
influx -import -path=influx_backup.db
-waldir和-datdir的参数可以在/etc/influxdb/influxdb.conf中找到

要再次导入此文件,命令为:

sudo influx_inspect export -waldir /var/lib/influxdb/wal -datadir /var/lib/influxdb -out "influx_backup.db" -database HomeData
influx -import -path=influx_backup.db

在处理海量数据库时,这确实是唯一可行的方法。是的,假设OP正在迁移到另一个XDB主机(希望是同一版本),而不是其他类型的数据库。B.1有一种新的(更好的)备份/恢复数据机制,请参见N.B.2。导入数据后,再次确保
/var/lib/influxdb
influxdb:influxdb
所有,即通过运行
sudo chown-R influxdb:influxdb/var/lib/influxdb
或“curl-G”?--数据urlencode“db=dbname”--数据urlencode“q=SELECT*FROM series_name”注意
json
数据导入到influxdb v0.9时不起作用(请参阅),Ammad的答案效果更好。不能在最新版本的influxdb中使用。这(转储和恢复)必须针对每个碎片单独完成,对吗?