PostgreSQL

From RCUB
Jump to: navigation, search
(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 proceduralinih jezika==
+
==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. 8.4 major upgrade u odnosu na 8.3 i slično.
+
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. 8.4.0 u 8.4.1) struktura
+
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
   /etc/rc.d/init.d/postgresql stop
+
    
   /etc/rc.d/init.d/postgresql-9.0 stop
+
   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.0/interactive/install-upgrading.html
+
   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:
  
   http://yum.pgrpms.org/reporpms/8.3/pgdg-centos-8.3-7.noarch.rpm
+
   https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-6-x86_64/pgdg-centos95-9.5-2.noarch.rpm
   http://yum.pgrpms.org/reporpms/8.4/pgdg-centos-8.4-2.noarch.rpm
+
   https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-6-i386/pgdg-centos95-9.5-2.noarch.rpm
   http://yum.pgrpms.org/reporpms/9.0/pgdg-centos-9.0-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 http://yum.pgrpms.org/reporpms/9.0/pgdg-centos-9.0-2.noarch.rpm
+
   wget https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-5-x86_64/pgdg-centos95-9.5-2.noarch.rpm
   rpm -i pgdg-centos-9.0-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-8*-centos.repo.  
+
Proverite da li se u /etc/yum.repos.d/ nalazi pgdg-XX-centos.repo.  
Obrisati viškove. Na primer, ako se radi migracija sa 8.3 na 8.4 moguće je da već postoji
+
Proveriti da nema viškova (9.1 i 9.3). Ako ima konflikta deinstalirati stari Postgres.
stari pgdg-83-centos.repo koga treba obrisati. Ako ima konflikta deinstalirati stari Postgres.
+
 
+
'''Samo za upgrade na 8.x''', instalirajte javni ključ za Postgres:
+
 
+
  wget http://yum.pgsqlrpms.org/RPM-GPG-KEY-PGDG
+
  rpm --import RPM-GPG-KEY-PGDG
+
 
+
 
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 8.x''', update-ujte postgres sa:
 
 
 
  yum update postgresql
 
  
'''Za 9.0''', instalirajte postgres:
+
'''Za 9.5''', instalirajte postgres:
  
   yum install postgresql90-server
+
   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:
  
Za 9.0:
+
  service postgresql-9.5 initdb
  
  service postgresql-9.0 initdb
 
 
Za 8.x:
 
 
  su - postgres
 
  initdb -D /var/lib/pgsql/data
 
  
 
Startovati Postgres service kao korisnik root:
 
Startovati Postgres service kao korisnik root:
  
   exit
+
   service postgresql-9.5 start
  /etc/init.d/postgresql-9.0 start
+
 
  /etc/init.d/postgresql start
+
  
 
Uraditi restore baze:
 
Uraditi restore baze:
  
 
   su - postgres
 
   su - postgres
   psql -d postgres -f ../pgsql.old/pg_all.sql
+
   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.
  
Pri prelasku sa 8.3 na 8.4 često se može koristiti isti postgres.conf, samo treba izaciti parametar
+
  su - postgres
max_fsm_pages.
+
  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]

Latest revision as of 10:38, 26 July 2016

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox