Як оновити PostgreSQL з версії 8.4 до 9.4?


18

Я хочу оновити свій PostgreSQL з версії 8.4 до 9.4 .

Документація не надто ясно для мене.

  1. Чи втрачу я старі бази даних, якщо пройду оновлення?
  2. Як я можу створити резервну копію своїх старих баз даних, якщо я хочу їх втратити після оновлення?
  3. Як я можу оновити свій psql?

Мій PostgreSQL працює на сервері CentOS 6.6 .


Якщо чесно, на пов'язаній сторінці опис дуже зрозумілий. Взяти смітник означає, що у вас є дамп для випадку, коли щось не працює. Це також означає, що ви цього не втрачаєте. Крім того, на цій сторінці є посилання, яке вказує на те, як насправді встановити нову версію - наприклад, на Ubuntu є postgresql-client-9.4пакет, який містить psql.
dezso

@dezso Отже, якщо я видалю psql 8.4 і перейду на 9.4, я втрачу старі бази даних?
Алекс Джоліг

3
Якщо взяти звалище з них, то ні. У будь-якому випадку у вас повинні бути регулярні резервні копії, які ви перевіряєте на відновлення, тому це взагалі не повинно бути проблемою. Крім того, якщо ви вирішите використовувати pg_upgrade, він зберігатиме ваші БД - але резервне копіювання також обов'язково в цьому випадку.
dezso

" How can I backup my old databases if" - немає, якщо . Ваші бази даних майже напевно стануть прекрасними після оновлення, але ви завжди маєте свіжі (бажано перевірені) резервні копії при виконанні такої операції у разі несподіваних проблем (припустимо, найгірше: відключення електроживлення або інша апаратна помилка може залишитися ви в положенні, яке важко відкотити назад або вперед від). Залежно від вашого звичайного плану резервного копіювання, можливо, не потрібно буде робити додаткові резервні копії.
Девід Спіллетт

Відповіді:


25

Ось як я вирішив свою проблему.

Оновіть Postgresql з 8,4 до 9,4 в центсах

 1. Yum Install PG9.4
 2. wget http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm
 3. yum install pgdg-redhat94-9.4-1.noarch.rpm
 4. yum install postgresql94-server
 5. service postgresql-9.4 initdb
 6. chkconfig postgresql-9.4 on

Резервні дані

 7. su - postgres

 8. pg_dumpall > dump.sql

Відновлення даних

 9. service postgresql stop

 10. service postgresql-9.4 start

 11. su - postgres

 12. psql < dump.sql

Налаштування доступу до мережі

vi /var/lib/pgsql/9.4/data/postgresql.conf

 1. listen_addresses = '*'
 2. port = 5432

/var/lib/pgsql/9.4/data/pg_hba.conf

# "local" is for Unix domain socket connections only
local   all         all                               ident
# IPv4 local connections:
host    all         all         127.0.0.1/32          ident
host    all         all         130.51.79.0/24        md5
host    all         all         10.210.29.0/24        md5
# IPv6 local connections:
host    all         all         ::1/128               ident

Видаліть PG8.4

 1. yum remove postgresql
 2. ln -s /usr/pgsql-9.4/bin/psql /usr/local/bin/psql

3
Я не впевнений, чому ви відхилили мою редакцію як "читабельність шкоди". Це насправді полегшує копіювання команд,
nhahtdh

1
Я тільки що зробив оновлення з 9,2 до 9,6, використовуючи цей метод, і він працював. Спасибі !
EisenHeim

Я думаю, що неможливо використовувати pgdump для міграції бази даних, наприклад, з терабайтами даних. Чи є інший спосіб зробити це?
deFreitas

З першої команди "Yum Install PG9.4" - це правильна література для всього?
Дейв

1
@deFreitas Я трохи запізнююся, але ви можете використовувати, pg_upgradeякщо оновити до> = 8.4 і якщо ви використовуєте той же сервер. pg_upgradeЦе корисно в цих випадках і справді швидше: для Ubuntu 18 мені знадобилося менше часу, pg_upgradeаніж pg_dumpвідновити базу даних 1 ГБ. Суть у тому, що вам потрібно встановити та запустити 2 версії постгресу в одній машині (звичайно, слухаючи різні порти).
EAmez

3

service postgresql-9.4initdb не працював для мене, мені довелося користуватися sudo /usr/pgsql-9.4/bin/postgresql94-setup initdb(знайдено тут ).

Дякую за чудові вказівки, мені вдалося оновити з 9,2 до 9,4 без жодних проблем, хоча мені довелося переналаштувати свій pg_hba.confфайл, що було тривіально.


1

Краще, ніж зв'язувати єдиний бінарний файл postgresql94 psql до / usr / (локальний /) бін, це використовувати систему альтернатив:

cd /etc/alternatives/
ls pgsql-* -1 | xargs -L 1 alternatives --auto

Що створює посилання бінарних файлів, mans, confs, ... of postgresql94 до каталогів за замовчуванням для CentOS.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.