PostgreSQL se vyslovuje Post-Gres-Q-L. Zvukov<EFBFBD> z<EFBFBD>znam je dostupn<EFBFBD> na
adrese .
PostgreSQL vych<EFBFBD>z<EFBFBD> z datab<EFBFBD>ze POSTGRES (a st<EFBFBD>le je n<EFBFBD>kdy ozna<EFBFBD>ov<EFBFBD>n
zjednodu<EFBFBD>en<EFBFBD> jako Postgres) - v<EFBFBD>zkumn<EFBFBD>ho prototypu DBMS nov<EFBFBD> generace.
Z postgresu byl p<EFBFBD>evzat siln<EFBFBD> datov<EFBFBD> model a bohat<EFBFBD> soubor datov<EFBFBD>ch
typ<EFBFBD> a jeho dotazovac<EFBFBD> jazyk PostQuel byl nahrazen roz<EFBFBD><EFBFBD><EFBFBD>enou
podmno<EFBFBD>inou jazyka SQL. PostgreSQL lze pou<EFBFBD><EFBFBD>vat bez omezen<EFBFBD> a jeho
zdrojov<EFBFBD> k<EFBFBD>dy jsou voln<EFBFBD> k dispozici.
PostgreSQL vyv<EFBFBD>j<EFBFBD> t<EFBFBD>m v<EFBFBD>voj<EFBFBD><EFBFBD><EFBFBD> p<EFBFBD>ihl<EFBFBD><EFBFBD>en<EFBFBD>ch do v<EFBFBD>voj<EFBFBD><EFBFBD>sk<EFBFBD> konference
PostgreSQL. Sou<EFBFBD>asn<EFBFBD>m koordin<EFBFBD>torem je Marc G. Fournier
(scrappy@PostgreSQL.org). (viz 1.6 - jak se zapojit). Tento t<EFBFBD>m je
zodpov<EFBFBD>dn<EFBFBD> za ve<EFBFBD>ker<EFBFBD> v<EFBFBD>voj PostgreSQL. Jedn<EFBFBD> se o ve<EFBFBD>ejn<EFBFBD> projekt,
kter<EFBFBD> nen<EFBFBD><EFBFBD><EFBFBD>zen <EFBFBD><EFBFBD>dnou firmou. Pokud se chcete zapojit, p<EFBFBD>e<EFBFBD>t<EFBFBD>te si
developer's FAQ na adrese
http://www.PostgreSQL.org/docs/faqs/FAQ_DEV.html
Autory prvn<EFBFBD> verze PostgreSQL 1.01 byli Andrew Yu and Jolly Chen. Do
portace, testov<EFBFBD>n<EFBFBD>, lad<EFBFBD>n<EFBFBD> a roz<EFBFBD>i<EFBFBD>ov<EFBFBD>n<EFBFBD> k<EFBFBD>du se zapojilo mnoho
dal<EFBFBD><EFBFBD>ch v<EFBFBD>voj<EFBFBD><EFBFBD><EFBFBD> . P<EFBFBD>vodni k<EFBFBD>d Postgresu, ze kter<EFBFBD>ho PostgreSQL
vych<EFBFBD>z<EFBFBD>, je v<EFBFBD>sledkem <EFBFBD>sil<EFBFBD> mnoha student<EFBFBD> a program<EFBFBD>tor<EFBFBD> pracuj<EFBFBD>c<EFBFBD>ch
pod veden<EFBFBD>m prof. Michaela Stonebrakera na University of California v
Berkley.
P<EFBFBD>vodn<EFBFBD> n<EFBFBD>zev software z Berkley byl Postgres. Po p<EFBFBD>id<EFBFBD>n<EFBFBD> jazyka SQL
se n<EFBFBD>zev zm<EFBFBD>nil na Postgres95. Koncem roku 1996 byl RDBMS p<EFBFBD>ejmenov<EFBFBD>n
na PostgreSQL.
1.2) Jak<EFBFBD> je licence na PostgreSQL?
PostgreSQL je p<EFBFBD>edm<EFBFBD>tem n<EFBFBD>sleduj<EFBFBD>c<EFBFBD>ch autorsk<EFBFBD>ch pr<EFBFBD>v:
D<EFBFBD>l<EFBFBD><EFBFBD> Copyright (c) 1996-2005, PostgreSQL Global Development Group
D<EFBFBD>l<EFBFBD><EFBFBD> Copyright (c) 1994-6, Regents of the University of California
Ud<EFBFBD>luje se opr<EFBFBD>vn<EFBFBD>n<EFBFBD> k u<EFBFBD>it<EFBFBD>, rozmno<EFBFBD>ov<EFBFBD>n<EFBFBD>, prov<EFBFBD>d<EFBFBD>n<EFBFBD><EFBFBD>prav a
roz<EFBFBD>i<EFBFBD>ov<EFBFBD>n<EFBFBD> tohoto softwaru a dokumentace k n<EFBFBD>mu, pro jak<EFBFBD>koli <EFBFBD><EFBFBD>ely,
bez licen<EFBFBD>n<EFBFBD>ho poplatku a bez p<EFBFBD>semn<EFBFBD> licen<EFBFBD>n<EFBFBD> smlouvy, za podm<EFBFBD>nky,
<EFBFBD>e na v<EFBFBD>ech jeho kopi<EFBFBD>ch je uvedeno ozn<EFBFBD>men<EFBFBD> o v<EFBFBD><EFBFBD>e uveden<EFBFBD>ch pr<EFBFBD>vech,
jako<EFBFBD> i obsah tohoto a dvou n<EFBFBD>sleduj<EFBFBD>c<EFBFBD>ch odstavc<EFBFBD>.
THE UNIVERSITY OF CALIFORNIA ("KALIFORNSK<EFBFBD> UNIVERZITA") NEN<EFBFBD> V <EFBFBD><EFBFBD>DN<EFBFBD>M
P<EFBFBD><EFBFBD>PAD<EFBFBD> ODPOV<EFBFBD>DNA <EFBFBD><EFBFBD>DN<EFBFBD> T<EFBFBD>ET<EFBFBD> OSOB<EFBFBD> ZA P<EFBFBD><EFBFBD>MOU, NEP<EFBFBD><EFBFBD>MOU, ZVL<EFBFBD><EFBFBD>TN<EFBFBD>,
NAHODILOU NEBO V<EFBFBD>SLEDNOU <EFBFBD>KODU, V<EFBFBD>ETN<EFBFBD> U<EFBFBD>L<EFBFBD>HO ZISKU, ZP<EFBFBD>SOBENOU U<EFBFBD>IT<EFBFBD>M
TOHOTO SOFTWARU A DOKUMENTACE K N<EFBFBD>MU, A TO I V P<EFBFBD><EFBFBD>PAD<EFBFBD>, <EFBFBD>E THE
UNIVERSITY OF CALIFORNIA BYLA INFORMOV<EFBFBD>NA O MO<EFBFBD>NOSTI VZNIKU TAKOV<EFBFBD>
<EFBFBD>KODY.
HE UNIVERSITY OF CALIFORNIA ZEJM<EFBFBD>NA NEPOSKYTUJE JAK<EFBFBD>KOLI Z<EFBFBD>RUKY, A TO
NEJEN Z<EFBFBD>RUKY OBCHODOVATELNOSTI A VHODNOSTI TOHOTO V<EFBFBD>ROBKU KE
SPECIFICK<EFBFBD>M <EFBFBD><EFBFBD>EL<EFBFBD>M. NͮE UVEDEN<EFBFBD> SOFTWARE JE POSKYTNUT "JAK STOJ<EFBFBD> A
LE<EFBFBD><EFBFBD>" A THE UNIVERSITY OF CALIFORNIA NEN<EFBFBD> POVINNA ZAJISTIT JEHO
<EFBFBD>DR<EFBFBD>BU, PODPORU, AKTUALIZACI, VYLEP<EFBFBD>EN<EFBFBD> NEBO MODIFIKACI.
V<EFBFBD><EFBFBD>e uveden<EFBFBD> je BSD licence, b<EFBFBD><EFBFBD>n<EFBFBD> licence otev<EFBFBD>en<EFBFBD>ho zdroje. Nen<EFBFBD> zde
<EFBFBD><EFBFBD>dn<EFBFBD> omezen<EFBFBD> ohledn<EFBFBD> u<EFBFBD>it<EFBFBD> k<EFBFBD>du zdroje. Jsme s t<EFBFBD>m spokojeni a nem<EFBFBD>me
v <EFBFBD>myslu na t<EFBFBD>to skute<EFBFBD>nosti cokoli m<EFBFBD>nit.
1.3) Na kter<EFBFBD>ch Unixex lze spustit PostgreSQL?
PostgreSQL b<EFBFBD><EFBFBD><EFBFBD> na v<EFBFBD>ech modern<EFBFBD>ch unixov<EFBFBD>ch platform<EFBFBD>ch. V
instala<EFBFBD>n<EFBFBD>ch instrukc<EFBFBD>ch naleznete aktu<EFBFBD>ln<EFBFBD> seznam v<EFBFBD>ech platforem na
kter<EFBFBD>ch byla testov<EFBFBD>n<EFBFBD>m ov<EFBFBD><EFBFBD>ena funkcionalita PostgreSQL.
1.4) Kter<EFBFBD> ne-unixov<EFBFBD> platformy jsou podporovan<EFBFBD>?
Klient
Knihovna libpq, psql a n<EFBFBD>kter<EFBFBD> dal<EFBFBD><EFBFBD> moduly byly p<EFBFBD>elo<EFBFBD>eny pro MS
Windows. Klienta lze provozovat na MS Windows, ten prost<EFBFBD>ednictv<EFBFBD>m
TCP/IP protokolu komunikuje se serverem b<EFBFBD><EFBFBD><EFBFBD>c<EFBFBD>m na n<EFBFBD>kter<EFBFBD> z
podporovan<EFBFBD>ch Unixov<EFBFBD>ch platforem. K p<EFBFBD>ekladu lze pou<EFBFBD><EFBFBD>t win32.mak a
Win32 knihovny libpq a psql. K datab<EFBFBD>zi PostgerSQL lze p<EFBFBD>istupovat
skrze rozhran<EFBFBD> ODBC.
Server
Server m<EFBFBD><EFBFBD>e b<EFBFBD>t na WindowsNT a Win2k provozov<EFBFBD>n pouze s knihovnou
Cygwin, Cygnus Unix/NT porting library. V<EFBFBD>ce pgsql/doc/FAQ_MSWIN v
Existuj<EFBFBD>c<EFBFBD> port pro Novell Netware 6 naleznete na
http://forge.novell.com.
1.5) Kde mohu z<EFBFBD>skat PostgreSQL?
Prim<EFBFBD>rn<EFBFBD>m anonymn<EFBFBD>m ftp serverem pro PostgreSQL je
ftp://ftp.PostgreSQL.org/pub. Seznam zrcadel naleznete na na<EFBFBD>ich
webov<EFBFBD>ch str<EFBFBD>nk<EFBFBD>ch.
1.6) Kde mohu z<EFBFBD>skat podporu?
Hlavn<EFBFBD> mailov<EFBFBD> konference je: pgsql-general@PostgreSQL.org. Slou<EFBFBD><EFBFBD> k
diskuz<EFBFBD>m ohledn<EFBFBD> PostgreSQL. P<EFBFBD>ihl<EFBFBD>s<EFBFBD>te se zasl<EFBFBD>n<EFBFBD>m mailu obsahuj<EFBFBD>c<EFBFBD>
n<EFBFBD>sleduj<EFBFBD>c<EFBFBD><EFBFBD><EFBFBD>dky v t<EFBFBD>le dopisu (nikoliv v z<EFBFBD>hlav<EFBFBD> - subjectu):
subscribe
end
na adresu pgsql-general-request@PostgreSQL.org.
M<EFBFBD><EFBFBD>ete si vy<EFBFBD><EFBFBD>dat denn<EFBFBD> p<EFBFBD>ehled (diggest), kter<EFBFBD> m<EFBFBD> zhruba 30K denn<EFBFBD>
zpr<EFBFBD>v.
Konference psql-bugs je ur<EFBFBD>ena k zas<EFBFBD>l<EFBFBD>n<EFBFBD> zpr<EFBFBD>v o chyb<EFBFBD>ch. Pro
p<EFBFBD>ihl<EFBFBD><EFBFBD>en<EFBFBD> po<EFBFBD>lete mail se stejn<EFBFBD>m obsahem jako v p<EFBFBD>edchoz<EFBFBD>m p<EFBFBD><EFBFBD>pad<EFBFBD>
na adresu pgsql-bugs-request@PostgreSQL.org.
Do v<EFBFBD>voj<EFBFBD><EFBFBD>sk<EFBFBD> konference se p<EFBFBD>ihl<EFBFBD>s<EFBFBD>te odesl<EFBFBD>n<EFBFBD>m dopisu s ji<EFBFBD>
zmi<EFBFBD>ovan<EFBFBD>m obsahem na mailto:pgsql-hackers-request@PostgreSQL.org.
Seznam dal<EFBFBD><EFBFBD>ch konferenc<EFBFBD> naleznete na str<EFBFBD>nk<EFBFBD>ch PostgreSQL:
http://www.postgresql.org
1.7) Jak<EFBFBD> je posledn<EFBFBD> verze?
Posledn<EFBFBD> verze PostgreSQL je 7.4.3. Pl<EFBFBD>nujeme uvolnit v<EFBFBD>znamnou verzi
ka<EFBFBD>d<EFBFBD>ch <EFBFBD>est a<EFBFBD> osm m<EFBFBD>s<EFBFBD>c<EFBFBD>.
1.8) Jak<EFBFBD> je dostupn<EFBFBD> dokumentace?
R<EFBFBD>zn<EFBFBD> manu<EFBFBD>ly, manu<EFBFBD>lov<EFBFBD> str<EFBFBD>nky a n<EFBFBD>kolik mal<EFBFBD>ch testovac<EFBFBD>ch p<EFBFBD><EFBFBD>klad<EFBFBD>
jsou sou<EFBFBD><EFBFBD>sti distribuce. Pod<EFBFBD>vejte se do adres<EFBFBD><EFBFBD>e /doc. Manu<EFBFBD>ly jsou
p<EFBFBD><EFBFBD>stupn<EFBFBD> online na http://www.PostgreSQL.org/docs.
Na adres<EFBFBD>ch http://www.PostgreSQL.org/docs/awbook.html a
http://www.commandprompt.com/ppbook/ naleznezte dv<EFBFBD> online knihy o
PostgreSQL. Seznam dostupn<EFBFBD> literatury je na
http://techdocs.PostgreSQL.org/techdocs/bookreviews.php. Soubor
technick<EFBFBD>ch <EFBFBD>l<EFBFBD>nk<EFBFBD> s tematikou PostgresQL najdete na
http://techdocs.PostgreSQL.org/.
psql m<EFBFBD> u<EFBFBD>ite<EFBFBD>n<EFBFBD> metap<EFBFBD><EFBFBD>kaz \d slou<EFBFBD><EFBFBD>c<EFBFBD> k zobrazen<EFBFBD> informac<EFBFBD> o
typech, oper<EFBFBD>torech, funkc<EFBFBD>, agrega<EFBFBD>n<EFBFBD>ch funkc<EFBFBD> atd.
V<EFBFBD>ce dokumentace naleznete na na<EFBFBD>ich webov<EFBFBD>ch str<EFBFBD>nk<EFBFBD>ch.
1.9) Kde najdu seznam zn<EFBFBD>m<EFBFBD>ch chyb nebo nepodporovan<EFBFBD>ch vlastnost<EFBFBD>?
PostgreSQL podporuje roz<EFBFBD><EFBFBD><EFBFBD>enou podmno<EFBFBD>inu SQL-92. V na<EFBFBD>em TODO
najdete seznam zn<EFBFBD>m<EFBFBD>ch chyb, chyb<EFBFBD>j<EFBFBD>c<EFBFBD>ch vlastnost<EFBFBD> a seznam
vlastnost<EFBFBD>, kter<EFBFBD> budou do syst<EFBFBD>mu implementov<EFBFBD>ny v budoucnu (v<EFBFBD>etn<EFBFBD>
priorit).
1.10) Jak se mohu nau<EFBFBD>it SQL?
V knize The PostgreSQL book na
http://www.PostgreSQL.org/docs/awbook.html je vysv<EFBFBD>tlen jazyk SQL
(vy<EFBFBD>la <EFBFBD>esky). Dal<EFBFBD><EFBFBD> dostupnou knihou je
http://www.commandprompt.com/ppbook. Kvalitn<EFBFBD> n<EFBFBD>vody naleznete na
http://www.intermedia.net/support/sql/sqltut.shtm, a na
http://sqlcourse.com.
Dal<EFBFBD><EFBFBD> je Teach Yourself SQL in 21 days, Second Edition na
http://members.tripod.com/er4ebus/sql/index.htm.
Mnoho u<EFBFBD>ivatel<EFBFBD> doporu<EFBFBD>uje The Practical SQL Handbook, Bowman, Judith
S., et al., Addison-Wesley. Jin<EFBFBD> preferuj<EFBFBD> The Complete Reference SQL,
Groff et al., McGraw-Hill.
1.11) Nem<EFBFBD> PostgreSQL probl<EFBFBD>my s rokem 2000?
Nem<EFBFBD>, m<EFBFBD><EFBFBD>eme pracovat s datumy po roce 2000 na<EFBFBD>eho letopo<EFBFBD>tu i p<EFBFBD>ed
rokem 2000 p<EFBFBD>.n.l.
1.12) Jak se p<EFBFBD>ipojit k v<EFBFBD>voj<EFBFBD><EFBFBD>sk<EFBFBD>mu t<EFBFBD>mu?
Nejd<EFBFBD><EFBFBD>ve si st<EFBFBD>hn<EFBFBD>te nejnov<EFBFBD>j<EFBFBD><EFBFBD> zdroje a p<EFBFBD>e<EFBFBD>t<EFBFBD>te si v<EFBFBD>voj<EFBFBD><EFBFBD>skou
dokumentaci na na<EFBFBD>em webu nebo v distribuci. Pak se p<EFBFBD>ihla<EFBFBD>te do
konferenc<EFBFBD> pgsql-hackers a pgsql-patches. Kvalitn<EFBFBD> z<EFBFBD>platy pos<EFBFBD>lejte
do pgsql-patches.
Pr<EFBFBD>vo commit m<EFBFBD> v CVS archivu asi t<EFBFBD>in<EFBFBD>cti lid<EFBFBD>. Ka<EFBFBD>d<EFBFBD> z nich poslal
mnoho kvalitn<EFBFBD>ch z<EFBFBD>plat, tak<EFBFBD>e tehdej<EFBFBD><EFBFBD> commiters m<EFBFBD>li jistotu, <EFBFBD>e
budou p<EFBFBD>edkl<EFBFBD>dat jenom kvalitn<EFBFBD> z<EFBFBD>platy a mohli jim p<EFBFBD>ed<EFBFBD>lit v<EFBFBD>t<EFBFBD><EFBFBD>
pr<EFBFBD>va.
1.13) Kam podat report o chyb<EFBFBD>?
Nav<EFBFBD>tivte na<EFBFBD>i PostgreSQL BugTool str<EFBFBD>nku na
http://www.PostgreSQL.org/bugs/bugs.php, kter<EFBFBD> obsahuje n<EFBFBD>vod a
sm<EFBFBD>rnice jak podat chybov<EFBFBD> report.
Ov<EFBFBD><EFBFBD>te si na na<EFBFBD>em ftp serveru ftp://ftp.PostgreSQL.org/pub, zda-li
m<EFBFBD>te nejnov<EFBFBD>j<EFBFBD><EFBFBD> verzi PostgreSQL a zda-li k n<EFBFBD> neexistuj<EFBFBD> n<EFBFBD>jak<EFBFBD>
z<EFBFBD>platy.
1.14) Jak je na tom PostgreSQL v porovn<EFBFBD>n<EFBFBD> s jin<EFBFBD>mi datab<EFBFBD>zemi?
Existuje n<EFBFBD>kolik hledisek jak porovn<EFBFBD>vat software: vlastnosti, v<EFBFBD>kon,
spolehlivost, podpora a cena.
Vlastnosti
PostgreSQL m<EFBFBD> hodn<EFBFBD> spole<EFBFBD>n<EFBFBD>ch vlastnost<EFBFBD> s velk<EFBFBD>mi komer<EFBFBD>n<EFBFBD>mi
Pokud m<EFBFBD>te p<EFBFBD><EFBFBD>klad <EFBFBD>sp<EFBFBD><EFBFBD>n<EFBFBD>ho nasazen<EFBFBD> PostgreSQL, p<EFBFBD>ihla<EFBFBD>t<EFBFBD> se na n<EFBFBD><EFBFBD>
advocacy site na http://advocacy.postgresql.org.
User client dotazy
2.1) Kde naleznu ODBC ovlada<EFBFBD>e pro PostgreSQL?
Pro PostgreSQL existuj<EFBFBD> dva ODBC ovlada<EFBFBD>e - PsqlODBC a OpenLink ODBC.
Ka<EFBFBD>d<EFBFBD> buffer m<EFBFBD> 8K a implicitn<EFBFBD> je 64 buffer<EFBFBD>.
D<EFBFBD>le m<EFBFBD><EFBFBD>ete pou<EFBFBD><EFBFBD>t p<EFBFBD>ep<EFBFBD>na<EFBFBD> -S k zv<EFBFBD><EFBFBD>en<EFBFBD> limitu pam<EFBFBD>ti pro backendy na
do<EFBFBD>asn<EFBFBD> t<EFBFBD><EFBFBD>d<EFBFBD>n<EFBFBD>. Hodnota je m<EFBFBD>n<EFBFBD>na v kilobytech a v<EFBFBD>choz<EFBFBD> nastaven<EFBFBD> je
512, tj. 512K.
M<EFBFBD><EFBFBD>ete pou<EFBFBD><EFBFBD>t p<EFBFBD><EFBFBD>kaz CLUSTER, kter<EFBFBD> uspo<EFBFBD><EFBFBD>d<EFBFBD> fyzicky data v tabulk<EFBFBD>ch
podle indexu. V<EFBFBD>ce na manu<EFBFBD>lov<EFBFBD>ch str<EFBFBD>nk<EFBFBD>ch p<EFBFBD><EFBFBD>kazu CLUSTER.
3.7) Jak<EFBFBD> jsou mo<EFBFBD>nosti lad<EFBFBD>n<EFBFBD>?
M<EFBFBD>te n<EFBFBD>kolik mo<EFBFBD>nost<EFBFBD> jak se dostat k u<EFBFBD>ite<EFBFBD>n<EFBFBD>m stavov<EFBFBD>m informac<EFBFBD>m.
Zaprv<EFBFBD>, p<EFBFBD>i p<EFBFBD>ekladu pou<EFBFBD>ijte p<EFBFBD>ep<EFBFBD>na<EFBFBD> --enable-cassert, t<EFBFBD>m se zapne
monitorov<EFBFBD>n<EFBFBD> a n<EFBFBD>sledn<EFBFBD> zastaven<EFBFBD> aplikace, kdy<EFBFBD> se proces v backendu
dostane do neo<EFBFBD>ek<EFBFBD>van<EFBFBD>ho stavu.
Jak postmaster tak postgres m<EFBFBD> n<EFBFBD>kolik p<EFBFBD>ep<EFBFBD>na<EFBFBD><EFBFBD> umo<EFBFBD><EFBFBD>uj<EFBFBD>c<EFBFBD>ch lad<EFBFBD>n<EFBFBD>.
Postmaster nastartujte tak, abyste si byli jisti, <EFBFBD>e je standartn<EFBFBD>
v<EFBFBD>stup a standartn<EFBFBD> chybov<EFBFBD> v<EFBFBD>stup p<EFBFBD>esm<EFBFBD>rov<EFBFBD>n do souboru logu,
nap<EFBFBD><EFBFBD>klad:
cd /usr/local/pgsql
./bin/postmaster > server.log 2>&1 &
T<EFBFBD>m se vytvo<EFBFBD><EFBFBD> log v adres<EFBFBD><EFBFBD>i PostgreSQL, Tento soubor obsahuje
u<EFBFBD>ite<EFBFBD>n<EFBFBD> informace o probl<EFBFBD>mech a chyb<EFBFBD>ch vyskytl<EFBFBD>ch se na serveru.
Postmaster m<EFBFBD> p<EFBFBD>ep<EFBFBD>na<EFBFBD> -d ur<EFBFBD>uj<EFBFBD>c<EFBFBD>, jak podrobn<EFBFBD> maj<EFBFBD> b<EFBFBD>t reportovan<EFBFBD>
informace, tj. debug level. Pozor, p<EFBFBD>i velk<EFBFBD> hodnot<EFBFBD> debug levelu
rychle roste velikost souboru logu.
Pokud neb<EFBFBD><EFBFBD><EFBFBD> postmaster, m<EFBFBD><EFBFBD>ete spustit backend PostgreSQL z p<EFBFBD><EFBFBD>kazov<EFBFBD>
<EFBFBD><EFBFBD>dky a napsat sv<EFBFBD>j SQL dotaz p<EFBFBD><EFBFBD>mo v backendu (doporu<EFBFBD>eno pouze pro
lad<EFBFBD>n<EFBFBD>). Dotaz je v tomto p<EFBFBD><EFBFBD>pad<EFBFBD> ukon<EFBFBD>en novou <EFBFBD><EFBFBD>dkou, nikoliv
st<EFBFBD>edn<EFBFBD>kem. Pokud m<EFBFBD>te aplikaci p<EFBFBD>elo<EFBFBD>enou s lad<EFBFBD>c<EFBFBD>mi symboly, m<EFBFBD><EFBFBD>ete
pou<EFBFBD><EFBFBD>t debbuger k monitorov<EFBFBD>n<EFBFBD> procesu. Pokud nen<EFBFBD> backend spu<EFBFBD>t<EFBFBD>n
postmasterem, pak neb<EFBFBD><EFBFBD><EFBFBD> ve sv<EFBFBD>m obvykl<EFBFBD>m prost<EFBFBD>ed<EFBFBD> a tud<EFBFBD><EFBFBD> n<EFBFBD>kter<EFBFBD>
probl<EFBFBD>my dan<EFBFBD> interakc<EFBFBD> mezi backendy nemohou b<EFBFBD>t nasimulov<EFBFBD>ny.
Pokud b<EFBFBD><EFBFBD><EFBFBD> postmaster, spus<EFBFBD>e psql v jednom okn<EFBFBD> a pak si zjist<EFBFBD>te PID
procesu postgres pou<EFBFBD>it<EFBFBD>ho psql. V debuggeru sep<EFBFBD>ipojte k postgresql
PID. Pak nastavte breakpointy v debuggeru a zadejte dotaz v psql.
Pokud lad<EFBFBD>te startup postgresu, pak nastavte PGOPTIONS="-W n" a spus<EFBFBD>e
psql. Tento p<EFBFBD>ep<EFBFBD>na<EFBFBD> zp<EFBFBD>sob<EFBFBD> pauzu n sekund, tak<EFBFBD>e budete m<EFBFBD>t <EFBFBD>as se
p<EFBFBD>ipojit k procesu, a nastavit breakpointy a pokra<EFBFBD>ovat v startup
posloupnosti.
Pro lad<EFBFBD>n<EFBFBD> a m<EFBFBD><EFBFBD>en<EFBFBD> v<EFBFBD>konu mohou b<EFBFBD>t u<EFBFBD>ite<EFBFBD>n<EFBFBD> p<EFBFBD>ep<EFBFBD>na<EFBFBD>e -s, -A a -t
programu postgres (backend).
M<EFBFBD><EFBFBD>ete prov<EFBFBD>st p<EFBFBD>eklad s profilac<EFBFBD>, tak abyste vid<EFBFBD>li kolik <EFBFBD>asu
zab<EFBFBD>raj<EFBFBD> jednotliv<EFBFBD> funkce. Soubory s profily backend<EFBFBD> jsou ulo<EFBFBD>eny v
adres<EFBFBD><EFBFBD>i pgsql/data/base/dbname. Profil klienta pak v jeho aktu<EFBFBD>ln<EFBFBD>m
adres<EFBFBD><EFBFBD>i. Korektn<EFBFBD> profilace v prost<EFBFBD>ed<EFBFBD> Linux po<EFBFBD>aduje konfiguraci
syst<EFBFBD>mu s parametrem -DLINUX_PROFILE.
3.8) Pro<EFBFBD> dostanu "Sorry, too many clients", kdy<EFBFBD> se zkou<EFBFBD><EFBFBD>m p<EFBFBD>ipojit?
Zvy<EFBFBD>te limit postmastera na maxim<EFBFBD>ln<EFBFBD> po<EFBFBD>et sou<EFBFBD>asn<EFBFBD> spu<EFBFBD>t<EFBFBD>n<EFBFBD>ch
backend<EFBFBD>.
V<EFBFBD>choz<EFBFBD> hodnota je 32 backend<EFBFBD>. Tuto hodnotu zv<EFBFBD><EFBFBD><EFBFBD>te zastaven<EFBFBD>m a
op<EFBFBD>tovn<EFBFBD>m spu<EFBFBD>t<EFBFBD>n<EFBFBD>m postmastera s parametrem -N nebo <EFBFBD>pravou
postgresql.conf.
P<EFBFBD>i zv<EFBFBD><EFBFBD>en<EFBFBD> hodnoty -N nad 32 mus<EFBFBD>te zv<EFBFBD><EFBFBD>it hodnotu -B nad v<EFBFBD>choz<EFBFBD> 64,
-B mus<EFBFBD> b<EFBFBD>t minim<EFBFBD>ln<EFBFBD> dvakr<EFBFBD>t v<EFBFBD>t<EFBFBD><EFBFBD>, nebo je<EFBFBD>t<EFBFBD> l<EFBFBD>pe v<EFBFBD>ce.
Pravd<EFBFBD>podobn<EFBFBD> zjist<EFBFBD>te, <EFBFBD>e pro velk<EFBFBD> po<EFBFBD>et proces<EFBFBD> backendu je nutn<EFBFBD>
zv<EFBFBD><EFBFBD>it n<EFBFBD>kter<EFBFBD> parametry j<EFBFBD>dra. Jsou to p<EFBFBD>edev<EFBFBD><EFBFBD>m maxim<EFBFBD>ln<EFBFBD> velikost
sd<EFBFBD>len<EFBFBD> pam<EFBFBD>ti SHMMAX, maxim<EFBFBD>ln<EFBFBD> po<EFBFBD>et semaf<EFBFBD>r<EFBFBD> SEMMNS a SEMMNI,
3.9) K <EFBFBD>emu slou<EFBFBD><EFBFBD> adres<EFBFBD><EFBFBD> pgsql_tmp?
Tento adres<EFBFBD><EFBFBD> obsahuje do<EFBFBD>asn<EFBFBD> soubory vytvo<EFBFBD>en<EFBFBD> exekutorem dotaz<EFBFBD>.
Nap<EFBFBD><EFBFBD>klad, kdy<EFBFBD> je nutn<EFBFBD> t<EFBFBD><EFBFBD>d<EFBFBD>n<EFBFBD> k zaji<EFBFBD>t<EFBFBD>n<EFBFBD> ORDER BY a t<EFBFBD><EFBFBD>d<EFBFBD>n<EFBFBD> m<EFBFBD>
v<EFBFBD>t<EFBFBD><EFBFBD> n<EFBFBD>roky na prostor ne<EFBFBD> povoluje parametr -S backendu, pak je
vytvo<EFBFBD>en do<EFBFBD>asn<EFBFBD> soubor k ulo<EFBFBD>en<EFBFBD> extra <EFBFBD>daj<EFBFBD>.
Do<EFBFBD>asn<EFBFBD> soubory jsou obvykle maz<EFBFBD>ny automaticky, ale m<EFBFBD><EFBFBD>e se st<EFBFBD>t, <EFBFBD>e
b<EFBFBD>hem t<EFBFBD><EFBFBD>d<EFBFBD>n<EFBFBD> server spadne. Zastaven<EFBFBD> a dal<EFBFBD><EFBFBD> start postmastera
zajist<EFBFBD> odstran<EFBFBD>n<EFBFBD> soubor<EFBFBD> s t<EFBFBD>chto adres<EFBFBD><EFBFBD><EFBFBD>.
3.10) Pro<EFBFBD> je po<EFBFBD>adov<EFBFBD>no dump a obnoven<EFBFBD> (load) datab<EFBFBD>ze b<EFBFBD>hem upgrade mezi
velk<EFBFBD>mi verzemi PostgreSQL?
PostgreSQL se minim<EFBFBD>ln<EFBFBD> m<EFBFBD>n<EFBFBD> b<EFBFBD>hem mal<EFBFBD>ch verz<EFBFBD>, tak<EFBFBD>e nap<EFBFBD>. p<EFBFBD>i
upgrade z 7.2 na 7.2.1 nen<EFBFBD> nutn<EFBFBD> dump a load datab<EFBFBD>ze. Ale v<EFBFBD>ynamn<EFBFBD>
verze <EFBFBD>asto m<EFBFBD>n<EFBFBD> intern<EFBFBD> form<EFBFBD>t syst<EFBFBD>mov<EFBFBD>ch tabulek a datov<EFBFBD>ch
soubor<EFBFBD>. Tyto zm<EFBFBD>ny jsou natolik rozs<EFBFBD>hl<EFBFBD>, <EFBFBD>e nelze zajistit zp<EFBFBD>tnou
kompatibilitu pro datov<EFBFBD> soubory. Dump ulo<EFBFBD><EFBFBD> data v obecn<EFBFBD>m form<EFBFBD>tu,
tak<EFBFBD>e mohou b<EFBFBD>t na<EFBFBD>tena a pou<EFBFBD><EFBFBD>v<EFBFBD>na v nov<EFBFBD>m intern<EFBFBD>m form<EFBFBD>tu.
4.18) Pro<EFBFBD> jsem z<EFBFBD>skal chybov<EFBFBD> hl<EFBFBD><EFBFBD>en<EFBFBD> "ERROR: Memory exhausted in
AllocSetAlloc()"?
Pravd<EFBFBD>podobn<EFBFBD> do<EFBFBD>lo k vy<EFBFBD>erp<EFBFBD>n<EFBFBD> virtu<EFBFBD>ln<EFBFBD> pam<EFBFBD><EFBFBD>i na Va<EFBFBD>em syst<EFBFBD>mu,
nebo j<EFBFBD>dro m<EFBFBD> n<EFBFBD>zk<EFBFBD> limit pro ur<EFBFBD>it<EFBFBD> zdroje. Vyzkou<EFBFBD>ejte p<EFBFBD>ed startem
posmatera
ulimit -d 262144
limit datasize 256m
Z<EFBFBD>le<EFBFBD><EFBFBD> na Va<EFBFBD>em shellu, zda budou tyto p<EFBFBD><EFBFBD>kazy <EFBFBD>sp<EFBFBD><EFBFBD>n<EFBFBD>, m<EFBFBD>ly by zv<EFBFBD><EFBFBD>it
limit datov<EFBFBD>ho segmentu pro Va<EFBFBD>e procesy a umo<EFBFBD>nit tak dokon<EFBFBD>en<EFBFBD>
dotazu. Tyto p<EFBFBD><EFBFBD>kazy se aplikuj<EFBFBD> na aktu<EFBFBD>ln<EFBFBD> proces a v<EFBFBD>echny synovsk<EFBFBD>
procesy vytvo<EFBFBD>en<EFBFBD> po proveden<EFBFBD> p<EFBFBD><EFBFBD>kazu. Pokud m<EFBFBD>te probl<EFBFBD>my s SQL
klientem proto<EFBFBD>e backend vrac<EFBFBD> p<EFBFBD><EFBFBD>li<EFBFBD> mnoho dat, zkuste zv<EFBFBD><EFBFBD>it limity
p<EFBFBD>ed startem klienta.
4.19) Jak se dozv<EFBFBD>m, kterou verzi PostgreSQL pou<EFBFBD><EFBFBD>v<EFBFBD>m?
V psql spus<EFBFBD>te SELECT version();
4.20) Pro<EFBFBD> operace s velk<EFBFBD>mi objekty kon<EFBFBD><EFBFBD> "invalid large obj descriptor"?
V<EFBFBD>echny operace s velk<EFBFBD>mi objekty - lo_open, lo_close, ... mus<EFBFBD>te
spou<EFBFBD>t<EFBFBD>t v transakci, tj. mezi p<EFBFBD><EFBFBD>kazy BEGIN WORK a COMMIT.
4.26) Pro<EFBFBD> nelze spolehliv<EFBFBD> vytv<EFBFBD><EFBFBD>et a ru<EFBFBD>it do<EFBFBD>asn<EFBFBD> tabulky v PL/pgSQL
funkc<EFBFBD>ch?
P<EFBFBD>elo<EFBFBD>en<EFBFBD> k<EFBFBD>d PL/pgSQL funkce je ulo<EFBFBD>en ve vyrovn<EFBFBD>vac<EFBFBD> pam<EFBFBD>ti, tj.
funkce je p<EFBFBD>ekl<EFBFBD>d<EFBFBD>na pouze p<EFBFBD>i zm<EFBFBD>n<EFBFBD> k<EFBFBD>du, nikoliv p<EFBFBD>ed ka<EFBFBD>d<EFBFBD>m vol<EFBFBD>n<EFBFBD>m
funkce. Necht<EFBFBD>n<EFBFBD>m vedlej<EFBFBD><EFBFBD>m efektem je, <EFBFBD>e vol<EFBFBD>n<EFBFBD> funkce sel<EFBFBD>e, kdy<EFBFBD>
se funkce odkazuje na do<EFBFBD>asnou tabulku, pokud tato tabulka byla od
p<EFBFBD>ekladu funkce zru<EFBFBD>ena (a<EFBFBD>koliv ji<EFBFBD> byla znovu vytvo<EFBFBD>ena a existuje).
Jedin<EFBFBD>m <EFBFBD>e<EFBFBD>en<EFBFBD>m probl<EFBFBD>mu je p<EFBFBD><EFBFBD>stup k do<EFBFBD>asn<EFBFBD> tabulce pomoc<EFBFBD> EXECUTE,
tj. dynamick<EFBFBD> prov<EFBFBD>d<EFBFBD>n<EFBFBD> dotazu. Tento p<EFBFBD><EFBFBD>kaz zajist<EFBFBD> opakovan<EFBFBD> p<EFBFBD>eklad