鬱になったSEの憂鬱

仕事関係、プライベート、技術情報とかを書いていきます。(たぶん)

Cloud SQLのスケールダウン

mastodonを立てた際、CloudSQLをSSDで使っていたが、未だに100MBも使ってないという状態。

しかし無料金額分がガンガン減る。

 

ここはひとつHDD版にして費用を抑えよう。

 

一度作ったインスタンスの性能を下げることはできないので、新規で立て直すしかない。

 

1)新規のCloudSQLインスタンスを立てる。

→HDDを選択!

2)既存のSSDインスタンスからエクスポート

→管理画面のエクスポートからエクスポート。

問答無用でCloudストレージに吐かれる。

(唐突にgs://とか言われてもわからんわぁ。管理画面ー>Storageからバケットをブラウズするとファイルがいるはず。)

3)新しく作ったHDDのインスタンスに管理画面からインポート

→DB無いよって言われる。おい!そこかよ。(気が利かねぇなおい)

 

ってことで、create database文が欲しいねぇ。。。

Compute Engineから

 

> $ pg_dump --create -s -U postgres -h XX.XXX.XX.XXX -p 5432 mastodon > /tmp/mastodon.sql

pg_dump: server version: 9.6.1; pg_dump version: 9.2.18
pg_dump: aborting because of server version mismatch

(あなたのpostgresのバージョン古くね?ちゃんとサーバーのと一緒のバージョン入れてね♡)

 

...

「ファッ(ry」

 

仕方ないのでyumで入るかなーって探したら、無いでやんの。

マジ使えねー。

 

他にも、SQLインスタンスにシェルで入ってみたりしたけどpg_dumpが動かない。

イライラマックス。

 

仕方ないので、目でcreate database文を作るしかない。

 

PostgreSQLのロケール(lc collate,lc ctype)の確認と変更

を参考。

 

結果↓(責任はとりません。)

> CREATE DATABASE mastodon WITH TEMPLATE = template0 OWNER = postgres ENCODING = “UTF8” LC_COLLATE = “en_US.UTF-8” LC_CTYPE = “en_US.UTF-8”;

 

を新しいインスタンスで実行!

インスタンスpsqlで接続できないときはSQLインスタンスへの承認済みネットワークの設定が済んでるか確認してね。)

 

4)改めて管理画面ー>SQLからインポートを実行

→うまくいったアァァァァァ

 

5)mastodonのDB設定を変更

 $ less /home/mastodon/live/.env.production

DB_HOST=XX.XX.XX.XXを新しいSQLインスタンスのIPに変更

6)mastodon再起動

systemctl restart mastodon-web.service mastodon-sidekiq.service mastodon-streaming.service

7)テストトゥート

→OK! ユーザ数も変わってない。

 

 

ってことで無事SQLの切り替えができたー^^

 

それでは御機嫌よう。

systemctl restart mastodon-web.service mastodon-sidekiq.service mastodon-streaming.service
less /home/mastodon/live/.env.production