Резервное копирование¶
Postgresql¶
Для создания резервной копии и восстановления нужно:
- Если сервис запущен в kubernetes:
- Иметь доступ к кластеру Kubernetes.
- Иметь установленную последнюю версию утилиты kubectl.
- Если сервис запущен в docker:
- Иметь доступ к серверу на котором сервис запущен.
Резервирование данных¶
Чтобы создать резервную копию:
- Получите доступ в консоль сервиса.
- Для запущенных в 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
- Создайте резервную копию
Запустите следующую команду в консоли пода, заменив
<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
Повторите этот пункт для каждой базы данных продукта, которую нужно резервировать.
- Скопируйте резервную копию.
- Для запущенных в 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
Повторите этот пункт для каждой базы данных продукта, которую нужно резервировать.
Восстановление данных¶
Чтобы восстановить данные из резервной копии:
- Скопируйте резервную копию.
- Для запущенных в 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
Повторите этот пункт для каждой базы данных продукта, которую нужно восстановить.
- Получите доступ в консоль.
- Для запущенных в 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
-
Восстановите резервную копию: Запустите следующую команду в консоли, заменив
<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 и установите в соответствии с инструкциями.
Чтобы зарезервировать данные:
-
Добавьте конфигурацию вашего сервера 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.
-
Создайте резервную копию данных 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.
Восстановление данных¶
Чтобы восстановить данные из резервной копии:
-
Добавьте конфигурацию вашего сервера 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.
-
Восстановите резервную копию данных 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¶
На данный момент продукт не хранит в сервисе значимую для бизнеса информацию. В резервировании нет необходимости.