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

- ті які вже роблять бекап

і ті які ще не роблять.

Як зробити резервну копію баз даних 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 резервних копій: