0

最近、Docker コンテナーから Influx データベースをバックアップしたところ、.tar.gz 形式のバックアップ ファイルが作成されました。このファイルのデータを、docker コンテナー内で実行されている別の Influx データベースにインポートしたいと考えていました。

私がやろうとしたのは、Chronograf とその「データの書き込み」機能を使用して、.gz ファイルをサポートしているため、バックアップの内容をインポートすることでしたが、Chronograf はサイズが最大 25MB のファイルのみをサポートしているようで、私のこのバックアップは70MB。「Docker Influx Documentation」および「InfluxDB Shell Documentation」で、これを解決するための他の可能な方法を検索しました。私が関連していると思ったのは、シェルのドキュメントで参照されている「-import」オプションだけでした。使ってみましたがだめでした。InfluxDB シェルでの直接クエリではないコマンドはすべて拒否され、次のようなエラー メッセージしか表示されませんでした。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. 新しいフォルダーを作成し (わかりやすくするために「backup」という名前を付けます)、そのフォルダーに NEW_FILE の内容を抽出します。

  4. 次を使用して、バックアップを新しいデータベースに復元します。influxd restore -portable -newdb NEW_DATABASE_NAME backup

最後のステップの代替オプションについては、こちらのドキュメントにアクセスしてください

于 2019-09-16T13:47:45.377 に答える