Полная версия
OSS Group
Авторизация
Навигация
Текущее местоположение: OSS Group :: Wiki :: Admin :: Обновление версий PostgreSQL
Главное меню:
Главная
Документация
Разработка
Контакты
Поиск
Карта сайта
Wiki
Блоги
Разделы Wiki:
Admin APT Sandbox
Обновление версий PostgreSQL
Из-за возможных проблем с совместимостью форматов баз данных при обновлении PostgreSQL желательно выполнять резервное копирование баз.
Рекомендуемая последовательность upgrade для PostgreSQL:
- Сделать полный дамп базы - см. Резервное копирование баз PostgreSQL.
- Получить список текущих пользователей баз, и их групп (из таблиц pg_user, pg_group)
- Обновить postgreslq (apt-get install postgresql).
- Если сервис успешно стартовал, вздохнуть с облегчением.
- Иначе: проверить наличие старых файлов сокетов.
- Иначе: проверить и удалить /var/lib/pgsql/data/postmaster.pid
- Иначе: для диагностики можно выполнить вручную кусок из /etc/init.d/postgresql:
# locale_list=`/bin/su -l postgres -s /bin/sh -c '/usr/bin/locale'`
# export `/bin/echo $locale_list | /usr/bin/tr ' ' "\n" | /bin/grep LANG`
# /usr/bin/postmaster -D /var/lib/pgsql/data -r /var/lib/pgsql-root
postmaster запускать без ключа -S - в режиме вывода сообщений в STDERR.
- При необходимость обновления dataset: убить каталог /var/lib/pgsql/data
- Сделать новый каталог базы:
# /bin/su -s /bin/sh -l postgres -c '/usr/bin/initdb -E UTF8 --pgdata=/var/lib/pgsql-root/var/lib/pgsql/data'
Задавать кодировку базы (параметрт -E) обязательно. Для ru_RU.KOI8-R значение параметра - 'KOI8-R'. Без задания кодировки в последствии не будет правильно работать сортировка, поиск без учёта регистра, и т.д.
- Еще раз стартовать postgresql. Запуск должен пройти успешно.
- Восстановить настройки в pg_hba.conf и pgsql.conf
- Восстановить template1:
# /bin/su -s /bin/sh -l postgres -c '/usr/bin/pg_restore -d template1 /var/lib/pgsql/backups/template1.pgdump'
- Создать пользователей: su -l postgres -s /bin/bash -c "createuser -a/-A -d/-D <user>" (-a - может добавлять пользователей, -d - создавть базы; -A и -D - отрицание).
- Восстановить пароли пользователей: переписать файл old_date/global/pg_pwd в новую базу.
- Войти в базу template1 и добавить группы пользователей:
# su -l postgres -s /bin/bash -c '/usr/bin/psql template1'
$ create group <group> with user user1,user2,...
# su -l postgres -s /bin/sh -c 'cd /var/lib/pgsql/backups;for i in *.pgdump; do createdb -E KOI8-R `basename $i .pgdump`;pg_restore -d `basename $i .pgdump` $i; done'
Дата создания: 2006-05-24 13:03:17 (Фетисов Н. А. (naf))
Последнее изменение: 2007-04-09 09:12:00 (Фетисов Н. А. (naf))
Владелец: Фетисов Н. А. (naf)
Версия: 2 Все версии
Не показывать комментарии
Wiki::Admin
Карта раздела Оглавление Изменения за сутки Изменения за неделю Изменения за месяц
На эту страницу ссылаются:
©2006-2024 OSS Group. All rights reserved. | Техническая поддержка: Открытые Информационные Технологии и Системы