Help us understand the problem. What is going on with this article?

Follower DatabasesでHerokuのPostgreSQLを冗長化

More than 3 years have passed since last update.

前提条件

  • Herokuに課金利用していること
  • HerokuのPostgreSQL Add-onであるHeroku Postgresを利用していること

目的

Follower databaseを設定することで、スレーブのDBをでホットスタンバイにする
HerokuのPostgreで読み取り専用で本番DBに安全にアクセスできる

マスターのDBのプラランは、以下のようにスタンダードプラン以上だと使うことが出来る

Followers are only supported on Standard, Premium, and Enterprise tier database plans. Follow these steps to upgrade from a Hobby tier (dev or basic) plan to a production plan.

また副作用的に読み取り専用のDBができるので、問い合わせ調査などSelectするだけの場合はこちらを利用すると良いだろう

A database follower is a read-only copy of the master database that stays up-to-date with the master database data. As writes and other data modifications are committed in the master database, the changes are streamed, in real-time, to the follower databases.

heroku pg:info -a アプリ名
=== HEROKU_POSTGRESQL_PURPLE_URL (DATABASE_URL)
...
Fork/Follow: Available

同じプランである必要な無い。パフォーマンスに影響が無いのかはよくわからなかった

heroku addons:create heroku-postgresql:standard-0 --follow HEROKU_POSTGRESQL_CHARCOAL_URL -a アプリ名

Adding postgresql-rigid-xxxx to app_name... done
Setting HEROKU_POSTGRESQL_COLOR_URL and restarting app_name... done, vXXX
Follower will become available for read-only queries when up-to-date.
Use `heroku pg:wait` to track status
Use `heroku addons:docs heroku-postgresql` to view documentation.

まさかの時のフェイルオーバー

マスタのDBがStandardプランの場合はマニュアルでフェイルオーバー

プランがStandardの場合はマニュアルでフェイルオーバーする必要がある。
マニュアルで実行する手順は以下の通り
https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases#upgrade-with-follower-changeovers-2-prevent-new-database-updates

マスタのDBがPremiumプランの場合は自動でフェイルオーバー

Heroku Postgres premium plans have the HA feature with automated failover. R

ref: https://devcenter.heroku.com/articles/heroku-postgres-follower-databases

スレーブを読み取り専用のDBとして接続する手順

Herokuの環境変数から、DBの接続上を情報を取得しPostgresのクライアントで接続する

heroku config -s -a アプリ名| grep HEROKU_POSTGRESQL_COLOR_URL

MacだとPsequelが一番使いやすい気がする。MySQLのSequel Proと似た使い心地
http://www.psequel.com/

kon_yu
道産子プログラマ
http://konyu.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした