タグ付けされた質問 「pg-dump」

1
動作する完全なPostgreSQL DBバックアップとテストを取得する方法
MS SQL Serverの場合と同じようにPostgresの完全なバックアップを作成し、孤立したユーザーの世話をする方法について明確な答えが得られることを望んでいました。 私が読んだことから、それは間違っている可能性がありますが、良いPostgreSQLブログを見つけることは挑戦的でしたので、私にいくつかをお勧めしてくださいレプリケーション。開発者customにdirectory、tarを選択してPgadminIIIから取得したバックアップを復元し、OIDs を選択してフォーマットしましたが、2つはロードされtarませんでしたが、データではなくディレクトリのみでしたと彼は言い​​ました。今は本当に混乱しています。 私はPGAdminIIIを使用していますが、オプションがpg_dumpありpg_dumpallます。このデータベースをどこかでテスト復元するために必要なすべてのものをバックアップし、必要なすべてのデータとバックアップが適切であることを確認したいと思います。最終的には、一度に1日に1回、自動復元スクリプトを書きたいと思います。 pg_dumpall明らかに-globalsすべてをバックアップすることになっているオプションがありますが、ヘルプはオプションではなくをpg_dumpall示して-g, --globals-only dump only global objects, no databasesい--globalsます。 pg_dumpall少なくとも外部キーをバックアップすると思っていましたが、それでも「オプション」のようです。ドキュメントによれば、外部キーをバックアップpg_dumpallする-oオプションを使用する必要がある場合でも、外部キーをバックアップしたくない時期は本当に想像できません。これはデフォルトオプションとしてより理にかなっています。 孤立したユーザーをどのように処理し、すべてが揃っているかを検証するにはどうすればよいですか?実際にバックアップファイルを別のサーバーに復元し、すべてが機能することを確認したいと思います。PostgreSQLで実際のバックアップを作成して復元する方法について誰かが何か提案をしてくれたら、とても感謝しています。 PostgreSQLサーバーがありましたが、なぜアプリがOIDデフォルトでsをバックアップしないのか、まだ推測できません!あなたがそれを望むだろう時間の99.9%のようです。 更新1: Postgresのドキュメントでは、globals私が探していたオプションはこのバージョンのデフォルトオプションのようですが、それでも-oオプションが必要であると述べています。誰かが必要なすべてを備えた単一のデータベースを別の場所に復元するためのコマンドを確認したり、私にサンプルを提供したりできるなら、ありがたいです。 編集:サイトから質問を編集して、この質問の一意性を示すように求められます。この質問により、問題が発生し、バックアップのOID、グローバルと非グローバルの違い、およびバックアップが適切であるかどうかを確認するための復元推奨事項のテストが明確になります。答えがあったので、cronジョブを使用してPostgresでバックアップ、グローバル/ OIDの把握、およびテスト復元プロセスを毎晩開始することができました。助けてくれてありがとう!

2
ダンプの復元中にすべての制約とテーブルチェックを無効にします
私は私のPostgreSQLデータベースのダンプを取得しました: pg_dump -U user-name -d db-name -f dumpfile 次に、次のコマンドを使用して別のデータベースに復元します。 psql X -U postgres -d db-name-b -f dumpfile 私の問題は、データベースに参照制約、チェック、トリガーが含まれていることと、これらのチェック(特にチェック)の一部が復元中に失敗することです。たとえば、テーブルへの行の挿入は、他の無関係なテーブルで条件が成立するかどうかをチェックCHECKするplpgsql関数を呼び出すに関連付けられます。後者のテーブルがpsql前者の前に読み込まれない場合、エラーが発生します。 以下は、一度ダンプするpg_dumpと復元できないデータベースを生成するSSCCEです。 CREATE OR REPLACE FUNCTION fail_if_b_empty () RETURNS BOOLEAN AS $$ SELECT EXISTS (SELECT 1 FROM b) $$ LANGUAGE SQL; CREATE TABLE IF NOT EXISTS a ( i INTEGER NOT NULL ); …

4
pg_dumpで拡張機能をスキップするにはどうすればよいですか?
これは9.3にありますが、7.x以降に発生した同様のことを覚えています。そこで、データベースを作成し、plpgsql拡張機能をインストールします。後でpg_dumpを作成し、それをデータベースに復元する前に、plpgsql拡張機能も持っていることを確認します。次に、これを復元するときに発生します: pg_restore: creating EXTENSION plpgsql pg_restore: creating COMMENT EXTENSION plpgsql pg_restore: [archiver (db)] Error while PROCESSING TOC: pg_restore: [archiver (db)] Error from TOC entry 2053; 0 0 COMMENT EXTENSION plpgsql pg_restore: [archiver (db)] could not execute query: ERROR: must be owner of extension plpgsql Command was: COMMENT ON EXTENSION plpgsql …

