Дополнительный кластер postgresql может пригодится для проверки развертывания как холодного backup так и горячего с использованием pg_basebackup
$ sudo pg_createcluster --locale ru_RU.UTF-8 9.6 beta
Не забываем про настройку postgresql.conf !
$ sudo nano /etc/postgresql/9.6/beta/postgresql.conf
Для запуска нужен restart:
$ sudo systemctl restart postgresql
$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
9.6 beta 5433 down postgres /var/lib/postgresql/9.6/beta pg_log/postgresql-%a.log
9.6 main 5432 online postgres /var/lib/postgresql/9.6/main pg_log/postgresql-%a.log
$ ss -tunpl | grep 5432
tcp LISTEN 0 128 *:5432 *:*
tcp LISTEN 0 128 :::5432 :::*
$ ss -tunpl | grep 5433
tcp LISTEN 0 128 *:5433 *:*
tcp LISTEN 0 128 :::5433 :::*
postgres 4252 0.0 0.0 315616 27704 ? S 18:18 0:00 /usr/lib/postgresql/9.6/bin/postgres -D /var/lib postgresql/9.6/beta -c config_file=/etc/postgresql/9.6/beta/postgresql.conf
postgres 4253 0.0 0.5 4597816 182016 ? S 18:18 0:00 /usr/lib/postgresql/9.6/bin/postgres -D /var/lib postgresql/9.6/main -c config_file=/etc/postgresql/9.6/main/postgresql.conf
........
Сделаем холодный backup кластера main:
$ sudo systemctl stop postgresql
$ sudo su - postgres
$ cd /var/lib/postgresql/9.6/main
$ tar cvzf /var/lib/postgresql/base-$(date +%Y-%m-%d_%H-%M-%S).tar.gz .
$ exit
$ sudo ls /var/lib/postgresql
9.6 base-2019-02-13_18-15-11.tar.gz
$ sudo systemctl start postgresql
На кластере beta restore:
$ sudo systemctl stop postgresql
$ sudo /bin/su postgres -c "rm -rf /var/lib/postgresql/9.6/beta/*"
$ sudo -u postgres tar -xvC /var/lib/postgresql/9.6/beta -f /var/lib/postgresql/base-2019-02-13_18-15-11.tar.gz
$ sudo systemctl start postgresql
Имя базы рекомендую указать с указанием кластера:
Удаление кластера.
После работы с дополнительным кластером можно его удалить:
$ sudo pg_dropcluster --stop 9.6 beta
$ sudo systemctl daemon-reload
$ sudo systemctl restart postgresql
Важно:
Если не будете делать restore, нужно задать пароль:
$ sudo -u postgres psql -U postgres -p 5433 -c "alter user postgres with password 'pass';"
$ sudo pg_createcluster --locale ru_RU.UTF-8 9.6 beta
Creating new cluster 9.6/beta ...
config /etc/postgresql/9.6/beta
data /var/lib/postgresql/9.6/beta
locale ru_RU.UTF-8
socket /var/run/postgresql
port 5433
Warning: systemd does not know about the new cluster yet. Operations like "service postgresql start" will not handle it. To fix, run:
sudo systemctl daemon-reload
$ sudo systemctl daemon-reloadНе забываем про настройку postgresql.conf !
$ sudo nano /etc/postgresql/9.6/beta/postgresql.conf
Для запуска нужен restart:
$ sudo systemctl restart postgresql
$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
9.6 beta 5433 down postgres /var/lib/postgresql/9.6/beta pg_log/postgresql-%a.log
9.6 main 5432 online postgres /var/lib/postgresql/9.6/main pg_log/postgresql-%a.log
$ ss -tunpl | grep 5432
tcp LISTEN 0 128 *:5432 *:*
tcp LISTEN 0 128 :::5432 :::*
$ ss -tunpl | grep 5433
tcp LISTEN 0 128 *:5433 *:*
tcp LISTEN 0 128 :::5433 :::*
$ ps aux | grep postgrespostgres 4252 0.0 0.0 315616 27704 ? S 18:18 0:00 /usr/lib/postgresql/9.6/bin/postgres -D /var/lib postgresql/9.6/beta -c config_file=/etc/postgresql/9.6/beta/postgresql.conf
postgres 4253 0.0 0.5 4597816 182016 ? S 18:18 0:00 /usr/lib/postgresql/9.6/bin/postgres -D /var/lib postgresql/9.6/main -c config_file=/etc/postgresql/9.6/main/postgresql.conf
........
Сделаем холодный backup кластера main:
$ sudo systemctl stop postgresql
$ sudo su - postgres
$ cd /var/lib/postgresql/9.6/main
$ tar cvzf /var/lib/postgresql/base-$(date +%Y-%m-%d_%H-%M-%S).tar.gz .
$ exit
$ sudo ls /var/lib/postgresql
9.6 base-2019-02-13_18-15-11.tar.gz
$ sudo systemctl start postgresql
На кластере beta restore:
$ sudo systemctl stop postgresql
$ sudo /bin/su postgres -c "rm -rf /var/lib/postgresql/9.6/beta/*"
$ sudo -u postgres tar -xvC /var/lib/postgresql/9.6/beta -f /var/lib/postgresql/base-2019-02-13_18-15-11.tar.gz
$ sudo systemctl start postgresql
Имя базы рекомендую указать с указанием кластера:
Удаление кластера.
После работы с дополнительным кластером можно его удалить:
$ sudo pg_dropcluster --stop 9.6 beta
$ sudo systemctl daemon-reload
$ sudo systemctl restart postgresql
Важно:
Если не будете делать restore, нужно задать пароль:
$ sudo -u postgres psql -U postgres -p 5433 -c "alter user postgres with password 'pass';"
$ sudo -u postgres psql -U postgres -c "alter user postgres with password 'pass';"
Комментариев нет:
Отправить комментарий