私は自分のpostgresデータベースのバックアップを持っています - データベースインスタンス全体は1回の夜間バックアップに含まれています。そのバックアップ内からデータベースの1つだけを復元することは可能ですか?または、個々のデータベースにアクセスする場合(マイグレーションまたはリストアの場合)、個々のダンプを実行するためにデータベースのバックアップ方式を変更する必要がありますか?データベース全体のpg_dumpから1つのスキーマだけを復元できますか?
答えて
あなたはこのようにいくつかのテキスト処理を使用して、テキスト形式(pg_dumpallは)で完全なデータベース・クラスタ・ダンプから個々のデータベースにアクセスすることができます
awk '/^\\connect database_name/ {flag=1;print;next}
/^\\connect/ {flag=0}
flag { print }' \
< all_databases.sql \
> database_name.sql
これは「\connect database_name
」と次の「間pg_dumpallは、ファイルのすべてのものからになるだろう\connect
"。しかしそれほど効率的ではありません。
しかし、私はこのように個別にすべてのデータベースをダンプお勧めします:
# Dumping global data (for example roles)
pg_dumpall -g > /var/lib/pgsql/backups/globals.sql
#Dumping indidual databases in tar (uncompressed binary) format
for dbname in
`
psql -qXtc "
select datname from pg_catalog.pg_database
where datname<>'template0'" template1
`
do
pg_dump -b -F t "$dbname" > "/var/lib/pgsql/backups/$dbname.dump"
done
私はあなたが意味すると仮定しています「私は、データベースクラスタ全体のpg_dumpallはからわずか1データベースを復元することはできますか?」
はい、バックアップが"an archive created by pg_dump in one of the non-plain-text formats."の場合は、pg_restore
に "--schema ="オプションを使用してください。
一方、ここでは正しい用語を使用しているかどうかはわかりません。DBクラスタを「データベースインスタンス全体」と呼びます。あなたは、「データベース」について尋ねるが、タイトルにあなたは「スキーマ」を書いた説明などで
編集:今、いくつかの審議の後、私はあなたが"pg_dumpall
"で作成したクラスタのバックアップを、持っていると信じています。 "pg_dumpall"はプレーンテキスト(SQLコマンド)バックアップのみを作成します。その場合、1つのデータベース(またはデータベースから1つのスキーマのみ)を復元することはできません。
はい、非プレーンテキスト形式(--format = customが推奨されます)を使用して個々のデータベースをバックアップするようにバックアップ手順を変更する必要があります。
実際に私が自分のDBサーバーで使用するバックアップ手順は、まさにそれです。
ありがとうございました。混乱する用語を使用して申し訳ありません。私は現在、Oracle、MySQL、Postgresで生産データを持っており、それぞれが「データベース」、「表スペース」、「インスタンス」などが意味するものについて少し混乱します。 – cnk
- 1. pg_dump構文のエラーからデータベースを復元する
- 2. Oracle 11gのスキーマでHRスキーマ全体をコピーできますか?
- 3. SQL Server Management Studio復元データベースは、データベースを1つずつ復元します。
- 4. .gitフォルダから全体のプロジェクトを復元する
- 5. Crate IOデータベースは、1つのクラスタからのバックアップをサポートし、異なるクラスタに復元できますか?
- 6. そのプログラムの1つのインスタンスだけを許可すると、システムトレイからウィンドウを復元します。
- 7. 1つのページだけでなく、サイト全体のsetTimeout
- 8. LRUキャッシュ:アプリケーション全体で1つだけ初期化しますか?
- 9. アンドロイドアプリ全体を通してデータベース接続を1つだけにする最良の方法は何ですか?
- 10. postgresqlのpython api pg_dump *、復元コマンド
- 11. バケット全体を復元する
- 12. アプリケーション全体で各アクティビティのインスタンスを1つだけ保持します
- 13. Eclipseワークスペース全体のバックアップ/復元
- 14. イテレータは1回だけ反復できますか?
- 15. ダンプからデータベースを復元する
- 16. ディスクコピーバックアップからSQLデータベースを復元する
- 17. バックアップからデータベースを復元する
- 18. スキーマが見つからない場合、別のクラスタでのcassandraスナップショットの復元
- 19. SharePoint 2013データベースからのバックアップと復元
- 20. データベースバックアップから1つのテーブルを復元する方法
- 21. SQLのデータベース全体から特定の値を見つける方法
- 22. だから、機能から1つのホットエンコーディング次元へのマッピング
- 23. Doctrine:1つのクラスのエンティティだけをフラッシュできますか?
- 24. ロールや権限のない.sqlダンプファイルからpostgresスキーマを復元しますか?
- 25. 別のデータベースからデータベースを復元するSMO
- 26. スタックトレースだけでなく、ログファイル全体の難読化もできますか?
- 27. 1つのサイトだけをsslsplitできますか?
- 28. デストラクタを1つのケースだけに特化できますか?
- 29. gitリポジトリから1つのディレクトリだけを引き出す
- 30. PostgreSQL:Windowsでのデータベースダンプ(pg_dumpバージョン9.6.5)のインポート/復元
ありがとう。代替バックアップスクリプトは単なるチケットのようです。 – cnk