Pg_probackup — управление резервным копированием и восстановлением кластеров БД Postgres Pro
Сегодня посмотрим на инструмент pg_probackup - это инструмент резервного копирования который входит в корпоративный дистрибутив СУБД Postgres Pro
Пошаговая инструкция:
1. Заходим в psql.
2. Создаем базу данных backupdb и заходим в нее.
CREATE DATABASE backupdb;
\c backupdb
3. Создаем пользователя backup и даем ему необходимые права.
BEGIN;
CREATE ROLE backup WITH LOGIN;
GRANT USAGE ON SCHEMA pg_catalog TO backup;
GRANT EXECUTE ON FUNCTION (text) TO backup;
GRANT EXECUTE ON FUNCTION (text, text, boolean) TO backup;
GRANT EXECUTE ON FUNCTION () TO backup;
GRANT EXECUTE ON FUNCTION (text, boolean) TO backup;
GRANT EXECUTE ON FUNCTION (boolean) TO backup;
GRANT EXECUTE ON FUNCTION (text) TO backup;
GRANT EXECUTE ON FUNCTION () TO backup;
GRANT EXECUTE ON FUNCTION () TO backup;
GRANT EXECUTE ON FUNCTION () TO backup;
GRANT EXECUTE ON FUNCTION () TO backup;
GRANT EXECUTE ON FUNCTION (txid_snapshot) TO backup;
GRANT EXECUTE ON FUNCTION () TO backup;
COMMIT;
4. Создаем пароль пользователю backup.
alter user backup with password ’123’;
5. Добавляем право Replication пользователю backup.
alter role backup with replication;
6. Проверяем значения настроек wal_level и max_wal_senders. Значение параметра «wal_level» должно быть выше «minimal», например «replica». Значение параметра «max_wal_senders» должно быть достаточно большое, предусматривающее минимум одно подключение для процесса резервного копирования (помимо прочих планируемых репликаций).
show wal_level;
show max_wal_senders;
7. В файле разрешим подключение к кластеру баз данных пользователю backup, и разрешаем выполнение репликации для пользователя backup.
host backupdb backup md5
host replication all md5
8. Перезапустим сервера PostgreSQL, чтобы применились настройки.
Работа с pg_probackup из командной строки.
1. Создаем каталог для резервных копий (в перспективе монтируем отдельный диск в этот каталог).
mkdir /mnt/backup
2. Инициализируем каталог резервных копий. И посмотрим его содержимое.
pg_probackup init -B /mnt/backup
pg_probackup add-instance -B /mnt/backup -p 5432 -U postgres -d postgres -D /data_5432 --instance=ltd-ls-sql1
3. Создаем файл .pgpass в корневом каталоге пользователя для запуска резервного копирования без ввода пароля
mcedit /root/.pgpass
chmod 600 /root/.pgpass
*:*:*:backup:123
4. Создаем полную копию кластера.
pg_probackup backup -B /mnt/backup/ -p 5432 -h localhost -U backup -d backupdb -b FULL --instance=ltd-ls-sql1 --stream
5. Создаем разностную копию кластера.
pg_probackup backup -B /mnt/backup -p 5432 -h localhost -U backup -d backupdb -b delta --instance=ltd-ls-sql1 --stream
6. Проверяем результат.
pg_probackup show -B /mnt/backup/
7.Восстанавливаем бекап
pg_probackup restore -B /mnt/backup/ --instance=ltd-ls-sql1 -D /data_5432_2 --backup-id=T2O5NM
00:00:00 Вступление
00:02:05 Вход в psql
00:02:35 Создание БД backupdb и авторизация
00:02:58 Создание пользователя backup и выдача ему необходимых прав
00:03:28 Создание пароля пользователю backup
00:03:50 Добавление права Replication пользователю backup
00:04:00 Проверка параметров wal_level и max_wal_senders
00:04:25 В файле разрешаем подключение к кластеру БД пользователю backup, и разрешаем выполнение репликации для пользователя backup
00:05:29 Перезапуск демона PostgreSQL
00:05:40 Создание каталога для резервных копий
00:06:20 Инициализация каталога резервных копий
00:07:09 Создание файла .pgpass в корневом каталоге пользователя для запуска резервного копирования без ввода пароля
00:08:25 Создание полной копии кластера
00:09:30 Создание разностной копии кластера
00:09:55 Проверка результата
00:10:35 Восстановление бекапа
Музыка:
Paradise Hope by Hotham |
Music promoted by
Creative Commons CC BY 3.0
Coconut by Hotham |
Music promoted by
Creative Commons CC BY 3.0
Do It by Hotham |
Music promoted by
Creative Commons CC BY 3.0
Way Back Home by Hotham |
Music promoted by