有没有办法(插件或工具)从数据库(或数据库本身)导出数据?我正在寻找这个功能,因为我需要将DB从当前主机迁移到另一个主机。
答案 0 :(得分:30)
导出数据:
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
答案 1 :(得分:17)
您可以转储每个表并通过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"
或者,您是否想要将新主机添加到群集?这很容易,你可以免费获得master-master副本。 Cluster Setup
答案 2 :(得分:15)
正如ezotrank所说,你可以转储每张桌子。缺少" -d"但是在ezotrank的回答中。它应该是:
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,对不起,我会直接在你的回答上发表评论,但我还没有足够的声誉来做到这一点。)
答案 3 :(得分:12)
如果我使用curl,我会收到超时,如果我使用influxd backup
,则不能使用我可以阅读的格式。
我得到了这样的好结果:
influx -host influxdb.mydomain.com -database primary -format csv -execute "select time,value from \"continuous\" where channel='ch123'" > outtest.csv
答案 4 :(得分:2)
如果您有权访问运行Influx db的计算机,我会说使用influx_inspect命令。该命令非常简单且非常快速。它将把您的数据库转储到line protocol中。然后,您可以使用influx -import命令导入此转储。
答案 5 :(得分:2)
从1.5
开始,InfluxDB OSS备份实用程序提供了一个更新的选项,该选项更加方便:
-portable
:以较新的InfluxDB Enterprise兼容格式生成备份文件。强烈建议所有InfluxDB OSS用户
导出
要备份所有内容:
influxd backup -portable <path-to-backup>
仅备份myperf数据库:
influxd backup -portable -database myperf <path-to-backup>
导入
要还原在备份目录中找到的所有数据库,请执行以下操作:
influxd restore -portable <path-to-backup>
仅还原myperf数据库(myperf数据库必须不存在):
influxd restore -portable -db myperf <path-to-backup>
其他选项包括指定timestamp
,shard
等。请参阅所有其他受支持的选项here。
答案 6 :(得分:1)
如果要以可读格式导出,则首选使用inspect命令。 要导出名称为HomeData的数据库,命令为:
sudo influx_inspect export -waldir /var/lib/influxdb/wal -datadir /var/lib/influxdb -out "influx_backup.db" -database HomeData
-waldir和-datdir的参数可以在/etc/influxdb/influxdb.conf中找到。
要再次导入此文件,命令为:
influx -import -path=influx_backup.db