4
Postgresデータベースのすべてのデータを削除する
--data-onlyand --column-insertsフラグを使用して本番サーバーから新しいdbダンプを作成したので、ステージングサーバーで復元を実行するときにデータを挿入するための挿入ステートメントの束しかありません。 pg_dump -h localhost -U adminuser --data-only --column-inserts maindb > maindb.sql 本番ダンプからデータを復元する前に、ステージングサーバーデータベースのすべてのデータを最初に削除するにはどうすればよいですか? すべてのデータのみを削除したいので、データベースやそのすべてのものを削除して作成する必要はありません。データを削除して、新しいデータをすべて挿入したいだけです。 いくつかの理由により、データベースを削除して作成するオプションがありません。私はすべてのデータを削除して挿入するだけでよいので、これを行う方法を見つけるために必要なことは何でも、進んで進んでいきますが、最初から手助けが必要です。 このプロセスも自動化する必要があります。「本番データベースからのデータのダンプ」、「ステージングデータベースのデータの削除」、「ステージングデータベースへのデータの復元」を自動化します。「ステージングデータベースのデータの削除」の部分で助けが必要です。 PostgreSQL 9.5.2で実行しています


3
pg_restore:[archiver]はファイルヘッダーにマジックストリングを見つけられませんでした
私はPostgreSQL 9.1を使用していて、pg_dump次のコマンドで生成されたバックアップファイルを復元したい: sudo pg_dump -h 127.0.0.1 -U postgres --clean --inserts -E UTF8 -f out.sql database_name このコマンドは、既存のデータベースオブジェクトの削除で始まる有効なsqlファイルを生成し、次にすべてのテーブルを生成し、インジタイズ、シーケンスなどを行い、最後にデータを挿入します。 生成されたバックアップファイルを復元しようとすると、次のようになります(表示目的でのみ改行が追加されます)。 sudo pg_restore -d database_name -h 127.0.0.1 -U postgres --format=c --clean --create out.sql 失敗して出力します: pg_restore: [archiver] did not find magic string in file header その理由は何ですか?

1
postgres-ロールなしのpg_dumpおよびpg_restore
受信データベースで適切な役割を持たずにダンプを復元しようとしています。 ここだけでなくここでも述べた--no-ownerように、オプションとして、pg_dumpまたはpg_restoreその両方が必要です。 次のコマンドラインを使用してダンプを作成しました "C:\Program Files\PostgreSQL\9.3\bin\pg_dump.exe" --no-owner -Ft --dbname=postgresql://avo******:AV0******?@127.0.0.1:5432/BI_DB > K:\BI\backup\sort\bck_%timestamp%.tar 復元線は以下の通り "C:\Program Files\PostgreSQL\9.3\bin\pg_restore.exe" --host localhost --port 5432 --username "postgres" --dbname "BI_TEST2" --no-password --no-owner --role=postgres --exit-on-error --verbose "D:\D\avo\backup\bck_04042017_1410.tar" ご覧のとおり、どちらにも--no-ownerオプションがありますが、最終的には以下のエラーが発生します 私をひどくバグにするのは以下のログです pg_restore: [programme d'archivage (db)] Erreur pendant le traitement de la TOC (« PROCESSING TOC ») : pg_restore: [programme d'archivage (db)] Erreur …

1
データでマテリアライズドビューをバックアップおよび復元することは可能ですか?
マテリアライズドビューを計算するのが難しい場合がありますが、再計算ではなく、実際に保存されたデータを使用してバックアップおよび復元できるようにしたいと考えています。 PostgreSQL 9.4では可能ですか? (代わりの方法は、実際のテーブルを作成することですが、「更新」するのが困難です)

1
postgresql pg_dumpがビューをテーブルとしてエクスポートするのはなぜですか?
私はPostgreSQL 9.3 pg_dumpツールを使用して、以下を使用してパブリックスキーマ定義のみを抽出しています。 pg_dump -s -n public -h host -U postgres --dbname=db > ./schema.sql しかし、チェックするschema.sqlと、ビューの1つがCREATE TABLEステートメントではなくステートメントに表示されますCREATE VIEW。 しかし、私pg_dumpが特定のビューを使用している場合: pg_dump -s -t myview -h host -U postgres --dbname=db > ./schema.sql 次にschema.sql、実際のビュー定義が含まれます。 それで、なぜこれが起こっているのですか?君たちありがとう!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.