Upgrade PostgreSQL 9.2 do 9.3 na CentOS 6.5

Opublikowano: 06.09.2014 | Kategoria: Linux | Tagi: , , | Brak komentarzy »

PostgreSQL logoPrzed rozpoczęciem prac, dobrze jest wykonać backup bazy danych. Przejście z wersji 9.2 na 9.3 wymaga migracji danych, co zostanie opisane poniżej.

1. Instalujemy PGDG file w wersji przeznaczonej dla naszego systemu operacyjnego (pełna lista odpowiednich paczek Postgresa jest dostępna na stronie yum.postgresql.org/repopackages.php#pg93).

[root@baza ~]# yum localinstall http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm
[root@baza ~]# yum update

Instalujemy znalezione przez YUM biblioteki zależności dla Postgresa 9.3.

2. YUM powinien widzieć już pakiety odpowiednie dla wersji 9.3:

[root@baza ~]# yum list postgres* | grep 93

3. Sprawdzamy, jakie pakiety mieliśmy zainstalowane dla wersji 9.2 (możesz mieć u siebie nieco inną listę):

[root@baza ~]# rpm -qa | grep postgre | grep 92
postgresql92-libs-9.2.9-1PGDG.rhel6.x86_64
postgresql92-contrib-9.2.9-1PGDG.rhel6.x86_64
postgresql92-9.2.9-1PGDG.rhel6.x86_64
postgresql92-server-9.2.9-1PGDG.rhel6.x86_64
postgresql92-devel-9.2.9-1PGDG.rhel6.x86_64

4. Instalujemy pakiety w wersji dla Postgres 9.3:

[root@baza ~]# yum installpostgresql93-server postgresql93-contrib postgresql93-devel

5. Inicjalizujemy nową bazę danych:

[root@baza ~]# service postgresql-9.3 initdb

Dane bazy pod CentOS znajdują się w katalogu /var/lib/pgsql/data/

6. Zatrzymujemy wersję 9.2 (wersja 9.3 też powinna być wyłączona):

[root@baza ~]# service postgresql-9.2 stop

7. Uruchamiamy migrację danych pomiędzy dwoma wersjami PostgreSQL (pg_update) jako użytkownik postgres:

[root@baza ~]# su - postgres
-bash-4.1$ /usr/pgsql-9.3/bin/pg_upgrade -b /usr/pgsql-9.2/bin/ -B /usr/pgsql-9.3/bin -d /var/lib/pgsql/9.2/data/ -D /var/lib/pgsql/9.3/data/
-bash-4.1$ exit

8. Kopiujemy ustawienia zabezpieczeń – bez nich prawdopodobnie nie będzie działała autoryzacja

a) kopia z poprzedniej wersji:

[root@baza ~]# cp /var/lib/pgsql/9.2/data/pg_hba.conf /var/lib/pgsql/9.3/data/pg_hba.conf

b) świeża kopia do przeedytowania według własnych potrzeb:

[root@baza ~]# cp /usr/pgsql-9.3/share/pg_hba.conf.sample /var/lib/pgsql/9.3/data/pg_hba.conf

9. Uruchamiamy usługę:

[root@baza ~]# service postgresql-9.3 start

10. Dodajemy wersję 9.3 do autostartu:

[root@baza ~]# chkconfig postgresql-9.3 on

a 9.2 usuwamy:

[root@baza ~]# chkconfig postgresql-9.2 off

Sprawdzamyz zmiany w autostarcie:

[root@baza ~]# chkconfig --list | grep postgres
postgresql-9.2 0:wyłączone 1:wyłączone 2:wyłączone 3:wyłączone 4:wyłączone 5:wyłączone 6:wyłączone
postgresql-9.3 0:wyłączone 1:wyłączone 2:włączone 3:włączone 4:włączone 5:włączone 6:wyłączone

11. Gotowe. Pozostaje kwestia odinstalowania starej wersji, gdy sprawdzimy już czy w nowej wszystko gra:

[root@baza ~]# yum erase postgresql92

Pliki danych trzeba będzie usunąć ręcznie.

Artykuł powstał przy współpracy z firmą tworzącą oprogramowanie dla radia – Fanatical Code.



Skomentuj

Aby uatrakcyjnić czy też wzbogadzić swój komentarz o linki lub typografię, możesz wykorzystać następujące tagi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>