Создание резервной копии баз данных
Перед созданием резервной копии оцените количество свободного места на сервере, на котором выполняется резервное копирование, и следите за ним в процессе копирования.
Резервные копии создаются в директориях, в которых расположены запускаемые скрипты. После создания перенесите их на сервер или в отдельное хранилище.
На Платформе используются следующие средства хранения служебных данных:
- MySQL/Galera.
- PostgreSQL.
- Tarantool (сервисы Dusk и Breeze).
- RabbitMQ.
- Apache ZooKeeper.
- etcd.
- OpenSearch.
-
На управляющем узле выполните команды:
$ cd /srv/backup/galera/scripts$ sudo bash ./backup_xtra.sh -
Проверьте, что резервные копии созданы:
$ sudo ls -la /srv/backup/galera/*/*$(date '+%Y%m%d')*.tgzОтвет должен содержать список файлов резервных копий вида:
/srv/backup/galera/backup_<ИМЯ_БД>/xtrabackup_<ИМЯ_БД>_db_bcp_<ДАТА>_<ВРЕМЯ>.tgz.Здесь:
<ИМЯ_БД>— имя базы данных.<ДАТА>— дата создания резервной копии.<ВРЕМЯ>— время создания резервной копии.
-
На узле мониторинга выполните команды:
$ cd /srv/backup/galera/scripts$ sudo bash ./backup_xtra.sh -
Проверьте, что резервная копия создана:
$ sudo ls -la /srv/backup/galera/*/*$(date '+%Y%m%d')*.tgzОтвет должен содержать файл резервной копии вида:
/srv/backup/galera/xtrabackup_ZABBIX_db_bcp_<ДАТА>_<ВРЕМЯ>.tgz.Здесь:
<ДАТА>— дата создания резервной копии.<ВРЕМЯ>— время создания резервной копии.
-
На управляющем узле выполните команды:
$ cd /srv/backup/postgres$ sudo bash ./backup_pg.sh -
Проверьте, что резервные копии созданы:
$ sudo ls -la /srv/backup/postgres/*pg**$(date '+%Y%m%d')*.tgzОтвет должен содержать список файлов резервных копий вида:
/srv/backup/postgres/<ИМЯ_БД>_pg_<ДАТА>_<ВРЕМЯ>.tgz.Здесь:
<ИМЯ_БД>— имя базы данных.<ДАТА>— дата создания резервной копии.<ВРЕМЯ>— время создания резервной копии.
Чтобы создать резервные копии, выполните команды на первом управляющем узле:
-
Создайте директории для резервных копий:
$ sudo mkdir -p /srv/backup/tarantool/ -
Создайте резервные копии:
$ echo 'box.backup.start()' | sudo tt connect breeze_01 \&& echo 'box.backup.start()' | sudo tt connect dusk_01 \&& sudo cp -r /var/lib/tarantool/xlogs /srv/backup/tarantool/xlogs/ \&& sudo cp -r /var/lib/tarantool/snaps /srv/backup/tarantool/snaps/ \&& echo 'box.backup.stop()' | sudo tt connect breeze_01 \&& echo 'box.backup.stop()' | sudo tt connect dusk_01 -
Заархивируйте резервные копии:
$ sudo tar -czvf /srv/backup/tarantool.tar.gz /srv/backup/tarantool
-
Перед созданием резервной копии убедитесь, что на сервере мониторинга нет директории
/srv/backup/opensearch/$(date '+%Y%m%d'). -
Остановите OpenSearch и выполните резервное копирование директорий и файлов.
-
Создайте на узле мониторинга директорию для резервной копии:
$ sudo mkdir -p /srv/backup/opensearch/$(date '+%Y%m%d') -
Создайте резервную копию:
$ sudo docker stop opensearch opensearch_dashboards \&& sudo cp -pr /var/lib/docker/volumes/opensearch-data1 /srv/backup/opensearch/$(date '+%Y%m%d')/ \&& sudo cp /etc/opensearch/opensearch-dashboards.yml /srv/backup/opensearch/$(date '+%Y%m%d')/ \&& sudo docker start opensearch opensearch_dashboards -
Заархивируйте резервную копию:
$ sudo tar -czvf /srv/backup/opensearch/opensearch-$(date +%Y%m%d-%H%M).tar.gz /srv/backup/opensearch/$(date '+%Y%m%d')/$ sudo rm -rf /srv/backup/opensearch/$(date '+%Y%m%d')
В результате будет создан файл /srv/backup/opensearch/opensearch-<ДАТА>-<ВРЕМЯ>.tar.gz с резервной копией базы OpenSearch.
Здесь:
<ДАТА>— дата создания резервной копии.<ВРЕМЯ>— время создания резервной копии.
Создайте на управляющем узле директорию для резервных копий:
$ sudo mkdir -p /srv/backup/etcd/
-
На управляющем узле создайте резервную копию:
$ sudo etcdctl --endpoints=127.0.0.1:22379 snapshot save /srv/backup/etcd/iam-$(date +%Y%m%d-%H%M).db -
Проверьте, что резервная копия создана:
$ sudo ls -lR /srv/backup/etcd/iam*Ответ должен содержать файл резервной копии вида:
/srv/backup/etcd/iam-<ДАТА>_<ВРЕМЯ>.db.Здесь:
<ДАТА>— дата создания резервной копии.<ВРЕМЯ>— время создания резервной копии.
Создайте резервную копию:
$ sudo etcdctl --endpoints=127.0.0.1:23379 snapshot save /srv/backup/etcd/magnum-$(date +%Y%m%d-%H%M).db
В результате будет создан файл /srv/backup/etcd/magnum-<ДАТА>_<ВРЕМЯ>.db.
Здесь:
<ДАТА>— дата создания резервной копии.<ВРЕМЯ>— время создания резервной копии.
-
На управляющем узле создайте резервную копию:
$ sudo etcdctl --endpoints=127.0.0.1:24379 snapshot save /srv/backup/etcd/scrooge-$(date +%Y%m%d-%H%M).db -
Проверьте, что резервная копия создана:
$ sudo ls -lR /srv/backup/etcd/scrooge*Ответ должен содержать файл резервной копии вида:
/srv/backup/etcd/scrooge-<ДАТА>_<ВРЕМЯ>.db.Здесь:
<ДАТА>— дата создания резервной копии.<ВРЕМЯ>— время создания резервной копии.
-
Сохраните
/var/lib/zookeeperна всех управляющих узлах любым удобным способом.Пример команды$ sudo tar -czvf /srv/backup/zookeeper-$(date +%Y%m%d-%H%M).tar.gz /var/lib/zookeeper -
Проверьте, что резервная копия создана:
$ sudo ls -lR /srv/backup/zookeeper*Ответ должен содержать файл резервной копии вида:
/srv/backup/zookeeper-<ДАТА>_<ВРЕМЯ>.db.Здесь:
<ДАТА>— дата создания резервной копии.<ВРЕМЯ>— время создания резервной копии.