Это руководство, которое описывает процесс миграции с PostgreSQL 14 на PostgreSQL 16 на сервере Ubuntu без потери данных.
Полное резервное копирование данных, установка новой версии, восстановление данных, удаление старой версии все этапы организованы в пошаговом формате.
1. Проверка текущей версии PostgreSQL и статуса кластера
psql --version
pg_lsclusters
Убедитесь, что 14/main активен в состоянии кластера.
2. Полное резервное копирование данных
PostgreSQL может делать резервное копирование всей базы данных, пользователей и информации о правах с помощью команды pg_dumpall
.
sudo -u postgres pg_dumpall > ~/pg_backup_all.sql
Пример проверки резервного копирования (опционально)
head ~/pg_backup_all.sql
tail ~/pg_backup_all.sql
Проверка наличия файла и его объема
ls -lh ~/pg_backup_all.sql
3. Установка PostgreSQL 16
3-1. Регистрация в официальном репозитории
sudo apt update
sudo apt install wget ca-certificates -y
wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/pgdg.gpg
echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
3-2. Установка PostgreSQL 16
sudo apt update
sudo apt install postgresql-16 -y
После завершения установки проверьте статус кластера еще раз.
pg_lsclusters
4. Переключение кластера
Остановите существующую 14 версию и запустите 16 версию.
sudo systemctl stop postgresql@14-main
sudo systemctl start postgresql@16-main
5. Восстановление данных (на PostgreSQL 16)
Перед восстановлением убедитесь, что вы можете подключиться к ново установленной версии 16.
(номер порта можно проверить с помощью pg_lsclusters
)
sudo -u postgres psql -p 5433
Если подключение успешно, восстановите данные с помощью следующей команды:
sudo -u postgres psql < ~/pg_backup_all.sql
Вы можете проверить наличие ошибок с помощью
less ~/pg_backup_all.sql | grep ERROR
.
6. Удаление PostgreSQL 14 (опционально)
После того как обновление и восстановление данных завершены и проблем нет, вы можете удалить PostgreSQL 14:
sudo pg_dropcluster 14 main --stop
sudo apt remove postgresql-14 -y
Заключение
Этот процесс будет полезен для тех, кто хочет обновить и мигрировать с PostgreSQL 14 на 16 на сервере Ubuntu.
Резервное копирование данных → Установка новой версии → Восстановление → Удаление старой версии следуйте этому порядку, чтобы безопасно переключить версии.
Имя пользователя сервера, номер порта и т.д. вы можете настроить под свою среду.
댓글이 없습니다.