OSS Group OSS Group
>  Карта
>  Поиск
>  Контакты
>  OSS Group  ::  Admin  ::  Обновление версий PostgreSQL
  
РегистрацияЗабыли пароль?

↓  Быстрый поиск по Wiki


Режим поиска:   И   ИЛИ

↓  Доступные Wiki

↓  Навигация по сайту

[]

↓  Последняя новость

Загрузка...

↓  На эту страницу ссылаются:

Get Firefox!
[~]

Обновление версий 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   Оглавление  Карта раздела  Изменения за сутки  Изменения за неделю  Изменения за месяц



Valid XHTML 1.0 Transitional  Valid CSS!  [Valid RSS]