Резервное копирование ПО Gitflic
Внимание !
Для выполнения резервного копирования вам необходимы утилиты
Резервное копирование
-
Установите необходимые утилиты
sudo apt update && sudo apt install postgresql-common postgresql-client redis-tools rsync s3cmd -yq
-
Остановите ПО GitFlic
-
Выполните резервное копирование базы данных postgresql, с помощью утилиты pg_dump
PGPASSWORD=<Пароль от базы данных> pg_dump -h <Адресс postgresql> -d <имя базы данных gitflic> -U <Роль для БД giflic> -b -v -f dump.sql
PGPASSWORD=<Пароль от базы данных> pg_dump -h <Адресс postgresql> -d <имя базы данных gitflic> -U <Роль для БД giflic> -F c -b -v -f dump.restore
-
Выполните резервное копирование базы данных redis, путем копирования файла бд dump.rdb
redis-cli <Параметры подключения БД> save cp /var/lib/redis/dump.rdb ./dump.rdb
-
Скопируйте статические данные сервера GitFlic. Директории img, repo, cicd, releases, registry по умолчанию
for d in img repo cicd releases registry; do cp -r /var/gitflic/$d ./ done
for d in img repo cicd releases registry; do rsync /var/gitflic/$d -avxH --delete-during <имя пользователя>@<адресс сервера>:backup/$d done
- В случае если у вас настроены бакеты s3, выполните резервное копирование бакетов.
- Для работы утилиты s3cmd, её потребуется предварительно сконфигурировать с соотвествии с вашим провайдером s3 хранилища
s3cmd sync "s3://<имя бакета>/" ./
-
Скопируйте файлы сертификатов
cp -r /opt/gitflic/cert ./
Восстановление данных
-
Установите необходимые утилиты
sudo apt update && sudo apt install postgresql-common postgresql-client redis-tools rsync s3cmd -yq
-
Остановите ПО GitFlic.
-
Воcстановите базу данных postgres
3.1. Подключитесь с помощью утилиты psql к базе данных gitflic
``` shell PGPASSWORD=<Пароль от базы данных> psql -h <Адресс postgresql> -d <имя базы данных gitflic> -U <Роль для БД giflic> ```
3.2. Удалите таблицы в базе данных
``` sql DO $$ DECLARE r RECORD; BEGIN FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = 'public') LOOP EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE'; END LOOP; END $$; \q ```
3.3. Восстановите таблицы из dump файла
``` shell PGPASSWORD=<Пароль от базы данных> psql -h <Адресс postgresql> -d <имя базы данных gitflic> -U <Роль для БД giflic> < dump.sql ```
Вы полните команду на восстановление
PGPASSWORD=<Пароль от базы данных> pg_restore -h <Адресс postgresql> -d <имя базы данных gitflic> -U <Роль для БД giflic> -c --if-exists dump.restore
-
Восстановите базу данных redis/keydb
-
Остановите базу данных
systemctl stop redis-server
-
Скопируйте файл с дампом базы в рабочую директорию
cp dump.rdb /var/lib/redis/dump.rdb
-
Запустите базу данных
systemctl start redis-server
-
-
Восстановите статические данные ПО гитфлик
for d in img repo cicd releases registry; do cp -r $d /var/gitflic/ done
for d in img repo cicd releases registry; do rsync <имя пользователя>@<адресс сервера>:backup/$d -avxH --delete-during /var/gitflic/$d done
- В случае если у вас настроены бакеты s3, выполните восстановление бакетов.
- Для работы утилиты s3cmd, её потребуется предварительно сконфигурировать с соотвествии с вашим провайдером s3 хранилища
s3cmd sync ./ "s3://<имя бакета>/"
- Восстановите файлы сертификатов
cp -r ./cert /opt/gitflic/cert