View source
From RCUB
for
PostgreSQL
Jump to:
navigation
,
search
==JDBC parametri konekcije za PostgreSQL== JDBC connection string je oblika: jdbc:postgresql://server.rcub.bg.ac.rs/baza Default port je 5432, a drajver je: org.postgresql.Driver ==Hijerarhija== Hijerarhija u Postgresu je baza, šema, tabela. JDBC string za konekciju prima kao parametar samo ime baze, a ne i šemu. Tako da je verovatno najlakše kreirati posebne baze i koristiti njihove default "public" šeme. ==Instalacija putem YUM managera== Potrebne informacije su [http://yum.pgsqlrpms.org/index2.php ovde]. ==PSQL komande== '''psql''' je linux konzolni SQL klijent. Pokretanje iz klijenta kao '''root''' će vam verovatno prouzrokovati poruku o grešci psql: FATAL: database "root" does not exist Jer '''psql''' pokusava da otvori bazu koja ima isti naziv kao i korisnik, a koja ne postoji. Zbog toga je potrebno prvo se prebaciti na korisnika postgres sa su - postgres i zatim pozvati '''psql'''. Komande koje vam mogu biti od interesa: \l - listanje baza podataka \c - izbor aktivne baze podataka \dn - listanje svih sema u izabranoj bazi \dt - listanje svih tabela \du - listanje svih korisnika Kreiranje baze: CREATE DATABASE "TestBaza" WITH ENCODING='UTF8'; Kreiranje korisnika: CREATE USER username PASSWORD 'l0zinka'; Izbor baze: \c TestBaza Dodeljivanje privilegija nad default "public" šemom. GRANT ALL ON SCHEMA public TO username; Alternativa kreiranju korisnika koji pristupa ''public'' šemi, je kreiranje istoimene šeme i korisnika sa CREATE SCHEMA AUTHORIZATION username čime će biti kreirana šema ''username'' nad kojom korisnik ''username'' po defaultu ima sve privilegije (nije potreban grant). ===Kratka myslq -> psql tabela=== {| class="wikitable" border="1" style="background:#F3F3F3" |- ! MySQL <code>mysql</code> ! PostgreSQL <code>psql</code> |- | <code>SHOW COLUMNS;</code> | <code>\d ''table-name''</code> |- | <code>SHOW DATABASES;</code> | <code>\l</code> |- | <code>SHOW PROCESSLIST;</code> | <code>SELECT * FROM pg_stat_activity;</code> |- | <code>SHOW TABLES;</code> | <code>\d</code> |- | <code>SHOW USERS;</code> | <code>\du</code> |- | <code>USE ''db-name'';</code> | <code>\c ''db-name''</code> |} [http://trac.biostr.washington.edu/trac/wiki/PostgreSql] ==Konfigurisanje servera== Da biste omogućili pristup serveru preko JDBC-ja odnosno TCP/IP-ja, potrebno je da u '''data/postgresql.conf''' (najčešće u /var/lib/pgsql) navedete: listen_addresses = '*' # what IP address(es) to listen on; port = 5432 # (change requires restart) i da u '''data/pg_hba.conf''' dodate: # TYPE DATABASE USER CIDR-ADDRESS METHOD host mydb ognjen 147.91.4.123/32 md5 posle promena na kofiguracionim fajlovima potrebno je da restartujete server ili da kao korisnik '''postgres''' pozovete reload konfiguracije: sudo -u postgres pg_ctl reload -D /var/lib/pgsql/data/ ==Koriscenje proceduralinih jezika== PostgreSQL podrzava vise proceduralnih jezika: PL/pgSQL, PL/Tcl, PL/Perl, PL/Python. Uključivanje podrške za odgovarajući jezik na nivou baze podataka se radi sa, npr: CREATE LANGUAGE plpgsql; ==Backup i restore== Backup celog DB klastera (dakle svih baza podataka) radi lokalni korisnik 'postgres' direktno na serveru sa: pg_dumpall > db.dump Restore dumpa baze podataka radi na sveze instaliranom postgresu tj. sveze inicijalizovanom DB klasteru [1] lokalni korisnik 'postgres': psql -f db.dump postgres Ukoliko za restore nije na raspolaganju sveze instaliran Postgresa, tj. sveze inicijalizovan klaster, vec na primer treba uraditi restore posto je klaster ostecen (corrupted), onda je procedura sledeca: # Bekapovati fajlove pg_hba.conf i postgresql.conf iz DB klaster direktorijuma (najcesce /var/lib/pgsql/data). # Obrisati ceo DB klaster direktorijum. # Inicijalizovati DB klaster. # psql -f db.dump postgres Nakon restore-a DB klastera pametno je da se update-uju statistike sa: vacuumdb -az ==Upgrade sa 8.1 na 8.3 / 8.4== Standardna CentOS 5.2 instalacija sadrži PostgreSQL 8.1, koji je zastareo. Kod Postgresa su prve dve cifre oznaka major verzije, što znači da je 8.4 tri major verzije iznad 8.1. Pre upgrade-a uraditi backup, i premestiti DB klaster direktorijum, kao što je opisano u koracima 1-3 na: http://www.postgresql.org/docs/8.3/interactive/install-upgrading.html http://www.postgresql.org/docs/8.4/interactive/install-upgrading.html Za upgrade servera treba koristiti Postgresov yum repozitorijum: http://yum.pgsqlrpms.org/ Prateci linkove, nađite repository RPM, na primer: http://yum.pgsqlrpms.org/reporpms/8.3/pgdg-centos-8.3-6.noarch.rpm http://yum.pgsqlrpms.org/reporpms/8.4/pgdg-centos-8.4-1.noarch.rpm Iako RPM ima oznaku verzije 8.3.6, on može imati i noviju verziju, npr. 8.3.7. Instalirajte RPM sa: wget http://yum.pgsqlrpms.org/reporpms/8.3/pgdg-centos-8.3-6.noarch.rpm rpm -i pgdg-centos-8.3-6.noarch.rpm ili wget http://yum.pgsqlrpms.org/reporpms/8.4/pgdg-centos-8.4-1.noarch.rpm rpm -i pgdg-centos-8.4-1.noarch.rpm Proverite da li se u /etc/yum.repos.d/ nalazi pgdg-8*-centos.repo. Obrisati viškove. Na primer, ako se radi migracija sa 8.3 na 8.4 moguće je da već postoji stari pgdg-83-centos.repo koga treba obrisati. 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 u fajlu /etc/yum.repos.d/CentOS-Base.repo na kraj sekcija [base] i [updates] dodati liniju: exclude=postgresql* Update-ujte postgres sa: yum update postgresql Terebalo bi da je kreiran novi, prazan direktorijum /var/lib/pgsql/data. Proveriti. Kao korisnik postgres izvršiti inicijalizaciju DB klastera: su - postgres initdb -D /var/lib/pgsql/data Startovati Postgres service kao korisnik root: /etc/init.d/postgresql start Uraditi restore baze: psql -d postgres -f ../pgsql-old/db_all.dump Uraditi vacuum: vacuumdb -az 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 max_fsm_pages. ==Spoljašne veze== * [http://trac.biostr.washington.edu/trac/wiki/PostgreSql lista psql komandi]
Return to
PostgreSQL
.
Personal tools
Log in
Namespaces
Page
Discussion
Variants
Views
Read
View source
View history
Actions
Search
Navigation
Main page
Community portal
Current events
Recent changes
Random page
Help
Toolbox
What links here
Related changes
Special pages