Перейти к содержанию

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

Данный раздел описывает способы резервного копирования и восстановления из резервной копии в 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. «Пример настройки системы резервного копирования данных».