개요
Mastodon 단독 용도의 데이터베이스 업그레이드를 위해 진행하였다.
사고를 방지하기 위한 진행 전 백업 필수.
절차
데이터베이스 콜레이션 업데이트
sudo su - postgres
psql mastodon_production
ALTER DATABASE mastodon_production REFRESH COLLATION VERSION;
REINDEX DATABASE mastodon_production;
psql template1
ALTER DATABASE template1 REFRESH COLLATION VERSION;
REINDEX DATABASE template1;
psql postgres
ALTER DATABASE postgres REFRESH COLLATION VERSION;
REINDEX DATABASE postgres;
exit
REINDEX는 필수가 아니고, 메모리와 스토리지를 사용하므로 용량에 주의한다.
데이터베이스 정지
업그레이드 사전 확인 후 진행
sudo su - postgres
/usr/lib/postgresql/16/bin/pg_upgrade \
--old-datadir=/var/lib/postgresql/15/main \
--new-datadir=/var/lib/postgresql/16/main \
--old-bindir=/usr/lib/postgresql/15/bin \
--new-bindir=/usr/lib/postgresql/16/bin \
--old-options '-c config_file=/etc/postgresql/15/main/postgresql.conf' \
--new-options '-c config_file=/etc/postgresql/16/main/postgresql.conf' \
--check
exit
사전 확인 문제 없으면 –check 제거하여 업그레이드 진행한다.
포트 구성 스왑 및 기존 구성 마이그레이션
- /etc/postgresql/15/main/postgresql.conf
- /etc/postgresql/16/main/postgresql.conf
- /etc/postgresql/16/main/pg_hba.conf
데이터베이스 시작
청소
sudo su - postgres
/usr/lib/postgresql/15/bin/vacuumdb --all --analyze-in-stages
exit
sudo apt remove postgresql-15
sudo rm -rf /etc/postgresql/15/
sudo su - postgres
./delete_old_cluster.sh
exit
답글 남기기