コンテナ猫小屋
460 文字
2 分
PostgreSQLのDBを別サーバーに移行する

個人鯖をVultrから自宅のWSLに移行したので備忘録。

DBバックアップ#

gzipを使って圧縮して取り出す。

sudo apt update #いつもの
sudo apt install -y gzip #こいつで圧縮する
sudo -i #root切り替え
sudo -u postgres pg_dumpall | gzip -c > /var/backups/BACKUP_NAME.gz #pg_dumpallでバックアップを取り、gzipで指定した場所に指定した形式で保存

終わったらSFTPなどでバックアップしたファイルを一旦作業用環境に移動させておく。

DBリストア#

Misskey Hubの公式手順のここまで終わらせておくこと。追加の設定はしなくてよい。
DBのユーザー名とDB名は必ず前と同じにすること。
作業用ユーザーのhomeディレクトリ(sudoが使える必要あり)にバックアップファイルを入れておくこと。

gunzip BACKUP_NAME.gz
sudo -i
mv /home/USER/BACKUP_NAME /var/lib/postgresql
sudo chown postgres:postgres /var/lib/postgres/BACKUP_NAME
su - postgres
ls -l
psql -d DB_NAME -f BACKUP_NAME

これでリストア終わり。
下は確認用。

psql
\c DB_NAME
\dt #これで大量にMisskey関連のテーブルが出たら成功

Argo Tunnel#

ダッシュボードに入ってZeroTrustからTunnelを作り、手順通りにやる。

nginx#

DBと同じように/etc/nginx/conf.d以下に移植していいが、以下のようにしておくこと。rootで作業する。


# nginx configuration for Misskey
# Created by esurio, from koliosky.com

# For WebSocket
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off;

server {
    listen 80;
    listen [::]:80;
    server_name engawa.esurio1673.net;

    # For SSL domain validation
    # root /var/www/html;
    # location /.well-known/acme-challenge/ { allow all; }
    # location /.well-known/pki-validation/ { allow all; }

	# with https
    location / { return 301 https://$server_name$request_uri; }
}
server {
    #listen 443 ssl http2;
    # listen [::]:443 ssl http2;
    # server_name engawa.esurio1673.net;

    # ssl_session_timeout 1d;
    # ssl_session_cache shared:ssl_session_cache:10m;
    # ssl_session_tickets off;

    # To use Let's Encrypt certificate
    # ssl_certificate     /etc/letsencrypt/live/esurio1673.net/fullchain.pem;
    # ssl_certificate_key /etc/letsencrypt/live/esurio1673.net/privkey.pem;
    # SSL protocol settings
    ssl_protocols TLSv1.2 TLSv1.3;
 以下略

serviceファイルを移植する#

[Service]UserはMisskey(CherryPick)をインストールしたユーザーにする。ディレクトリも合わせて変更しておくこと。

PostgreSQLのDBを別サーバーに移行する
https://blog.esurio1673.net/posts/db-move/
作者
仮想猫
公開日
2024-02-22
ライセンス
CC BY-NC-SA 4.0