Influxdb 从XDB导出数据
是否有方法(插件或工具)从数据库(或数据库本身)导出数据?我正在寻找此功能,因为我需要将数据库从当前主机迁移到另一个主机。您可以转储每个表并通过REST接口加载它们: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
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中使用。这(转储和恢复)必须针对每个碎片单独完成,对吗?