Як зробити резервну копію баз даних postgresql на ubuntu, тегованих Вілан
- ті які вже роблять бекап
і ті які ще не роблять.

У цьому пості я постараюся розповісти про деякі способи, якими ви можете зробити резервну копію PostgreSQL. Для тестів будемо використовувати Ubuntu 12,04 VPS з PostgreSQL 9.1. Для більшості сучасних дистрибутивів і останніх версії PostgreSQL мої поради будуть актуальні.
- Створення резервної копії PostgreSQL за допомогою pg_dump
PostgreSQL включає в себе утиліту під назвою «pg_dump». яка дозволяє зробити дамп бази даних в файл. Утиліта консольна, синтаксис досить простий:
Команда повинна бути запущена під користувачем з привілеями на читання бази даних.
Як варіант ми можемо увійти через sudo під користувачем «рostgres» і виконати команду:
«Pg_dump» - це «повноцінний» клієнт PostgreSQL. тобто при необхідності її можна запустити з віддаленої машини, якщо є відповідні дозволи до бази даних.
Розширений синтаксис виглядає наступним чином:
- Як відновити дампи pg_dump в PostgreSQL
Щоб відновити резервну копію, створену pg_dump, необхідно перенаправити файл з дампом в стандартне введення psql:
Ця операція не створює нову базу даних. Про це необхідно подбати заздалегідь.
Для прикладу, створимо нову базу даних під назвою «restored_database», а потім розгорнемо дамп під назвою «database.bak»:
Порожня база даних повинна бути створена за допомогою шаблону «template0«. Так само нам необхідно переконатися в наявності користувача з необхідними правами на створювану базу, в іншому випадку нам доведеться створити нового:
За замовчуванням, PostgreSQL намагатиметься продовжити відновлення бази даних, навіть якщо він сталкнется з помилками. З багатьох причин так робити не варто. Ми можемо явно вказати PostgreSQL на зупинку, в разі будь-якої помилки:
З даною опцією ми отримаємо частково відновлену базу даних.
Можна спробувати відновити весь дамп в одну транзацію, тобто бекап буде або повністю відновлений або не відновлено зовсім. Даний режим може бути заданий, за допомогою опцій -1 або -single-transaction для psql.
При цьому будь-яка помилка призведе до відкату процесу відновлення, що може зажадати досить тривалого часу.
Щоб заощадити час, можна зробити резервну копію всіх баз даних у вашій системі, за допомогою утиліти «pg_dumpal l»:
Схожим способом можна відновити бази даних:
Резервні копії є важливим аспектом при будь-якій роботі з даними. На щастя, PostgreSQL включає утиліти, необхідні для ефективного резервного копіювання важливої інформації. Як з будь-яким видом резервного копіювання, важливо регулярно перевіряти свої резервні копії.
Як доповнення скрипт. який створює резервну копію з міткою часу і зберігає останні 14 резервних копій: