Резервное копирование и восстановление
Для чего нужно:
- Для сохранения данных и восстановления объектов и/или данных
- Для тестирования
- Миграция данных
Виды копирования и восстановления:
- Внешний (Терминал)
Типы бекапа:
1.1. Логический — используется для переноса данных. Подходит, когда объём меньше 100 ГБ. Позволяет восстанавливать данные в различных версиях Postgres.
pg_dump - создание бекапа
pg_restore - восстановление
Пример:
pg_dump -Fc название > название_файла.dump
pg_restore -d назв.базы назв_файла.dump
pg_dumpall > назв_файл.dump
1.2. Физический — быстрое восстановление, но только совместимой версией.
pg_basebackup -d путь -Fp -Xs -P -U Юзер
Ключи:
-D- объявление пути-Fp- файловый формат-Xs- включать журнал транзакции-P- прогресс-U- юзер
1.3. Потоково-консистентный — создаёт копию БД и журнала транзакции. Позволяет восстановить БД на любой момент времени.
Пример:
pg_basebackup -d путь -f tar -z -p -u Юзер
Восстановление происходит через интерфейс
- Внутренний, через SQL —
copy
команды:
copy from — создание бекапа
copy in — восстановление бекапа
Общий вид:
copy название to 'путь' оператор оператор
Пример:
copy gr632_smsmi to 'ДомашняяПапка' delimiter ',' csv header;
Операторы:
ИНДФ— название бекапирование объектаto 'путь'— указание путиdelimiter ','— указание разделительного символаcsv header— первая строка будет писаться название объекта
Можно делать бекап результирующих таблиц
Общий вид:
copy (select ...) to 'путь' оператор оператор
Пример:
copy (select * from stud) to 'test/' delimiter ',' csv header;
Восстановление данных:
Общий вид:
copy ИНДФ from 'путь' оператор оператор
Пример:
copy gr632_smsmi from 'ДомашняяПапка' delimiter ',' csv header;
Если восстанавливаете объект, то данный объект должен быть создан (то есть если восстанавливаете таблицу, то она должна быть создана заблаговременно).
Ограничение метода:
- Это не полный объект
- Вручную
- Неудобно для больших данных