MS SQL Serverと同じように完全なPostgresバックアップを確実に取り、孤立したユーザーの世話をする方法について明確な答えが得られることを望んでいました。
私が読んだこととそれが間違っている可能性があることから、良いPostgreSQLブログを見つけることは困難でしたので、私にいくつかお勧めします。バックアップとSlonyを信頼できるように、このアプリの動作を理解する必要があります。レプリケーション。 custom
sを選択しているときにdirectory
、tar
、およびOID
形式でPgadminIIIから取得したバックアップを開発者に復元してもらったが、そのうちの2つは失敗したと述べたt load、tar
は実行しましたが、データではなくディレクトリのみでした。私は今とても混乱しています。
pg_dump
およびpg_dumpall
オプションがあります。バックアップしたいすべてアップこのデータベースをどこかにテストして復元し、必要なすべてのデータとバックアップが正常であることを確認します。結局、自動復元スクリプトを書きたいのですが、一度に1日ずつです。pg_dumpall
には、すべてをバックアップするはずの-globals
オプションがあるようですが、pg_dumpall
のヘルプには、-g, --globals-only dump only global objects, no databases
オプションではなく--globals
が表示されます。
pg_dumpall
は少なくとも外部キーをバックアップすると思いましたが、それでも「オプション」のようです。 documentation によると、pg_dumpall
を使用しても、外部キーをバックアップするために-o
オプションを使用する必要がありますが、外部をバックアップしたくない場合は本当に想像できません。キーとこれはデフォルトのオプションとしてより理にかなっています。
私はPostgreSQLサーバーを持っていましたが、アプリがデフォルトでOID
sをバックアップしない理由を理解することはできません!それはあなたが望む時間の99.9%のようです。
UPDATE 1:
Postgres documentation は、私が探していたglobals
オプションがこのバージョンのデフォルトのオプションであるように見えますが、それでも-o
オプションが必要です。誰かが、必要なすべてのものを使用して単一のデータベースを別の場所に復元するコマンドの例を確認または提供できる場合は、感謝します。
編集:私の質問を編集して、この質問の独自性を示すようにサイトから求められています。この質問は、問題を引き起こし、バックアップのOID、グローバルと非グローバルの違い、およびバックアップのバックアップではなくバックアップが適切であることを確認するための復元の推奨事項のテストを明確にします。回答により、バックアップ、グローバル/ OIDの把握、およびPostgresで毎晩cronジョブを使用したテストリストアプロセスを開始することができました。助けてくれてありがとう!
Pg_dumpallを使用して、PostgreSQLクラスタ全体をダンプできます。これがallデータベースと単一クラスターのすべてのグローバルです。サーバーのコマンドラインから、次のようにします。 (鉱山は、デフォルトのポートではなく、ポート5433でリッスンしています。)--cleanオプションが必要な場合と不要な場合があります。
$ pg_dumpall -U postgres -h localhost -p 5433 --clean --file=dump.sql
これには、グローバル(ユーザーとグループ、テーブルスペースなどに関する情報)が含まれます。
単一のデータベースをバックアップしてスクラッチサーバーに移動する場合、データベースをpg_dumpでダンプし、グローバルを次のいずれかでダンプします
pg_dumpall --globals-only
、またはpg_dumpall --roles-only
(役割のみが必要な場合)このような。
$ pg_dump -U postgres -h localhost -p 5433 --clean --file=sandbox.sql sandbox
$ pg_dumpall -U postgres -h localhost -p 5433 --clean --globals-only --file=globals.sql
出力は単なるテキストファイルです。
これらのファイルを別のサーバーに移動した後、まずグローバルをロードし、次にデータベースダンプをロードします。
$ psql -U postgres -h localhost -p 5433 < globals.sql
$ psql -U postgres -h localhost -p 5433 < sandbox.sql
Pg_dumpallは少なくとも外部キーをバックアップすると思いましたが、それでも「オプション」のようです。によると: http://www.postgresql.org/docs/9.1/static/app-pg-dumpall.html pg_dumpallを使用していても、外部キーをバックアップするには-oオプションを使用する必要があります
いいえ、そのリファレンスは、「applicationがOID列を何らかの方法で(たとえば、外部キー制約で)参照する場合に、このオプションを使用します。それ以外の場合、このオプションは使用しないでください。」 (強調が追加されています。)applicationがOID列を参照している可能性は低いと思います。このオプションを使用して「外部キーをバックアップ」する必要はありません。 (エディターまたはファイルビューアーでダンプファイルを読み取ります。)