私はPostgresqlのデータダンプファイルを持っています。 PostgreSQLコンテナをドッキングしたときにリストアが行われるように、そのバックアップをデータ専用コンテナにリストアするにはどうしたらいいですか?PostgresデータベースをDockerコンテナに復元するので、Postgresの起動時にDBが適切な場所にあります
2
A
答えて
0
別のフォルダにあるホストに空のpostgresqlデータベースを作成し、PostgreSQLデーモンを起動してデータをインポートし、それを単にコンテナにマウントするのが最も簡単です。以下のスクリプトを使用して/tmp/postgres-mem
フォルダにDBを作成し、そこにデータをインポートすることができます。あなたがthis approachを検討する必要がありますしかし
#!/bin/bash
export PGDIR=/tmp/postgres-mem
pg_ctl -D "$PGDIR" stop
rm -vfr "$PGDIR"
mkdir "$PGDIR"
pg_ctl init -D "$PGDIR"
pg_ctl -D "$PGDIR" start -o "-h localhost -c fsync=off -c synchronous_commit=off -c full_page_writes=off -c log_destination='stderr' -c logging_collector=on -c log_directory='pg_log' -c log_filename='postgresql-%Y-%m-%d_%H%M%S.log' -c log_statement='all' -k /tmp/postgres-mem"
sleep 3
psql -h localhost -c 'create user cooluser with superuser' template1
psql -h localhost -c 'create database "whatever"' template1
、その後
psql -U cooluser whatever < your_dump_file.sql
は、あなたのデータコンテナ
には/ tmp/postgresの-MEMの内容をコピーします。
1
StackOverflowのは簡潔にある答え私はthereに書かれているものを繰り返しpenaltizes通り:
- はコンテナ
- 実行バックアップを復元するために、一時的なPostgresのコンテナデータを作成します。データのみのコンテナとローカルバックアップを含むディレクトリを添付します。
- 復元コンテナに接続します。コンテナ内
- postgresqlユーザーに切り替え
- 復元するデータベースのスーパーユーザーと一致するパスワードを作成します。
- \ qでpsqlセッションを終了します。コンテナ内にまだあります。
- コマンドプロンプトでバックアップを復元します。
- 最終的なDocker Postgresコンテナを作成します。前の手順で復元が行われたデータベースの正しい名前を指定することに注意してください。
- は、データ
+0
各ステップでコマンド例を表示すると、あなたの答えはもっと意味があります。乾杯 – Sarz
関連する問題
- 1. フォルダからpostgres dbを復元する
- 2. Postgres DBがDockerで起動していない - Mac
- 3. dockerコンテナからlocalhost postgresデータベースに接続するには?
- 4. Docker Shipyard GUIの起動時にコンテナがありません
- 5. docker-composeで起動するとすぐにPostgresがシャットダウンする
- 6. Postgres JDBCドライバ(postgresql-42.1.4.jar)をLinuxにインストールするための適切な場所
- 7. dockerコンテナを使用してpostgresデータベースに接続する方法
- 8. postgresデータベースを復元するときに何がエラーになるか?
- 9. postgres dockerコンテナでユーザを作成する
- 10. pgダンプのないPostgresデータベースを復元しますか?
- 11. Dockerコンテナの起動時にbashスクリプトを起動できない
- 12. postgres DBをローカルのリキットに復元することは可能ですか
- 13. PGdataフォルダからPostgresデータベースを回復する適切な方法は?
- 14. ClassNotFoundException:しかし、クラスが適切な場所にあります
- 15. Dockerコンテナ内のPostgresに接続する際の認証エラー
- 16. 私のpostgresをダウングレードすると、私のpostgresデータベースには何が起こりますか?
- 17. Postgres警告:復元時に無視されるエラー:59
- 18. フォーム選択ドロップダウンオプションが適切な場所にありません
- 19. Aureliaブレークポイントが適切な場所にありません
- 20. angleディレクティブが適切な場所にありません
- 21. LinuxサーバでPostgresデータベースの場所をどのようにカスタマイズしますか?
- 22. エントリポイントの定義時にDockerコンテナが再起動する
- 23. 起動時にDockerコンテナでTomcatがフリーズする
- 24. データベースが別のサーバにある場合のpostgres gemのインストール
- 25. postgres、ubuntu起動時にサービスを再起動するには?インスタンスの再起動後にクラスタリングに突入する
- 26. 古いデータディレクトリを持つ新しいPostgresデータベースを復元する
- 27. データフォルダ以外の場所にpostgresデータベースを格納
- 28. なぜジャンゴテスト--keep-DBは、Postgresデータベースで動作しますが、デフォルトのsqlite3ので
- 29. Dockerコンテナの1つがマシンの起動時に自動的に起動しないのはなぜですか?
- 30. docker container内からホスト上のpostgresデータベースにアクセスするには?
発信元のPostgreSQLインスタンスがそのようにあなたが提案するアプローチは、しかし、動作しませんDockerizedていなかっただけでボリュームへのバックアップを復元するために使用されるコンテナを削除します。 – JohnDoe
さて、まだ特定のpostgresqlインスタンス用のデータベースで初期化されたファイルシステムを取得する必要があります。そして、それをどうやって得るのかはまったく問題ではありません:) – jdevelop