LoginSignup
1
1

More than 5 years have passed since last update.

Mastodonで利用しているPostgresqlを9.5から9.6にアップグレードしてみた(Ubuntu 16.04編)

Posted at

Mastodonに利用しているPostgresqlのバージョンが9.4以下だと
Mastodonをv2.4.2に上げることが出来ないのですが、9.5なら問題ないのでいいかなーと思ってたのですが
どうせまた何れはやらなければならないし、9.5ってのも微妙だったので9.6にアップグレードしてみました。
多分9.4から9.6でもいけるはず…

今回の作業は以下のURLをまるまる参考にしています。
https://gist.github.com/johanndt/486955d141d7f8883a537c2679b6a4f2
うちの環境は非DockerなんでDocker環境な方にも適用できるかわかりません。
あと、一応作業前にスナップショットなりバックアップなり取っておくことをオススメします。

1.とりあえずコンソールに入ったらpostgresqlの参照先の追加とパッケージリストの更新

sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main"
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update

2.Postgresql 9.6をインストール
sudo apt-get install postgresql-9.6

3.インストールが終わったら
dpkg -l | grep postgresql

ii  postgresql                          9.5+173ubuntu0.1                           all          object-relational SQL database (supported version)
ii  postgresql-9.5                      9.5.13-0ubuntu0.16.04                      amd64        object-relational SQL database, version 9.5 server
ii  postgresql-9.6                      9.6.9-2.pgdg16.04+1                        amd64        object-relational SQL database, version 9.6 server
ii  postgresql-client-9.5               9.5.13-0ubuntu0.16.04                      amd64        front-end programs for PostgreSQL 9.5
ii  postgresql-client-9.6               9.6.9-2.pgdg16.04+1                        amd64        front-end programs for PostgreSQL 9.6
ii  postgresql-client-common            173ubuntu0.1                               all          manager for multiple PostgreSQL client versions
ii  postgresql-common                   173ubuntu0.1                               all          PostgreSQL database-cluster manager
ii  postgresql-contrib                  9.5+173ubuntu0.1                           all          additional facilities for PostgreSQL (supported version)
ii  postgresql-contrib-9.5              9.5.13-0ubuntu0.16.04                      amd64        additional facilities for PostgreSQL

9.5と9.6がそれぞれインストールされている事を確認
また
pg_lsclusters

Ver Cluster Port Status Owner    Data directory               Log file
9.5 main    5432 online postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
9.6 main    5433 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log

両バージョンともオンラインであることが確認できる

4.アップグレードするため9.6の設定等を削除して、ついでに止める
sudo pg_dropcluster 9.6 main --stop
これで9.5の設定を引き継ぐための箱ができた(と解釈している)

アップグレード作業をするためpostgresqlのサービスを止める
sudo service postgresql stop

そして、9.5をアップグレードをする
sudo pg_upgradecluster 9.5 main

で、ここでうちの環境ではエラーが発生した。
うちの環境ではcronで毎日セキュリティアップデートをする設定にしていたのだが
何かの拍子でpostgresql10もインストールされていたので怒られた。
というわけでバージョンを指定した。
sudo pg_upgradecluster -v 9.6 9.5 main

上手く行けば後はコーヒーでも飲みながら出来上がるのを待ちましょう。
大規模なインスタンスですとMastodonのDBをアップグレードするのに相当時間がかかるはずです。

終わりましたら
psql --version でバージョンを確認し
psql (PostgreSQL) 9.6.9 のように9.6になっていることを確認してください。

もし違うバージョンが出力されたら
https://mementoo.info/archives/2146
を参考にしてください。

ということでやっつけですがpostgresのアップグレード方法でした。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1