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

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

Postgresql

Для создания резервной копии и восстановления нужно:

  • Если сервис запущен в kubernetes:
    • Иметь доступ к кластеру Kubernetes.
    • Иметь установленную последнюю версию утилиты kubectl.
  • Если сервис запущен в docker:
    • Иметь доступ к серверу на котором сервис запущен.

Резервирование данных

Чтобы создать резервную копию:

  1. Получите доступ в консоль сервиса. - Для запущенных в kubernetes:
    Запустите следующую команду в командной строке, заменив <namespace> и <pod-name> на соответствующие значения:
    • <namespace>: укажите имя пространства имен, где установлен VK People Hub.
    • <pod-name>: укажите имя пода базы данных postgresql. Значение <pod-name> можно получить командой kubectl get po -n <namespace>. Итоговая команда:kubectl exec -n <namespace> <pod-name> -- /bin/bash
      Пример: kubectl exec -n people-hub postgresql-0 -- /bin/bash
  • Для запущенных в docker.
    Запустите следующую команду в командной строке, заменив <container-name> на соответствующие значения:
    • <container-name>: укажите имя пода базы данных postgresql. Значение <container-name> можно получить командой docker ps.
      Итоговая команда: docker exec -it <container-name> /bin/bash
      Пример: docker exec -it postgresql /bin/bash
  1. Создайте резервную копию Запустите следующую команду в консоли пода, заменив <username>,<database_name> и <backup_file_name> на соответствующие значения:
    • <username>: укажите имя пользователя базы данных, который имеет права на выполнение резервного копирования.
    • <database_name>: укажите имя базы данных, для которой вы хотите создать резервную копию.
    • <backup_file_name>.sql: укажите название файла, в который будет сохранена резервная копия. Обычно это файл с расширением .sql. Итоговая команда: pg_dump -U <username> -d <database_name> -f /var/lib/postgresql/data/<backup_file_name>.sql
      Пример: pg_dump -U intranet -d news -f /var/lib/postgresql/data/news.sql

Повторите этот пункт для каждой базы данных продукта, которую нужно резервировать.

  1. Скопируйте резервную копию. - Для запущенных в kubernetes.
    Запустите следующую команду в командной строке, заменив <pod-name> и <backup_file_name> на соответствующие значения:
    • <namespace>: укажите имя пространства имен, где установлен VK People Hub.
    • <pod-name>: укажите имя пода базы данных postgresql. Значение <pod-name> можно получить командой kubectl get po -n <namespace>
    • <backup_file_name>.sql: укажите название файла, в который будет сохранена резервная копия. Обычно это файл с расширением .sql
    • <local_path>: укажите локальный путь, где будет храниться резервная копия. Итоговая команда: kubectl cp -n <namespace> <pod-name>:/var/lib/postgresql/data/<backup_file_name>.sql /<local_path>/<backup_file_name>.sql
      Пример: kubectl cp -n people-hub postgresql-0:/var/lib/postgresql/data/news.sql /ph-db-backup/news.sql
  • Для запущенных в docker.
    Запустите следующую команду в командной строке, заменив <container-name> и <backup_file_name> на соответствующие значения:

    • <container-name>: укажите имя пода базы данных postgresql. Значение <container-name> можно получить командой docker ps
    • <backup_file_name>.sql: укажите название файла, в который будет сохранена резервная копия. Обычно это файл с расширением .sql
    • <local_path>: укажите локальный путь, где будет храниться резервная копия.
      Итоговая команда: docker cp -n <container-name>:/var/lib/postgresql/data/<backup_file_name>.sql /<local_path>/<backup_file_name>.sql
      Пример: docker cp postgresql:/var/lib/postgresql/data/news.sql /ph-db-backup/news.sql

    Повторите этот пункт для каждой базы данных продукта, которую нужно резервировать.

Восстановление данных

