Is there a way (plugin or tool) to export the data from the database (or database itself) ? I'm looking for this feature as I need to migrate a DB from present host to another one.
7 Answers
Export data:
sudo service influxdb start (Or leave this step if service is already running)
influxd backup -database grpcdb /opt/data
grpcdb is name of DB and back up will be saved under /opt/data directory in this case.
Import 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
You could dump each table and load them through REST interface:
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"
Or, maybe you want to add new host to cluster? It's easy and you'll get master-master replica for free. Cluster Setup
As ezotrank says, you can dump each table. There's a missing "-d" in ezotrank's answer though. It should be:
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, sorry, I would've just posted a comment directly on your answer, but I don't have enough reputation points to do that yet.)
From 1.5
onwards, the InfluxDB OSS backup utility provides a newer option which is much more convenient:
-portable
: Generates backup files in the newer InfluxDB Enterprise-compatible format. Highly recommended for all InfluxDB OSS users
Export
To back up everything:
influxd backup -portable <path-to-backup>
To backup only the myperf database:
influxd backup -portable -database myperf <path-to-backup>
Import
To restore all databases found within the backup directory:
influxd restore -portable <path-to-backup>
To restore only the myperf database (myperf database must not exist):
influxd restore -portable -db myperf <path-to-backup>
Additional options include specifying timestamp
, shard
etc. See all the other supported options here.
If You want to export in an readable format, the inspect command is to prefer. To export the database with the name HomeData the command is:
sudo influx_inspect export -waldir /var/lib/influxdb/wal -datadir /var/lib/influxdb -out "influx_backup.db" -database HomeData
The parameters for -waldir and -datdir can be found in /etc/influxdb/influxdb.conf.
To import this file again, the command is:
influx -import -path=influx_backup.db
If you have access to the machine running Influx db I would say use the influx_inspect command. The command is simple and very fast. It will dump your db in line protocol. You can then import this dump using influx -import command.