Перенести кластер Postgresql-10 на Postgresql-12
Перенести кластер Postgresql-10 на Postgresql-12
#!/bin/bash
#Порядок такой:
#* Сделать дамп кластера PSQL 10
#* Остановить PSQL 10
#* Установить PSQL 12
#* Проверить что 12-й работает, а 10-й нет.
#* Восстановить дамп кластера PSQL 10 на СУБД PSQL 12.
#* Блокировать базу данных для пользователей
#* Сделать дамп кластера PSQL 10
sudo -u postgres pg_dumpall > /tmp/cluster.sql
#* Остановить PSQL 10
/etc/init.d/postgresql stop
#Проверить
pg_lsclusters
#* Зашорить PSQL 10
mv /etc/postgresql/10 /etc/postgresql/10_old
#* Установить PSQL 12
apt install postgresql-12 postgresql-client-12 -y
#* Проверить, что 12-й работает, а 10-й нет.
pg_lsclusters
#* При необходимости можно руками перенести конфигурацию из PSQL 10.
cat /etc/postgresql/10/main/pg_hba.conf | tee /etc/postgresql/12/main/pg_hba.conf
echo "
#Персональные настройки для web-сервера
port = 9999
listen_addresses = 'localhost'
max_connections = 300
max_prepared_transactions = 150
commit_delay = 200
cpu_tuple_cost = 0.001
cpu_index_tuple_cost = 0.0005
cpu_operator_cost = 0.00025
track_activities = off
update_process_title = off
autovacuum = off
ssl = false
lc_messages = 'en_US.UTF-8'
lc_monetary = 'ru_RU.UTF-8'
lc_numeric = 'ru_RU.UTF-8'
lc_time = 'ru_RU.UTF-8'
plpgsql.variable_conflict = use_variable
synchronous_commit = off
include_if_exists = 'local.conf'
" >> /etc/postgresql/12/main/postgresql.conf
#* Перезапустить postgresql
/etc/init.d/postgresql restart
#Проверить
pg_lsclusters
#* Восстановить дамп кластера PSQL 10 на PSQL 12.
sudo -u postgres psql -f /tmp/cluster.sql postgres
#* Перезапуск postgresql
/etc/init.d/postgresql restart
/etc/init.d/postgresql status
pg_lsclusters
#Восстанавить доступ к БД для пользователей
#mv /etc/postgresql/10_old /etc/postgresql/10
#dpkg --purge postgresql-10 postgresql-client-10
Источники
Последнее изменение: 04.11.2024 17:54
Связанные темы
Здесь пока нет комментариевДобавлять комментарии могут только авторизованные пользователи