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

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

Данный раздел описывает процедуру сохранения данных Проекты VK WorkSpace на случай системных сбоев, отказа оборудования и непредвиденных ситуаций.

ВНИМАНИЕ

Для создания архива остановка необязательна, но выполнение команд резервного копирования может негативно отразиться на работе пользователей.

Резервное копирование данных состоит из двух шагов.

  1. Создание дампов баз данных PostgreSQL.

  2. Создание файлового архива необходимых разделов docker-контейнеров.

Создание дампа баз данных PostgreSQL

Данная процедура описывает создание дампов баз данных PostgreSQL. Процедура автоматизирована и для запуска нужно выполнить следующие действия:

  1. Перейдите в директорию scripts.

    cd scripts
    ls -la
    -rwxrwx--- 1 user user 1275 Feb 02 11:22 db_backup.sh
    -rwxrwx--- 1 user user 1652 Feb 02 11:22 db_restore.sh
    
  2. Создайте директорию там, где будет сохранен архив, например:

    mkdir dumps
    ls -la
    -rwxrwx--- 1 user user 1275 Feb 02 11:22 db_backup.sh*
    -rwxrwx--- 1 user user 1652 Feb 02 11:22 db_restore.sh*
    drwxr-xr-x 2 user user 4096 Feb 02 13:26 dumps/
    
  3. Запустите скрипт db_backup.sh, указав целевую директорию, например:

    ./db_backup.sh ./dumps
    Creating backup: {{ shell_product_name }}_migrations_db_ 2025-02-02_04-00-00.bak container: database_service database: {{ shell_product_name }}_migrations_db
    Successfully copied 2.56kB to /home/tester/deploy/{{ shell_product_name }}/scripts/dumps/{{ shell_product_name }}_migrations_db_ 2025-02-02_04-00-00.bak
    Creating backup: {{ shell_product_name }}_attachment_db_ 2025-02-02_04-00-00.bak container: database_service database: {{ shell_product_name }}_attachment_db
    Successfully copied 9.22kB to /home/tester/deploy/{{ shell_product_name }}/scripts/dumps/{{ shell_product_name }}_attachment_db_ 2025-02-02_04-00-00.bak
    Creating backup: {{ shell_product_name }}_comment_db_ 2025-02-02_04-00-00.bak container: database_service database: {{ shell_product_name }}_comment_db
    Successfully copied 44kB to /home/tester/deploy/{{ shell_product_name }}/scripts/dumps/{{ shell_product_name }}_comment_db_ 2025-02-02_04-00-00.bak
    Creating backup: {{ shell_product_name }}db_ 2025-02-02_04-00-00.bak container: database_service database: {{ shell_product_name }}db
    Successfully copied 486kB to /home/tester/deploy/{{ shell_product_name }}/scripts/dumps/{{ shell_product_name }}db_ 2025-02-02_04-00-00.bak
    

В процессе выполнения вы увидите сообщения о создании архивов для каждой базы данных. По окончании будет создан конечный архив, сжатый с использованием aрхиватора gzip:

./dumps/{{ shell_product_name }}_wiki_db_2025-02-02_04-00-00.bak
./dumps/{{ shell_product_name }}_workspace_db_2025-02-02_04-00-00.bak
./dumps/{{ shell_product_name }}db_2025-02-02_04-00-00.bak
./dumps/{{ shell_product_name }}_2025-02-02_04-00-00_backup.tgz

Процесс по созданию архива для Проекты VK WorkSpace успешно завершен.

Создание файлового архива необходимых разделов docker-контейнеров

Для создания копий разделов контейнеров кластера нужно иметь привилегии пользователя root , так как по-умолчанию только root имеет доступ к этим разделам файловой структуры.

  1. Перейдите в директорию, где хранятся разделы docker-контейнеров. По умолчанию это /var/lib/docker/volumes/

    sudo -s
    cd /var/lib/docker/volumes/
    ls -la | grep {{ shell_product_name }}
    drwx-----x 3 root root     19 Feb 02 16:50 {{ shell_product_name }}_database-service-volume
    drwx-----x 3 root root     19 Feb 02 16:50 {{ shell_product_name }}_minio
    drwx-----x 3 root root     19 Feb 02 16:50 {{ shell_product_name }}_minio-export
    drwx-----x 3 root root     19 Feb 02 16:50 {{ shell_product_name }}_minio-tls
    drwx-----x 3 root root     19 Feb 02 16:50 {{ shell_product_name }}_rabbitmq-certificates-volume
    drwx-----x 3 root root     19 Feb 02 16:50 {{ shell_product_name }}_rabbit-volume
    drwx-----x 3 root root     19 Feb 02 16:50 {{ shell_product_name }}_redis
    drwx-----x 3 root root     19 Feb 02 16:50 {{ shell_product_name }}_redis-tls
    drwx-----x 3 root root     19 Feb 02 16:54 {{ shell_product_name }}_ssl-volume
    drwx-----x 3 root root     19 Feb 02 16:50 {{ shell_product_name }}_trusted-certificates-volume
    
  2. Заархивируйте необходимые директории с помощью tar, учитывая, что архивация вложений может занять существенное время и зависит от размера директории {{ shell_product_name }}_minio например:

    /var/lib/docker/volumes/ $ tar -czvf volumes_backup.tgz
        ./{{ shell_product_name }}_ssl-volume \
        ./{{ shell_product_name }}_trusted-certificates-volume \
        ./{{ shell_product_name }}_minio
    

ВНИМАНИЕ

В данном примере указаны разделы, содержащие все данные, которые находятся в хранилище S3 minio, а также сертификаты SSL, которые вы, возможно, использовали для настройки HTTPS соединения.