View on GitHub

ITMO-PE

My study notes about Program Engineering at University ITMO

MainPage/Ditributed DataBase/Lecture

Лекция

Лекция 7

1. Резервное копирование

Стратегия резервного копирования бывает:

Виды резервного копирования:

Виды резервного копирования:

2. Логическое РК

pg_dump

pg_dump: форматы РК

Текстовый формат

Формат РК в виде директории

pg_dump -Fd Student -f mydbdump mydb

Особенности использования pg_dump

Получение скрипта для восстановления части БД

Можно задать создание скрипта для восстановления только определенных таблиц, структуры БД, содержимого БД:

Восстановление БД

Использование: psql mydb < mydbdump

Ошибки при восстановлении БД

pg_restore

pg_dumpall

Осуществление резервного копирования

3. Физическое РК

Резервное копирование на уровне файловой системы

Непрерывное архивирование

Физическое РК + WAL

Этапы для реализации непрерывного архивирования

1) Организация архивирования WAL. 2) Создание базовой резервной копии.

Этап 1: архивирование WAL

Команда для архивирования

Задается в postgresql.conf: archive_command = 'cp %p /path2/%f' # Unix

archive_command

Этап 2: создание базовой

резервной копии - pg_basebackup

Этап 2: создание базовой резервной копии — через pg_*_backup функции pg_start_backup, pg_stop_backup:

Восстановление данных на основе бэкапа с непрерывным архивированием

1) Нужно остановить сервер БД. 2) Если возможно, сделать копию — хотя бы pg_wal (на случай, если есть незаархивированные WAL). 3) Перед шагом: проверить наличие бэкапа. Если бэкап есть — удалить содержимое PGDATA и, если есть, внешних директорий (с табличными пространствами и т. д). 4) Скопировать в PGDATA и внешние директории данные ранее полученного бэкапа. 5) Очистить директорию PGDATA/pg_wal. 6) Если есть незаархивированные WAL (с шага 2) — поместить их в PGDATA/pg_wal. 7) Установить настройки для восстановления в postgresql.conf (restore_command, должна возвращать ненулевой код в случае неудачи) + запретить внешние подключения (для пользователей) в pg_hba.conf. 8) Создать файл recovery.signal — говорит серверу, что надо стартовать в режиме восстановления (PGDATA/data). 9) Запустить сервер → он перейдет в режим восстановления. По завершении recovery.signal будет удален. 10) Разрешить подключения для пользователей в pg_hba.conf.

restore_command