Закрыть

Для эффективной работы на сайте используются cookie и обработка персональных данных. Пользуясь этим сайтом, вы соглашаетесь с правилами использования сайта. Подробнее

Цитата дня

Vivazzi.ru

Личный сайт Мальцева Артема

Если человек стремится к чему-то всем своим сердцем, он обязательно сумеет добиться того, чего хочет, даже если это кажется невозможным, даже если все окружающие открыто заявляют ему, что это невозможно.

Чак Норрис

Резервное копирование баз данных postgresql

26 января 2014 г. 17:55

Бекап базы данных

Все знают насколько важна задача резервирования данных, и чем скорее вы это сделаете, тем спокойнее будет. Существуют многие подходы к решению данной задачи. Я лишь опишу свой с ответами на вставшие передо мной вопросы:

  1. Создание бекапа БД postgresql без пароля утилитой pg_dump.
  2. Написание скрипта, который создаёт бекап базы данных (с сжатием) картинкок.
  3. Добавление задания в cron.

Так как резервное копирование должно осуществляться периодически, например, каждый день, то необходимо сделать так, чтобы бекап происходил без пароля. На просторах интернета я наткнулся на примеры:

pg_dump -h localhost -p 5432 -U user_name -F c -b -v -f mydb.backup mydb
pg_dump -U user_name -F c -v -f /home/test_db.backup test_db

который из которых прекрасно делает бекап, но требует пароль.

Чтобы производился бекап без пароля, нужно в файле /etc/postgresql/9.1/main/pg_hba.conf найти строку local all all peer и значение peer заменить на trust:

local   all   all   trust

Теперь при выполнении команды:

pg_dump -U vivazzi -F c -f test_db.backup test_db

Всё должно заработать.

Восстановление базы данных из бекапа

Чтобы восстановить базу данных, можно воспользоваться следующими командами:

pg_restore -U postgres -d project /path/to/db/
pg_restore --host localhost --port 5432 --username user --dbname test2 --verbose /home/test/db.backup
pg_restore --host 62.109.10.27 --port 5432 --username "user" --dbname "db_test" --no-password  --verbose "E:\db.backup"

Бекап и восстановление всех баз данных

Создание дампа всех баз данных:

pg_dumpall > output_file

Про pg_dumpall ещё можно почитать здесь: http://postgresql.ru.net/manual/backup-dump.html

Чтобы восстановить дамп всех баз данных, нужно зайти в pg_hba.conf (/etc/postgresql/9.1/main/pg_hba.conf) и поменять строчку local all postgres peer на:

local   all             postgres                                trust

Затем выполнить команду:

sudo psql -f path/to/db -U postgres postgres

Оцените статью

0 из 5 (всего 0 оценок)

Поля, отмеченные звёздочкой ( * ) , являются обязательными.

Спасибо за ваш отзыв!

Автор статьи

Права на использование данной статьи, расположенной на настоящей странице http://vivazzi.ru/it/backup-postgresql/:

Разрешается копировать статью с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор статьи: Мальцев Артём
Ссылка на статью: <a href="http://vivazzi.ru/it/backup-postgresql/">http://vivazzi.ru/it/backup-postgresql/</a>

Подробнее: Правила использования сайта

Вам нужно саморазвиваться или вы хотите зарабатывать деньги?

Или вы ищите хорошие IT сервисы или книги? Сохраните свое время и взгляните на мою подборку рекомендаций, которыми постоянно пользуюсь.
Посмотреть рекомендации

Комментариев: 0

Вы можете оставить комментарий как незарегистрированный пользователь. Но, зарегистрировавшись, вы сможете получать оповещения об ответах, а также иметь доступ к своему личному аккаунту для просмотра своих комментариев.

Чтобы оставить комментарий от своего имени войдите или зарегистрируйтесь обычным способом или через социальные сети:

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте