Как стать автором
Обновить

Обновление PostgreSQL сервера

Время на прочтение2 мин
Количество просмотров20K
Эти инструкции предполагают, что домашняя дерриктория pgsql расположена в /usr/local/pgsql, и данные находится в /usr/local/pgsql/data.

Если ваша конфигурация другая, замените соответствующие пути на свои. Внутренний формат хранения данных типично изменяется в каждом главном выпуске PostgreSQL. Поэтому, если Вы обновляете существующую установку, младше версии “8.3.x”, Вы должны сделать резервную копию, а затем восстановить данные. Если Вы обновляете PostgreSQL “8.3.x”, новая версия может использовать Ваши текущие файлы с данными, таким образом Вы сможете пропустить этапы резервного копирования и восстановления.

1. Делая резервную копию, удостоверьтесь, что Ваша база данных не обновляется. Это не затронет целостность резервной копии, но измененные данные не будут внесены. В случае необходимости, отредактируйте разрешения в файле/usr/local/pgsql/data/pg_hba.conf, чтобы закрыть доступ от всем кроме Вас. Чтобы создать резервную копию БД введите

pg_dumpall > outputfile

Если Вам нужно сохранить OIDs используйте ключ -o. Чтобы сделать резервную копию, Вы можете использовать команду pg_dumpall от версии, которой Вы в настоящий момент установлена. Для лучших результатов, однако, следует использовать команду pg_dumpall от PostgreSQL 8.3.5, так как эта версия содержит исправления ошибок и усовершенствования по старшим версиям. Совет может показаться странным, так как Вы еще не установили новую версию, можно последовать ему, если Вы планируете установить новую версию без предварительного удаления старой версии. В этом случае Вы можете сначала заканчивать установку и потом перенести данные. Это также уменьшит время простоя.

2. Остановите старый сервер:

pg_ctl stop

или (в зависимости от установки PgSQL в вашей системе)

/etc/rc.d/init.d/postgresql stop

3. Переименуйте или удалите старый домашний каталог pgsql. Можно переименовать справочник, вместо того, чтобы удалить его, в случае, если появятся проблемы при установке вы сможете вернуться к старой версии. Имейте в виду, что домашний каталог базы может занимать существенное дисковое пространство. Чтобы переименовать справочник, используйте команду:

mv /usr/local/pgsql /usr/local/pgsql.old

4. Установите новую версию PostgreSQL (http://www.postgresql.org/docs/current/static/install-procedure.html)

5. Инициализируйте вновь установленную базу данных (необходимо запускать команды от пользователя под которым будет работать сервер БД, обычно это пользователь pgsql).

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

6. Восстановите необходимые настройки pg_hba.conf и postgresql.conf.

7. Запустите сервер базы данных (опять же от пользователя под которым должен работать сервер БД):

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data

8. Наконец, восстановите свои данные из резервной копии

/usr/local/pgsql/bin/psql -d postgres -f outputfile

Используйте новую версию PgSQL!

Оригинл статьи

upd: перед обновлением тщательно подумайте над тем что делаете, т.к. версии не всегда совместимы, и приложения которые ранее работали с вашим сервером могут перестать работать.
upd2: в случае если вы столкнулись с тем, Что ваши приложения несовместимы с обновленной версией, установите обратно предыдущую версию и замените в ней каталог /usr/local/pgsql/data на ранее сохраненный (если вы его не удалили, а переименовали в п.3).
Теги:
Хабы:
Всего голосов 7: ↑5 и ↓2+3
Комментарии2

Публикации