0

我最近从 docker 容器备份了我的 Influx 数据库,现在有一个 .tar.gz 格式的备份文件。我想将此文件中的数据导入另一个 Influx 数据库,该数据库也在 docker 容器内运行。

我试图做的是使用 Chronograf 及其“写入数据”功能来导入备份的内容,因为它支持 .gz 文件,但似乎 Chronograf 只支持最大 25MB 的文件,而我的这个备份是70MB。我在"Docker Influx Documentation""InfluxDB Shell Documentation"中搜索了其他可能的方法来解决这个问题。我发现唯一相关的是 Shell 文档中引用的“-import”选项。我尝试使用它但无济于事。任何不是 InfluxDB shell 中直接查询的命令都被拒绝,我得到的只是一条错误消息,上面写着:ERR: error parsing query: found influx, expected SELECT, DELETE, SHOW, CREATE, DROP, EXPLAIN, GRANT, REVOKE, ALTER, SET, KILL at line 1, char 1

需要明确的是,我目前使用的是 Windows 10。

4

1 回答 1

0

我想到了:

  1. 将所需的备份文件从主机复制到容器:docker cp LOCAL_FILE CONTAINER_NAME:/etc/NEW_FILE其中 LOCAL_FILE 是主机上要复制的文件,CONTAINER_NAME 是 docker 容器的名称,/etc/ 是默认的且已经存在的目录,以及NEW_FILE 只是要获取 LOCAL_FILE 数据的文件的名称。

  2. 进入您的 Docker 容器文件系统:docker exec -it CONTAINER_NAME /bin/bash并导航到您复制 NEW_FILE 的位置。

  3. 创建一个新文件夹(为清楚起见将其命名为“备份”)并将 NEW_FILE 的内容提取到其中。

  4. 使用以下命令将备份还原到新数据库:influxd restore -portable -newdb NEW_DATABASE_NAME backup

对于最后一步中的任何替代选项,请转到此处的文档

于 2019-09-16T13:47:45.377 回答