Резервное копирование¶
Данный раздел описывает способы резервного копирования и восстановления из резервной копии в Picodata.
Общие сведения¶
Объектами резервного копирования в Picodata являются:
- файлы конфигурации, необходимые для запуска кластера Picodata
- данные, которые хранятся на инстансе: копия всех глобальных таблиц БД (включая конфигурацию СУБД, БД, хранимые процедуры, пользовательские объекты) и часть шардированных таблиц БД (пользовательских таблиц, сегментированных по заданным колонкам)
При резервном копировании мы различаем работу со всем кластером и работу с отдельными инстансами.
Копирование всего кластера¶
Наиболее предпочтительным является резервное копирование кластера целиком: это обеспечивает наиболее беспроблемное и консистентное восстановление СУБД. Для данного метода рекомендуется использовать роль Picodata для Ansible, где создание резервной копии и восстановление из нее происходит простым вводом соответствующей команды:
ansible-playbook -i hosts.yml picodata.yml -t backup
ansible-playbook -i hosts.yml picodata.yml -t restore
См. также:
Копирование отдельных инстансов¶
Резервное копирование отдельных инстансов не требуется в том случае,
если в кластере настроена репликация (т.е. значение параметра
replication_factor
превышает 1
). При выходе из строя одного инстанса,
его данные останутся в кластере на оставшихся инстансах того же
репликасета. Для возврата инстанса в работу потребуется сначала
исключить его прежний UUID из репликасета и затем запустить его без
каких-либо данных — после присоединения обратно к репликасету данные
автоматически скопируются на него.
Создание локальной резервной копии¶
При выходе из строя инстанса, данные которого не реплицированы (либо в
ситуации, когда недоступны все реплики в репликасете), кластер может
продолжить работу, однако шардированные данные, хранившиеся на таком
инстансе, не будут доступны. Эти данные, а также данные глобальных
таблиц, овеществляются в виде файлов *.xlog
, *.vylog
и *.snap
в
рабочей директории инстанса. Имея резервную копию этих файлов, можно
перезапустить инстанс под прежним UUID и вернуть его в состав
raft-группы.
Резервное копирование файлов инстанса может быть выполнено следующей командой:
rsync -r <instance_dir> <backup_dir>
где:
<instance_dir>
— рабочая директория инстанса, указанная при запуске в параметреpicodata run --instance-dir
<backup_dir>
— целевая директория для хранения резервной копии
Восстановление из локальной резервной копии¶
Восстановление данных инстанса из резервной копии выполняется той же
командой rsync
, но в обратную сторону:
rsync -r <backup_dir> <instance_dir>
Примечание
Восстановление из резервной копии следует проводить после остановки инстанса, чтобы избежать возможной неконсистентности данных.
Примечание
При работе в защищенной ОС информацию из этого раздела следует использовать совместно с документацией ОС. В качестве примера см. Руководство по комплексу средств защиты ОС Альт 8 СП, п. 3.6.5. «Пример настройки системы резервного копирования данных».