Чтобы восстановить данные из резервной копии:

  1. Скопируйте резервную копию. - Для запущенных в kubernetes.
    Запустите следующую команду в командной строке, заменив <pod-name> и <backup_file_name> на соответствующие значения:
    • <namespace>: укажите имя пространства имен, где установлен VK People Hub.
    • <pod-name>: укажите имя пода базы данных postgresql. Значение <pod-name> можно получить командой kubectl get po -n <namespace>
    • <backup_file_name>.sql: укажите название файла, в который была сохранена резервная копия. Обычно это файл с расширением .sql
    • <local_path>: укажите локальный путь, где хранится резервная копия.
      Итоговая команда: kubectl cp -n <namespace> /<local_path>/<backup_file_name>.sql <pod-name>:/var/lib/postgresql/data/<backup_file_name>.sql
      Пример: kubectl cp -n people-hub /ph-db-backup/news.sql postgresql-0:/var/lib/postgresql/data/news.sql
  • Для запущенных в docker.
    Запустите следующую команду в командной строке, заменив <container-name> и <backup_file_name> на соответствующие значения:

    • <container-name>: укажите имя пода базы данных postgresql. Значение <container-name> можно получить командой docker ps
    • <backup_file_name>.sql: укажите название файла, в который была сохранена резервная копия. Обычно это файл с расширением .sql
    • <local_path>: укажите локальный путь, где хранится резервная копия.
      Итоговая команда: docker cp /<local_path>/<backup_file_name>.sql <container-name>:/var/lib/postgresql/data/<backup_file_name>.sql
      Пример: docker cp /ph-db-backup/news.sql postgresql:/var/lib/postgresql/data/news.sql

    Повторите этот пункт для каждой базы данных продукта, которую нужно восстановить.

  1. Получите доступ в консоль. - Для запущенных в kubernetes.
    Запустите следующую команду в командной строке, заменив <namespace> и <pod-name> на соответствующие значения:
    • <namespace>: укажите имя пространства имен где установлен VK People Hub.
    • <pod-name>: укажите имя пода базы данных postgresql. Значение <pod-name> можно получить командой kubectl get po -n <namespace>
      Итоговая команда: kubectl exec -n <namespace> <pod-name> -- /bin/bash
      Пример: kubectl exec -n people-hub postgresql-0 -- /bin/bash
  • Для запущенных в docker.
    Запустите следующую команду в командной строке, заменив <container-name> на соответствующие значения:
    • <container-name>: укажите имя пода базы данных postgresql. Значение <container-name> можно получить командой docker ps Итоговая команда: docker exec -it <container-name> /bin/bash
      Пример: docker exec -it postgresql /bin/bash
  1. Восстановите резервную копию: Запустите следующую команду в консоли, заменив <username>,<database_name> и <backup_file_name> на соответствующие значения:

    • <username>: укажите имя пользователя базы данных, который имеет права на выполнение резервного копирования.
    • <database_name>: укажите имя базы данных, для которой вы хотите восстановить резервную копию.
    • <backup_file_name>.sql: укажите название файла, в который была сохранена резервная копия. Обычно это файл с расширением .sql Итоговая команда: pg_restore -U <username> -d <database_name> /var/lib/postgresql/data/<backup_file_name>.sql
      Пример: pg_restore -U intranet -d news -f /var/lib/postgresql/data/news.sql

    Повторите этот пункт для каждой базы данных продукта, которую нужно восстановить.

MinIO

Резервирование данных

Для создания резервной копии и восстановления нужно:

  • Иметь установленную утилиту mc (Minio Client). Если ее нет, скачайте ее с официального сайта MinIO и установите в соответствии с инструкциями.

Чтобы зарезервировать данные:

  1. Добавьте конфигурацию вашего сервера MinIO. Для этого используйте команду mc alias set Итоговая команда: mc alias set <minio-name> <minio-endpoint> <ACCESS_KEY> <SECRET_KEY>
    Пример: mc alias set ph-minio https://minio.client-domain.ru thisisaccesskey thisissecretkey
    Где:

    • minio-name - имя вашего MinIO сервера.
    • minio-endpoint - URL вашего MinIO сервера.
    • ACCESS_KEY - ваш ключ доступа для MinIO.
    • SECRET_KEY - ваш секретный ключ для MinIO.
  2. Создайте резервную копию данных MinIO. Для этого используйте команду mc cp
    Итоговая команда: mc cp --recursive <minio-name>/<minio-bucket-name>/ /path/to/your/data
    Пример: mc cp --recursive ph-minio/media/ /backup/minio/26-02-2024/
    Где:

    • /path/to/your/data - путь к директории хранения резервной копии.
    • minio-name - имя вашего MinIO сервера.
    • minio-bucket-name - имя bucket в MinIO.

Восстановление данных

Чтобы восстановить данные из резервной копии:

  1. Добавьте конфигурацию вашего сервера MinIO. Для этого используйте команду mc alias set
    Итоговая команда: mc alias set <minio-name> <minio-endpoint> <ACCESS_KEY> <SECRET_KEY>
    Пример: mc alias set ph-minio https://minio.client-domain.ru thisisaccesskey thisissecretkey
    Где:

    • minio-name - имя вашего MinIO сервера.
    • minio-endpoint - URL вашего MinIO сервера.
    • ACCESS_KEY - ваш ключ доступа для MinIO.
    • SECRET_KEY - ваш секретный ключ для MinIO.
  2. Восстановите резервную копию данных MinIO. Для этого используйте команду mc cp Итоговая команда: mc cp --recursive /path/to/your/data <minio-name>/<minio-bucket-name>/
    Пример: mc cp --recursive /backup/minio/26-02-2024/ ph-minio/media/
    Где:

    • /path/to/your/data - путь к директории хранения резервной копии.
    • minio-name - имя вашего MinIO сервера.
    • minio-bucket-name - имя bucket в MinIO.

Redis

На данный момент продукт не хранит в сервисе значимую для бизнеса информацию. В резервировании нет необходимости.

Kafka

На данный момент продукт не хранит в сервисе значимую для бизнеса информацию. В резервировании нет необходимости.

ClickHouse

На данный момент продукт не хранит в сервисе значимую для бизнеса информацию. В резервировании нет необходимости.