Mastodon/postgresql の移行
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* postgresql の移行 [#qa2d3f01]
2023-09-14 に[[正式リリースされた>https://www.postgresql....
$ sudo apt update && apt -y upgrade
##
The following NEW packages will be installed:
postgresql-16 postgresql-client-16
ので、Mastodon ソロサーバーの[[丼くま>https://don.kumarin...
** 環境 [#y8b6f068]
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
$ uname -a
Linux kumarin 5.15.0-84-generic #93-Ubuntu SMP Tue Sep 5...
** もくじ [#tace0080]
#contents
** インストールされている postgres-16 の確認 [#sed29c7d]
postgresql-15 が稼働している状態で postgresql-16 が新たに...
$ netstat -an | grep -w LISTEN
tcp 0 0 127.0.0.1:5433 0.0.0.0:* LISTEN #...
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN #...
$ sudo -u postgres -i
$ psql --port 5433
postgres=# select * From version();
PostgreSQL 16.0 (Ubuntu 16.0-1.pgdg22.04+1) on x86_64-pc...
本番のポートは変えたくないので、事前に postgresql-16 のポ...
** 下準備 [#k7851ba5]
*** postgresql のユーザの作成 [#re4a6e47]
tcp/5433 で listen 中の postgresql-16 に `createuser` を...
$ sudo -u postgres -i
postgres:~$ createuser --port 5433 --createdb mastodon
postgres:~$ exit
*** チューニング (2023.9.26 追記) [#hc7054f3]
チューニングの整定または引き継ぎは、ここで行っておくべき...
(立ち上げ以来さぼってたので、移行の後日設定した)
$ sudo -u postgres -i
postgres:~$ psql --port 5433
postgres=# ALTER SYSTEM SET max_connections = '40';
ALTER SYSTEM SET shared_buffers = '64MB';
...
postgres=# quit
postgres:~$ exit
チューニングは [[PGTune>https://pgtune.leopard.in.ua]] で...
*** ポートの変更 [#t1108645]
ポートを本来の 5432 に変更するため、postgresql-16 サービ...
$ sudo systemctl stop postgresql@16-main.service
$ sudo systemctl disable postgresql@16-main.service
postgresql-16 の postgresql.conf 編集し、`port` を 5433 ...
次回起動時は tcp/5432 で listen するようになる。
$ sudo vim /etc/postgresql/16/main/postgresql.conf
#-------------------------------------------------------...
# CONNECTIONS AND AUTHENTICATION
#-------------------------------------------------------...
# - Connection Settings -
port = 5432
** 移行の実施 [#gc5dc282]
*** Mastodon のサービスをとめる [#h4bcf1a5]
$ sudo systemctl stop mastodon-web mastodon-sidekiq mast...
*** 既存データベースを待避する [#reefc834]
$ sudo -u mastodon -i
mastodon:~$ pg_dump -Fc mastodon_production -f ~/donbak/...
mastodon:~$ exit
*** postgresql サービスの切り替え [#s0f06294]
15 を停止 & サービス無効。
16 を始動 & サービス有効。
$ sudo systemctl stop postgresql@15-main.service
$ sudo systemctl disable postgresql@15-main.service
$ sudo systemctl start postgresql@16-main.service
$ sudo systemctl enable postgresql@16-main.service
*** 既存データベースの復元 [#qa6c449a]
$ sudo -u mastodon -i
mastodon:~$ createdb mastodon_production
mastodon:~$ pg_restore --dbname mastodon_production ~/do...
mastodon:~$ exit
ソロ鯖であんまりアグレッシブに投稿していないこともあって...
一人前のサーバーならもっともっとかかると思う。
*** Mastodon のサービスを始動 [#y7db308b]
$ sudo systemctl start mastodon-web mastodon-sidekiq mas...
サービスが正しく動いていることと、管理ダッシュボードの So...
** あとかたづけ [#rd773408]
しばらく期間をあけて安全を確認してからがいいかも。
$ sudo apt purge --auto-remove postgresql-15 postgresql-...
`apt purge` により 1.7G あった postgresql-15 のデータディ...
ちなみに、16 のほうは 2.3G になってた。なんで。
** links [#z02a76f7]
PostgreSQL: PostgreSQL 16 Released!
https://www.postgresql.org/about/news/postgresql-16-relea...
PostgreSQL: Documentation: 16: E.1. Release 16
https://www.postgresql.org/docs/16/release-16.html
終了行:
* postgresql の移行 [#qa2d3f01]
2023-09-14 に[[正式リリースされた>https://www.postgresql....
$ sudo apt update && apt -y upgrade
##
The following NEW packages will be installed:
postgresql-16 postgresql-client-16
ので、Mastodon ソロサーバーの[[丼くま>https://don.kumarin...
** 環境 [#y8b6f068]
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
$ uname -a
Linux kumarin 5.15.0-84-generic #93-Ubuntu SMP Tue Sep 5...
** もくじ [#tace0080]
#contents
** インストールされている postgres-16 の確認 [#sed29c7d]
postgresql-15 が稼働している状態で postgresql-16 が新たに...
$ netstat -an | grep -w LISTEN
tcp 0 0 127.0.0.1:5433 0.0.0.0:* LISTEN #...
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN #...
$ sudo -u postgres -i
$ psql --port 5433
postgres=# select * From version();
PostgreSQL 16.0 (Ubuntu 16.0-1.pgdg22.04+1) on x86_64-pc...
本番のポートは変えたくないので、事前に postgresql-16 のポ...
** 下準備 [#k7851ba5]
*** postgresql のユーザの作成 [#re4a6e47]
tcp/5433 で listen 中の postgresql-16 に `createuser` を...
$ sudo -u postgres -i
postgres:~$ createuser --port 5433 --createdb mastodon
postgres:~$ exit
*** チューニング (2023.9.26 追記) [#hc7054f3]
チューニングの整定または引き継ぎは、ここで行っておくべき...
(立ち上げ以来さぼってたので、移行の後日設定した)
$ sudo -u postgres -i
postgres:~$ psql --port 5433
postgres=# ALTER SYSTEM SET max_connections = '40';
ALTER SYSTEM SET shared_buffers = '64MB';
...
postgres=# quit
postgres:~$ exit
チューニングは [[PGTune>https://pgtune.leopard.in.ua]] で...
*** ポートの変更 [#t1108645]
ポートを本来の 5432 に変更するため、postgresql-16 サービ...
$ sudo systemctl stop postgresql@16-main.service
$ sudo systemctl disable postgresql@16-main.service
postgresql-16 の postgresql.conf 編集し、`port` を 5433 ...
次回起動時は tcp/5432 で listen するようになる。
$ sudo vim /etc/postgresql/16/main/postgresql.conf
#-------------------------------------------------------...
# CONNECTIONS AND AUTHENTICATION
#-------------------------------------------------------...
# - Connection Settings -
port = 5432
** 移行の実施 [#gc5dc282]
*** Mastodon のサービスをとめる [#h4bcf1a5]
$ sudo systemctl stop mastodon-web mastodon-sidekiq mast...
*** 既存データベースを待避する [#reefc834]
$ sudo -u mastodon -i
mastodon:~$ pg_dump -Fc mastodon_production -f ~/donbak/...
mastodon:~$ exit
*** postgresql サービスの切り替え [#s0f06294]
15 を停止 & サービス無効。
16 を始動 & サービス有効。
$ sudo systemctl stop postgresql@15-main.service
$ sudo systemctl disable postgresql@15-main.service
$ sudo systemctl start postgresql@16-main.service
$ sudo systemctl enable postgresql@16-main.service
*** 既存データベースの復元 [#qa6c449a]
$ sudo -u mastodon -i
mastodon:~$ createdb mastodon_production
mastodon:~$ pg_restore --dbname mastodon_production ~/do...
mastodon:~$ exit
ソロ鯖であんまりアグレッシブに投稿していないこともあって...
一人前のサーバーならもっともっとかかると思う。
*** Mastodon のサービスを始動 [#y7db308b]
$ sudo systemctl start mastodon-web mastodon-sidekiq mas...
サービスが正しく動いていることと、管理ダッシュボードの So...
** あとかたづけ [#rd773408]
しばらく期間をあけて安全を確認してからがいいかも。
$ sudo apt purge --auto-remove postgresql-15 postgresql-...
`apt purge` により 1.7G あった postgresql-15 のデータディ...
ちなみに、16 のほうは 2.3G になってた。なんで。
** links [#z02a76f7]
PostgreSQL: PostgreSQL 16 Released!
https://www.postgresql.org/about/news/postgresql-16-relea...
PostgreSQL: Documentation: 16: E.1. Release 16
https://www.postgresql.org/docs/16/release-16.html
ページ名: