База даних є критично важливою складовою будь-якого додатку чи веб-сайту. Для забезпечення надійності і безпеки важливо регулярно створювати резервні копії. Багато різних провайдерів hosting мають та роблять резервні копії протягом певного часу, але якщо у вас є свій сервер тому потрібно створювати резервні копії, звісно можна робити через ctr+c ctr+v, але що робити якщо у вас база даних знаходиться в docker, копіювати цілий докер? Тому ми розглянемо, як виконувати резервне копіювання бази даних для прикладу PostgresqL, яка працює в контейнері docker. Покажу як зробити копію, або з копії завантажити.
Створення резервної копії бази даних
Для початку нам потрібно знати назву докера за допомогою команди:
Після того як в нас є його id або назва потрібно зайти в докер та зробити копію бази, де робиться дуже легко за допомогою декілька команд
Цієї команди достатньо для зроблення резевної копії в контейнері
Створення тестової бази даних з копії
Буває багато різних ситуацій коли потрібно зробити тестову базу, або зробити дубль базиДля цього потрібно зайти в базу даних
Можна зайти за допомогою різних клієнтів або через термінал, кому як зручно та створити нову базу даних і перенести з файлу який ми створили базу в дану базу за допомогою командного рядка можна так Створюємо спочатку базу за допомогою createdb та після чого повідомляємо що в дану базу потрібно внести дані з sql файла.Обов'язково після заповненя бази даними потрібно налаштувати права доступу до бази, для виключення конфілктів та добавити права конкретному користувачу.
Тепер, коли у нас є копія бази даних, ми можемо здійснювати різноманітні маніпуляції, не хвилюючись, що дані можуть бути втрачені. Ми маємо тестову базу та навіть резервну копію, тому в разі необхідності ми можемо відновити нашу робочу базу даних
Автоматичне створення резервної копії
Для автоматичного створення можна виконати багато різних способів, я вибрав написання bash скрипта який буде робити резервну копію в контейнері та копіювати на сервер даний файл, також можна помістити даних скрипт в crontab та його запускати автоматично, або різними іншими способами які для кого зручнішіПриклад мого bash скрипту для створення резервної копії бази даних