データのバックアップを取りたいのですが、
簡単かつ確実な方法はありますでしょうか?
自分は今まで /var/lib/postgresql/virsion/main 以降を単にコピーしておいて、
それを別サーバで復元するなりする際にそのまま入れてやればよいものとばかり思っておりました。
その方法をとった場合、
psqlに入ろうとしたとき、
psql: error: could not connect to server: そのようなファイルやディレクトリはありません
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
のようなエラーが発生しました。
因みにpostgresqlのバージョンは2つほど違うものに入れました。(それが原因ではないと思う...)
やはり専用のツールなどで行うことになるのでしょうか。
※もちろんバックアップ作業中はpostgresを停止しています。
※サーバAのpostgres 10 からサーバBのpostgres 12 へリストアしようとしています。
pg_dump とか pg_restore とか…。
https://qiita.com/rice_american/items/ceae28dad13c3977e3a8
ありがとうございます。
あまりツールを使用せず物理的にバックアップができたらと考えているのですが、
難しいでしょうか?
pg_dump や pg_restore は postgresql を普通に入れれば付いてくると思いますし、スクリプト形式でダンプすれば SQL コマンドとして出力されるのでリストアはツールなくても (psql があれば) できます。
というか、postgresql 10 から 12 って、ファイル形式が変わってる可能性が高い気がします。リストア (復元) とは同じ状態を再現するという意味で、バージョンが変わればリストアではなく移行 (migration) と言うのでは…。
何を以って簡単と言うかですが、先ずは、ロールとか権限の理解をしてからだと思います。
> あまりツールを使用せず物理的にバックアップができたらと考えているのですが
仮想サーバやクラウドなら、「サーバごとコピー・バックアップする」ような選択肢もありえます。
停止してバックアップ&リストアを行うなら別に間違ってません。
https://www.postgresql.jp/document/12/html/backup.html における「ファイルシステムレベルのバックアップ」ですね。
それが別バージョンで動くかは別の話で、ドキュメントでは pg_dumpall を推奨しています。
https://www.postgresql.jp/document/12/html/upgrading.html
> あまりツールを使用せず物理的にバックアップができたら
そういう謎のこだわりは捨てて、公式のドキュメントを読むべきと思います。
それはそれとして、psql のエラーは PostgreSQL を起動させていない or 起動時にエラーが発生して失敗しているのでしょう (別バージョンのファイルを持っていったのでエラーになっているのかもしれないし、それ以外の理由かもしれない)。
回答2件
あなたの回答
tips
プレビュー