Heroku Postgresの本番データベースを9.2にアップグレードするための推奨される方法は何ですか?フォロワーを使用することは可能ですか、またはpgbackups/snapshotsルートを使用する必要がありますか?Herokuのpostgresにアップグレードする
答えて
logical followers in 9.4までは、ダンプして復元する必要があります(Craigが説明する理由から)。これをpgbackups:transferで簡単にすることができます。直接転送はダンプとリストアよりも高速ですが、保持するスナップショットはありません。
以下のスクリプトは、基本的に、HerokuのUsing PG Backups to Upgrade Heroku Postgres Databases と変更されたpgbackups:transferです。 (あなたが複数のインスタンスを持っている場合は、ステージングサーバーは、そのサーバーを指定するには、各Herokuのラインに「-a」または「--remote」を追加しますと言う。)
# get the pgbackups plugin
heroku plugins:install git://github.com/heroku/heroku-pg-extras.git
# provision new db
heroku addons:add heroku-postgresql:crane --version=9.2
# wait for it to come online, make note of new color
heroku pg:wait
# prevent new data from arriving during dump
heroku ps:scale worker=0 web=0
heroku maintenance:on
# copy over the DB. could take a while.
heroku pgbackups:transfer OLDCOLOR NEWCOLOR
# promote new database as default for DATABASE_URL
heroku pg:promote NEWCOLOR
# start everything back up and test
heroku ps:scale worker=N web=N
heroku maintenance:off
heroku open
# remove old database
heroku addons:remove HEROKU_POSTGRESQL_OLDCOLOR
なお、あなたはそれらの間で、データのサイズを比較した場合新しいものは、9.2の効率のためにずっと小さくなるかもしれません。 (私の9.2は9.1の約70%でした)
Herokuフォロワーは、AFAIK、PostgreSQLストリーミングレプリカサーバーです。つまり、バージョン間での使用はできません。バイナリ互換のデータベースが必要です。
普通のPostgreSQLと同じテクニックが適用されます。但し、Herokuではpg_upgrade
を使用できない場合があります。これには、データベースをホストするシステム上のpostgres
ユーザとしてシェル(sshなど)のアクセスが必要です。pg_upgrade
を実行するツールを提供していない限り、Heroku上では可能性はありません。私はこれに関する多くの情報を見つけることができません。
pg_upgrade
をHerokuデータベースインスタンスで実行する方法が見つからない限り、Slony-I、Bucardo、または別のトリガーベースのレプリケーションソリューションを使用してアップグレードを行う必要があります。一般的な考え方は、新しい9.2インスタンスを設定し、Slonyを使用して9.1インスタンスのデータをそのインスタンスに複製し、完全に同期したら9.1インスタンスを停止し、Slonyのトリガーを削除し、クライアントを9.2インスタンス。
"postgresql low downtime upgrade slony"などの詳細については、どうぞご覧ください。
Craigは正しいです、彼らはストリーミングレプリカです:あなたはアップグレードのためにこのルートを使用することはできません。現在、最良の方法は、pg-extrasプラグイン(https://github.com/heroku/heroku-pg-extras#pgbackupstransfer)で利用可能なpgbackups:transferコマンドを使用して、データをすばやく転送することです。アプリはメンテナンスモードです)。今後、より簡単なアップグレードオプションをサポートする予定です。 – hgmnz
@hgmnzなぜ[heroku-pgupgrade](https://github.com/hgmnz/heroku-pgupgrade)を使用しないのですか? – thejaz
@thejaz aha!これは現在ベータ版であるため、今後通知があるまで(サーバー側で)壊れてしまいます。プライムタイムの準備ができたら、そのレポに注意してください。 – hgmnz
- 1. Heroku Postgres DBプランのアップグレード
- 2. Postgres/Rails - Herokuのデプロイメントに関するグループ
- 3. Heroku Leiningenのバージョンをアップグレードするには?
- 4. Herokuの/ Postgresのエラー:範囲
- 5. heroku sql文のpostgresが失敗する
- 6. postgres:ユーザをスーパーユーザにアップグレードしますか?
- 7. Heroku Postgresからバックアップをエクスポートする
- 8. Heroku postgresでロケールを設定
- 9. EC2からHeroku Postgresインスタンスにアクセス
- 10. Rails 3.1 - Herokuにプッシュする - postgres adapterをインストールする際のエラー?
- 11. PyKarmをHerokuのpostgresデータベースに接続する方法
- 12. Heroku Postgresデータベースプランの変更によりアプリケーションがクラッシュする
- 13. ローカル接続からHeroku postgresデータベースに接続する方法
- 14. herokuからpostgresデータベースを削除するには
- 15. Heroku Postgresでスタンドアロンデータベースを管理するためのプログラマブルな方法
- 16. Heroku - 単一のテーブルを共有postgresデータベースにダンプしてロードする
- 17. NodeJSを使用してPostgresデータベースをherokuに移行するには?
- 18. Rails - Heroku - Postgres - 重要なコンテンツをクリアテキストに保存しない
- 19. heroku - 私はローカルにpostgresをインストールしたくありません!
- 20. HerokuユーザーはPostgresスキーマを利用できますか?
- 21. Heroku PostgresをMITM攻撃から保護していますか?
- 22. postgres heroku rails 3 appでクラス名を取得しますか?
- 23. HerokuのGo + Postgresで接続が拒否されました
- 24. SQLite3とPostgres/Heroku Ruby on Railsクエリの問題
- 25. 行を追加するための最良の方法。 Heroku + Node + Postgres
- 26. Heroku - Play Frameworkアプリでpostgresデータベースを設定できませんか?
- 27. playframework 2.0 - データベースのアップグレード時にmax_user_connectionsを超えました(ローカルpostgresサーバを使用)
- 28. Amazon RDS(MySql)からHeroku Postgresに移行するにはどれくらいの労力が必要ですか?
- 29. Herokuの遅いpostgresクエリがラックタイムアウトで中断されていません
- 30. Herokuの(Postgresの)区切りの句が、ローカルで正常に動作します(MySQLの)
9.2と9.3に(最高の投票数の)解決策が適用できるので、あなたの質問タイトルからバージョン番号を削除することを検討することができます。 –