Налаштування інкрементального бекапування бази даних

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування інкрементального бекапування бази даних
Середня
~2-3 робочих дні
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Налаштування інкрементального бекапування бази даних

Повні дампи бази даних кожну ніч — дорого за дисковим простором та часом, особливо коли база займає десятки гігабайт. Інкрементальні резервні копії зберігають лише зміни з моменту останньої резервної копії.

Типи інкрементальних резервних копій

Differential — зберігає всі зміни з останньої повної резервної копії. Відновлення: повна + одна differential.

Incremental — зберігає лише зміни з останньої будь-якої резервної копії. Відновлення: повна + ланцюг incremental.

WAL-based (PostgreSQL) — неперервна архівація журналів транзакцій, основа для PITR.

PostgreSQL: WAL-архівація через pgBackRest

# /etc/pgbackrest/pgbackrest.conf
[global]
repo1-path=/var/lib/pgbackrest
repo1-retention-full=2
repo1-retention-diff=7
log-level-console=info

[myapp]
pg1-path=/var/lib/postgresql/14/main

Ініціалізація та перша повна резервна копія:

pgbackrest --stanza=myapp stanza-create
pgbackrest --stanza=myapp --type=full backup

Наступні інкрементальні резервні копії:

# Differential (раз на тиждень)
pgbackrest --stanza=myapp --type=diff backup

# Incremental (щодня)
pgbackrest --stanza=myapp --type=incr backup

Cron розписання:

# Повна резервна копія раз на тиждень (неділя 01:00)
0 1 * * 0  pgbackrest --stanza=myapp --type=full backup
# Differential (пн-сб 01:00)
0 1 * * 1-6 pgbackrest --stanza=myapp --type=diff backup

MySQL: Percona XtraBackup

Єдиний інструмент, який підтримує справжні інкрементальні резервні копії MySQL без блокувань:

# Повна резервна копія
xtrabackup --backup --target-dir=/var/backups/mysql/full/

# Перша інкрементальна
xtrabackup --backup \
  --target-dir=/var/backups/mysql/incr1/ \
  --incremental-basedir=/var/backups/mysql/full/

# Друга інкрементальна (базується на incr1)
xtrabackup --backup \
  --target-dir=/var/backups/mysql/incr2/ \
  --incremental-basedir=/var/backups/mysql/incr1/

Відновлення:

# Підготовка повної резервної копії
xtrabackup --prepare --apply-log-only --target-dir=/var/backups/mysql/full/

# Застосування інкрементальних
xtrabackup --prepare --apply-log-only \
  --target-dir=/var/backups/mysql/full/ \
  --incremental-dir=/var/backups/mysql/incr1/
xtrabackup --prepare \
  --target-dir=/var/backups/mysql/full/ \
  --incremental-dir=/var/backups/mysql/incr2/

Хмарне сховище та дедупліцирування

Інструменти з вбудованою дедупліцирування та компресією значно скорочують обсяг сховища:

  • Restic — зашифровані інкрементальні резервні копії до S3/GCS/B2/SSH
  • Borg Backup — дедупліцирування на рівні блоків
  • Duplicati — з веб-інтерфейсом
# Restic: ініціалізація репозиторію
restic -r s3:s3.amazonaws.com/my-bucket/db-backups init

# Резервна копія директорії з дампами
restic -r s3:s3.amazonaws.com/my-bucket/db-backups \
  backup /var/backups/postgres/ \
  --password-file /etc/restic-password

Моніторинг та сповіщення

Метрики для контролю:

  • Розмір останньої резервної копії (різке зменшення — сигнал проблеми)
  • Час виконання резервної копії
  • Успішність пінгу healthcheck-сервісу
# Кінець скрипта — перевірка та healthcheck
if pgbackrest --stanza=myapp check; then
  curl -s "https://hc-ping.com/${HC_UUID}"
else
  curl -s "https://hc-ping.com/${HC_UUID}/fail"
fi

Тривалість

Налаштування pgBackRest або XtraBackup з інкрементальною стратегією — 1–2 робочих дні.