PostgreSQL
From RCUB
(Dodata sekcija za optimizovanje Postgresa) |
(→Upgrade major verzije) |
||
Line 119: | Line 119: | ||
===Optimizovanje servera=== | ===Optimizovanje servera=== | ||
− | |||
Za izvlačenje maksimuma mogućnosti iz PostgreSQL-a poželjno je pročitati detljno ceo [http://wiki.postgresql.org/wiki/Performance_Optimization Optimization Guide]. Poglavlje [http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server Tuning] se najviše tiče optimizovanja svakodnevnog rada servera i objašnjava sve tajne postgres.conf. Jedan od interesatnih članaka je [http://www.linux.com/learn/tutorials/394523-configuring-postgresql-for-pretty-good-performance ovde] a postoji i cela [http://www.packtpub.com/postgresql-90-high-performance/book knjiga]. | Za izvlačenje maksimuma mogućnosti iz PostgreSQL-a poželjno je pročitati detljno ceo [http://wiki.postgresql.org/wiki/Performance_Optimization Optimization Guide]. Poglavlje [http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server Tuning] se najviše tiče optimizovanja svakodnevnog rada servera i objašnjava sve tajne postgres.conf. Jedan od interesatnih članaka je [http://www.linux.com/learn/tutorials/394523-configuring-postgresql-for-pretty-good-performance ovde] a postoji i cela [http://www.packtpub.com/postgresql-90-high-performance/book knjiga]. | ||
Line 154: | Line 153: | ||
| 1MB || 4MB || 40MB || align="right"| obratiti pažnju da <code>max_connections</code>*<code>work_mem</code> bude manji od npr. RAM/8 | | 1MB || 4MB || 40MB || align="right"| obratiti pažnju da <code>max_connections</code>*<code>work_mem</code> bude manji od npr. RAM/8 | ||
|} | |} | ||
+ | Slične rezultate moguće je dobiti i ovim odličnim online kalkulatorom za podešavanja PostgreSQL-a [http://pgtune.leopard.in.ua/ online kalkulatorom za podešavanja PostgreSQL-a]. | ||
− | ==Koriscenje | + | ==Koriscenje proceduralnih jezika== |
PostgreSQL podrzava vise proceduralnih jezika: PL/pgSQL, PL/Tcl, PL/Perl, PL/Python. | PostgreSQL podrzava vise proceduralnih jezika: PL/pgSQL, PL/Tcl, PL/Perl, PL/Python. | ||
Line 161: | Line 161: | ||
CREATE LANGUAGE plpgsql; | CREATE LANGUAGE plpgsql; | ||
− | |||
==Backup i restore== | ==Backup i restore== | ||
Line 187: | Line 186: | ||
Kod Postgresa su prve dve cifre oznaka major verzije, što znači da je | Kod Postgresa su prve dve cifre oznaka major verzije, što znači da je | ||
− | npr. | + | npr. 9.2 major upgrade u odnosu na 9.1 i slično. |
Major upgrade podrazumeva da je došlo do promene na strukturi podataka | Major upgrade podrazumeva da je došlo do promene na strukturi podataka | ||
u fajl sistemu i da je potreban export/import prilikom upgrade-a. | u fajl sistemu i da je potreban export/import prilikom upgrade-a. | ||
− | Za razliku od toga kod minor upgrade-a (npr. | + | Za razliku od toga kod minor upgrade-a (npr. 9.1.2 u 9.1.4) struktura |
podataka je sigurno ostala ista i nije potreban eksport i import. | podataka je sigurno ostala ista i nije potreban eksport i import. | ||
Pre upgrade-a uraditi backup, i premestiti DB klaster direktorijum: | Pre upgrade-a uraditi backup, i premestiti DB klaster direktorijum: | ||
+ | su - postgres | ||
pg_dumpall > pg_all.sql | pg_dumpall > pg_all.sql | ||
− | + | ||
− | + | exit | |
− | mv /var/lib/pgsql /var/lib/pgsql.old | + | |
+ | service postgresql-9.3 stop | ||
+ | mv /var/lib/pgsql/9.3 /var/lib/pgsql/9.3-old | ||
Opisano u | Opisano u | ||
− | + | ||
− | http://www.postgresql.org/docs/9. | + | http://www.postgresql.org/docs/9.5/static/upgrading.html |
Za upgrade servera treba koristiti Postgresov yum repozitorijum: | Za upgrade servera treba koristiti Postgresov yum repozitorijum: | ||
Line 212: | Line 214: | ||
Prateci linkove, nađite repository RPM, na primer: | Prateci linkove, nađite repository RPM, na primer: | ||
− | + | https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-6-x86_64/pgdg-centos95-9.5-2.noarch.rpm | |
− | + | https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-6-i386/pgdg-centos95-9.5-2.noarch.rpm | |
− | + | ||
+ | https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-5-x86_64/pgdg-centos95-9.5-2.noarch.rpm | ||
+ | https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-5-i386/pgdg-centos95-9.5-2.noarch.rpm | ||
Instalirajte RPM sa: | Instalirajte RPM sa: | ||
− | wget | + | wget https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-5-x86_64/pgdg-centos95-9.5-2.noarch.rpm |
− | + | yum install pgdg-centos95-9.5-2.noarch.rpm | |
+ | yum remove pgdg-centos93 | ||
+ | yum remove pgdg-centos91 | ||
− | Proverite da li se u /etc/yum.repos.d/ nalazi pgdg- | + | Proverite da li se u /etc/yum.repos.d/ nalazi pgdg-XX-centos.repo. |
− | + | Proveriti da nema viškova (9.1 i 9.3). Ako ima konflikta deinstalirati stari Postgres. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
Isključite traženje Postgresa iz standardnog repozitorijuma tako što ćete | Isključite traženje Postgresa iz standardnog repozitorijuma tako što ćete | ||
u fajlu /etc/yum.repos.d/CentOS-Base.repo na kraj sekcija [base] i | u fajlu /etc/yum.repos.d/CentOS-Base.repo na kraj sekcija [base] i | ||
Line 236: | Line 236: | ||
exclude=postgresql* | exclude=postgresql* | ||
− | |||
− | |||
− | |||
− | '''Za 9. | + | '''Za 9.5''', instalirajte postgres: |
− | yum install | + | yum install postgresql95-server |
− | Terebalo bi da je kreiran novi, prazan direktorijum /var/lib/pgsql/data. | + | Terebalo bi da je kreiran novi, prazan direktorijum /var/lib/pgsql/9.3/data. |
Proveriti. Kao korisnik root izvršiti inicijalizaciju DB klastera: | Proveriti. Kao korisnik root izvršiti inicijalizaciju DB klastera: | ||
− | + | service postgresql-9.5 initdb | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Startovati Postgres service kao korisnik root: | Startovati Postgres service kao korisnik root: | ||
− | + | service postgresql-9.5 start | |
− | + | ||
− | + | ||
Uraditi restore baze: | Uraditi restore baze: | ||
su - postgres | su - postgres | ||
− | psql -d postgres -f | + | psql -d postgres -f pg_all.sql |
Uraditi vacuum: | Uraditi vacuum: | ||
vacuumdb -az | vacuumdb -az | ||
+ | |||
+ | exit | ||
+ | Ukljičiti novu verziju postgresa: | ||
+ | |||
+ | chkconfig postgresql-9.3 off | ||
+ | chkconfig postgresql-9.5 on --levels 2345 | ||
+ | |||
Podesiti postgresql.conf i pg_hba.conf. Podesiti iptables. | Podesiti postgresql.conf i pg_hba.conf. Podesiti iptables. | ||
− | + | su - postgres | |
− | + | mv 9.5/data/pg_hba.conf 9.5/data/pg_hba.conf.orig | |
+ | cp 9.3/data/pg_hba.conf 9.5/data/pg_hba.conf | ||
+ | cp 9.5/data/postgresql.conf 9.5/data/postgresql.conf.orig | ||
==Spoljašne veze== | ==Spoljašne veze== | ||
* [http://trac.biostr.washington.edu/trac/wiki/PostgreSql lista psql komandi] | * [http://trac.biostr.washington.edu/trac/wiki/PostgreSql lista psql komandi] |