2003-01-14 07:00:32 +08:00
|
|
|
|
|
2003-02-04 20:32:41 +08:00
|
|
|
|
PostgreSQL GyIK Utols<6C> m<>dos<6F>t<EFBFBD>s d<>tuma: 2002 Okt 20. Ford<72>t<EFBFBD>s
|
|
|
|
|
aktualiz<69>l<EFBFBD>sa: 2003 janu<6E>r A GyIK karbantart<72>ja: Bruce Momjian
|
|
|
|
|
(pgman@candle.pha.pa.us) Ford<72>t<EFBFBD>: Horny<6E>k L<>szl<7A>
|
|
|
|
|
(hornyakl.NOSPAM@inf.elte.hu) A legfrissebb verzi<7A> itt <20>rhet<65> el
|
|
|
|
|
(angol): http://www.PostgreSQL.org/docs/faq-english.html. Legfrissebb
|
|
|
|
|
magyar nyelv<6C> verzi<7A>:
|
|
|
|
|
http://www.rootshell.be/~hornyakl/downloads/postgres_faq/ Platform
|
|
|
|
|
specifikus k<>rd<72>sek:
|
2003-01-14 07:00:32 +08:00
|
|
|
|
http://www.PostgreSQL.org/users-lounge/docs/faq.html.
|
2003-02-04 20:32:41 +08:00
|
|
|
|
_________________________________________________________________
|
|
|
|
|
<20>ltal<61>nos k<>rd<72>sek 1.1) Mi a PostgreSQL? Hogy kell kimondani? 1.2) Mik
|
|
|
|
|
a PostgreSQL felhaszn<7A>l<EFBFBD>si felt<6C>telei? 1.3) Milyen UNIX oper<65>ci<63>s
|
|
|
|
|
rendszereken fut PostgreSQL? 1.4) Milyen nem UNIX oper<65>ci<63>s rendszerek
|
|
|
|
|
el<65>rhet<65>ek? 1.5) Hogyan tudok PostgreSQL-t szerezni? 1.6) Hogyan kapok
|
|
|
|
|
term<72>kt<6B>mogat<61>st? 1.7) Melyik a legfrissebb kiad<61>s? 1.8) Milyen
|
|
|
|
|
dokument<6E>ci<63> <20>ll rendelkez<65>sre? 1.9) Hogyan tal<61>lok inform<72>ci<63>t
|
|
|
|
|
hib<69>kr<6B>l vagy hi<68>nyz<79> funkcional<61>t<EFBFBD>sr<73>l? 1.10) Hogy tanuljam meg az
|
|
|
|
|
SQL nyelvet? 1.11) A PostgreSQL 2000. <20>v kompatibilis? 1.12) Hogyan
|
|
|
|
|
lehet csatlakozni a fejleszt<7A> csapathoz? 1.13) Hogyan k<>ldjek
|
|
|
|
|
hibajelent<6E>st? 1.14) Milyen a PostgreSQL m<>s DBMS-ekkel
|
|
|
|
|
<20>sszehasonl<6E>tva? 1.15) Hogyan tudom <20>zletileg segiteni a PostgreSQL-t?
|
|
|
|
|
Felhaszn<7A>l<EFBFBD>i kliens k<>rd<72>sek 2.1) Van ODBC meghajt<6A> PostgreSQL-hez?
|
|
|
|
|
2.2) Milyen eszk<7A>z<EFBFBD>k <20>llnak rendelkez<65>sre PostgreSQL Web
|
|
|
|
|
fejleszt<7A>sekhez? 2.3) Van a PostgreSQL-hez grafikus felhaszn<7A>l<EFBFBD>i
|
|
|
|
|
fel<65>let ? Riport gener<65>tor? Be<42>gyazott lek<65>rdez<65> nyelv fel<65>let? 2.4)
|
|
|
|
|
Milyen programoz<6F>si nyelvekkel lehet el<65>rni a PostgreSQL szervert?
|
|
|
|
|
Adminisztr<74>ci<63>s k<>rd<72>sek 3.1) Hogyan tudom a PostgreSQL-t
|
|
|
|
|
/usr/local/pgsql -t<>l elt<6C>r<EFBFBD> helyre install<6C>lni? 3.2) AMikor elind<6E>tom
|
|
|
|
|
a postmaster-t, egy "Bad System Call"-t vagy core dump-ot kapok.
|
|
|
|
|
Mi<4D>rt? 3.3) Amikor megpr<70>b<EFBFBD>lom inditani a postmaster-t,
|
|
|
|
|
"IpcMemoryCreate" hib<69>kat kapok. Mi<4D>rt? 3.4) Amikor megpr<70>b<EFBFBD>lom
|
|
|
|
|
inditani a postmaster-t, "IpcSemaphoreCreate" hib<69>kat kapok. Mi<4D>rt?
|
|
|
|
|
3.5) Hogyan tudom kontroll<6C>lni a m<>s g<>pekr<6B>l <20>rkez<65> kapcsolat
|
|
|
|
|
k<>r<EFBFBD>seket? 3.6) Hogyan tudom nagyobb teljes<65>tm<74>nyre hangolni az
|
|
|
|
|
adatb<74>zisomat? 3.7) Milyen hibakeres<65> lehet<65>s<EFBFBD>gek <20>rhet<65>ek el? 3.8)
|
|
|
|
|
Mi<4D>rt kapok "Sorry, too many clients" hib<69>t csatlakoz<6F>sn<73>l? 3.9) Mi
|
|
|
|
|
van pgsql_tmp k<>nyvt<76>rban? 3.10) Mi<4D>rt kell dumpolni <20>s <20>jrat<61>lteni
|
|
|
|
|
PostgreSQL kiad<61>s v<>lt<6C>s<EFBFBD>n<EFBFBD>l? M<>k<EFBFBD>dtet<65>si k<>rd<72>sek 4.1) Mi a k<>l<EFBFBD>nbs<62>g
|
|
|
|
|
a bin<69>ris <20>s a norm<72>l kurzorok k<>z<EFBFBD>tt? 4.2) Hogyan tudom select-elni a
|
|
|
|
|
lek<65>rdez<65>s els<6C> p<>r sor<6F>t? 4.3) Hogy tudom kilist<73>zni a t<>bl<62>kat vagy
|
|
|
|
|
m<>s dolgokat a PostgreSQL-ben? 4.4) Hogyan tudok elt<6C>vol<6F>tani egy
|
|
|
|
|
oszlopot egy t<>bl<62>b<EFBFBD>l? 4.5) Mi a maxim<69>lis m<>rete egy sornak, egy
|
|
|
|
|
t<>bl<62>nak vagy egy adatb<74>zisnak? 4.6) Mekkora adatb<74>zis lemez ter<65>let
|
|
|
|
|
sz<73>ks<6B>ges egy tipikus sz<73>veg <20>llom<6F>ny t<>rol<6F>s<EFBFBD>hoz? 4.7) Hogy tudhatom
|
|
|
|
|
meg milyen t<>bl<62>k, indexek, adatb<74>zisok vagy felhaszn<7A>l<EFBFBD>k vannak
|
|
|
|
|
defini<6E>lva? 4.8) A lek<65>rdez<65>seim lass<73>ak, vagy nem haszn<7A>lj<6C>k az
|
|
|
|
|
indexeket. Mi<4D>rt? 4.9) Hogy tudom ellen<65>rizni, hogy optimaliz<69>lta a
|
|
|
|
|
lek<65>rdez<65>s optimaliz<69>l<EFBFBD> a lek<65>rdez<65>sem? 4.10) Mi az R-tree index?
|
|
|
|
|
4.11) Mi a Genetic Query Optimizer? 4.12) Hogyan tudok regexp keres<65>st
|
|
|
|
|
<20>s case-insensitive regexp keres<65>st haszn<7A>lni? Hogyan tudok indexet
|
|
|
|
|
haszn<7A>lni case-insensitive keres<65>shez? 4.13) Hogyan tudom <20>szlelni egy
|
|
|
|
|
lek<65>rdez<65>sban, ha egy mez<65> NULL? 4.14) Mi a k<>l<EFBFBD>nbs<62>g a k<>l<EFBFBD>nb<6E>z<EFBFBD>
|
|
|
|
|
karaktert<72>pusok k<>z<EFBFBD>tt? 4.15.1) Hogyan tudok l<>trehozni automatikusan
|
|
|
|
|
n<>vekv<6B> <20>rt<72>k<EFBFBD> mez<65>t? 4.15.2) Hogyan kaphatom meg egy SERIAL besz<73>r<EFBFBD>s
|
|
|
|
|
<20>rt<72>k<EFBFBD>t? 4.15.3) A currval() <20>s a nextval() nem teremt holtpont
|
|
|
|
|
vesz<73>lyes helyzetet a felhaszn<7A>l<EFBFBD>k k<>z<EFBFBD>tt? 4.15.4) Mi<4D>rt nem
|
|
|
|
|
haszn<7A>l<EFBFBD>dnak fel <20>jra a sequence sz<73>mok tranzakci<63> abort eset<65>n? Mi<4D>rt
|
|
|
|
|
vannak probl<62>m<EFBFBD>k a serial oszlopok sz<73>moz<6F>s<EFBFBD>val? 4.16) Mi a OID? Mi a
|
|
|
|
|
TID? 4.17) Mi a PostgreSQL-ben haszn<7A>lt kifejez<65>sek jelent<6E>se? 4.18)
|
|
|
|
|
Mi<4D>rt kapom ezt a hib<69>t: "ERROR: Memory exhausted in AllocSetAlloc()"?
|
|
|
|
|
4.19) Hogyan tudhatom meg PostgreSQL, milyen verzi<7A>t futtatok? 4.20)
|
|
|
|
|
Mi<4D>rt kapok "invalid large obj descriptor" hib<69>t nagy objektumok
|
|
|
|
|
kezel<65>s<EFBFBD>n<EFBFBD>l? 4.21) Hogy hozhatok l<>tre olyan oszlopot, aminek
|
|
|
|
|
alap<61>rtelmezett <20>r<EFBFBD>tke a jelenlegi id<69>? 4.22) Mi<4D>rt olyan lass<73>ak az
|
|
|
|
|
al-lek<65>rdez<65>seim IN-nel? 4.23) Hogyan tudok outer join-t v<>grehajtani?
|
|
|
|
|
4.24) Hogyan tudok t<>bb adatb<74>zison v<>grehajtani lek<65>rdez<65>st? 4.25)
|
|
|
|
|
Hogy tudok t<>bb soros vagy oszlopos eredm<64>nyt visszaadni egy
|
|
|
|
|
funkci<63>b<EFBFBD>l? 4.26) Mi<4D>rt nem tudom megbizhat<61>an l<>trehozni <20>s t<>r<EFBFBD>lni
|
|
|
|
|
az <20>tmeneti t<>bl<62>kat a PL/pgSQL funkci<63>kban? 4.27) Milyen replik<69>ci<63>s
|
|
|
|
|
lehet<65>s<EFBFBD>gek vannak? 4.28) Milyen k<>dol<6F>si lehet<65>s<EFBFBD>gek vannak? A
|
|
|
|
|
PostgreSQL kiterjeszt<7A>se 5.1) <20>rtam egy felhaszn<7A>l<EFBFBD>i funkci<63>t. Mi<4D>rt
|
|
|
|
|
core dumpol az adatb<74>zis amikor haszn<7A>lom? 5.2) Hogyan lehet <20>j
|
|
|
|
|
adatt<74>pusokat <20>s funkci<63>kat hozz<7A>adni a PostgreSQL disztrib<69>ci<63>hoz?
|
|
|
|
|
5.3) Hogyan lehet olyan C funkci<63>t <20>rni, ami Tuple-t ad vissza? (t<>bb
|
|
|
|
|
soros t<>bb oszlopos eredm<64>nyek) 5.4) Megv<67>ltoztattam egy forr<72>s
|
|
|
|
|
<20>llom<6F>nyt. Mi<4D>rt nem v<>ltozik a bin<69>ris <20>jraford<72>t<EFBFBD>s ut<75>n?
|
|
|
|
|
_________________________________________________________________
|
|
|
|
|
<20>ltal<61>nos k<>rd<72>sek 1.1) Mi a PostgreSQL? Hogy kell kimondani? <20>gy
|
|
|
|
|
ejstd ki: Post-Gres-Q-L. (Vagy tal<61>n ink<6E>bb t<>ltsd le a kis mp3-at a
|
|
|
|
|
PostgreSQL homepage-r<>l) A PostgreSQL a POSTGRES adatb<74>zis management
|
|
|
|
|
rendszer egy kieg<65>sz<73>t<EFBFBD>se, ami egy k<>vetkez<65> gener<65>ci<63>s DBMS kutat<61>si
|
|
|
|
|
protot<6F>pus. Megtartja a POSTGRES adatmodell<6C>t <20>s gazdag adatt<74>pus
|
|
|
|
|
v<>laszt<7A>k<EFBFBD>t, de a PostQuel lek<65>rdez<65> nyelvet az SQL egy kiterjesztett
|
|
|
|
|
verzi<7A>j<EFBFBD>val helyettes<65>ti. A PostgreSQL szabad <20>s a teljes forr<72>sk<73>d
|
|
|
|
|
hozz<7A>f<EFBFBD>rhet<65>. A PostgreSQL fejleszt<7A>s<EFBFBD>t egy csapat v<>gzi, amelynek
|
|
|
|
|
minden tagja megtal<61>lhat<61> a PostgreSQL fejleszt<7A>i levelez<65>si list<73>n. A
|
|
|
|
|
jelenlegi koordin<69>tor Marc G. Fournier (scrappyp@PostgreSQL.org). Ez a
|
|
|
|
|
csapat felel<65>s minden fejleszt<7A>s<EFBFBD>rt. A PostgreSQL 1.01 alkot<6F>i Andrew
|
|
|
|
|
Yu <20>s Jolly Chen voltak. Sokan j<>rultak hozz<7A> portol<6F>ssal,
|
|
|
|
|
tesztel<65>ssel, hibakeres<65>ssel <20>s fejleszt<7A>ssel. Az eredeti Postgres
|
|
|
|
|
k<>d, amib<69>l a PostgreSQL sz<73>rmazik Michael Stonebraker professzor
|
|
|
|
|
ir<69>ny<6E>t<EFBFBD>sa alatt fejlesztettek az egyetem programoz<6F>i, tanul<75>i <20>s
|
|
|
|
|
v<>gzett tanul<75>i. A szoftver ereeti neve Postgres volt. Amikor SQL
|
|
|
|
|
funkcional<61>t<EFBFBD>ssal eg<65>sz<73>tett<74>k ki 1995-ben, a nev<65>t Postgres95-re
|
|
|
|
|
v<>ltoztatt<74>k. 1996 v<>g<EFBFBD>n kapta mai nev<65>t. 1.2) Mik a PostgreSQL
|
|
|
|
|
felhaszn<7A>l<EFBFBD>si felt<6C>telei? Az eredeti angol copyright sz<73>veg:
|
|
|
|
|
-------------------- PostgreSQL is subject to the following COPYRIGHT:
|
|
|
|
|
PostgreSQL Data Base Management System Portions copyright (c)
|
|
|
|
|
1996-2002, PostgreSQL Global Development Group Portions Copyright (c)
|
|
|
|
|
1994-6 Regents of the University of California Permission to use,
|
|
|
|
|
copy, modify, and distribute this software and its documentation for
|
|
|
|
|
any purpose, without fee, and without a written agreement is hereby
|
|
|
|
|
granted, provided that the above copyright notice and this paragraph
|
|
|
|
|
and the following two paragraphs appear in all copies. IN NO EVENT
|
|
|
|
|
SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT,
|
|
|
|
|
INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
|
|
|
|
|
LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
|
|
|
|
|
DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED
|
|
|
|
|
OF THE POSSIBILITY OF SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA
|
|
|
|
|
SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
|
|
|
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
|
|
|
PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND
|
|
|
|
|
THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE
|
|
|
|
|
MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. The
|
|
|
|
|
above is the BSD license, the classic open-source license. It has no
|
|
|
|
|
restrictions on how the source code may be used. We like it and have
|
|
|
|
|
no intention of changing it. -------------------- Ami nagyon
|
|
|
|
|
leegyszer<65>s<EFBFBD>tve azt jelenti, hogy jogod van haszn<7A>lni a szoftvert
|
|
|
|
|
mindenf<6E>le ellenszolg<6C>ltat<61>s (p<>nz, stb) n<>lk<6C>l, a forr<72>s k<>dot
|
|
|
|
|
m<>dos<6F>thatod, <20>s tov<6F>bbadhatod, DE semmilyen, a szoftver haszn<7A>lat<61>b<EFBFBD>l
|
|
|
|
|
k<>vetkez<65> k<>rosod<6F>s<EFBFBD>rt nem v<>llal garanci<63>t a fejleszt<7A>. A fenti a BSD
|
|
|
|
|
licensz, egy klasszikus nyilt-forr<72>sk<73>d licensz. Nem tartalmaz
|
|
|
|
|
megszor<6F>t<EFBFBD>sokat arra, hogy a forr<72>sk<73>dot hogyan haszn<7A>lod fel.
|
|
|
|
|
Kedvelj<6C>k ezt a licensz form<72>t <20>s nem <20>ll sz<73>nd<6E>kunkban
|
|
|
|
|
megv<67>ltoztatni. 1.3) Milyen UNIX oper<65>ci<63>s rendszereken fut
|
|
|
|
|
PostgreSQL? <20>ltal<61>ban minden UNIX-kompatibilis oper<65>ci<63>s rendszer
|
|
|
|
|
k<>pes arra hogy futtassa a PostgreSQL-t. Azokat a platformokat, amiken
|
|
|
|
|
tesztelt<6C>k a kiad<61>st megtal<61>lhatod a install<6C>ci<63>s utas<61>t<EFBFBD>sok k<>z<EFBFBD>tt.
|
|
|
|
|
1.4) Milyen nem UNIX oper<65>ci<63>s rendszerek el<65>rhet<65>ek? Kliens A libpq C
|
|
|
|
|
f<>ggv<67>nyk<79>nyvt<76>rat, a psql-t <20>s m<>s fel<65>leteket le lehet <20>gy
|
|
|
|
|
ford<72>tani, hogy fussanak MS Windows oper<65>ci<63>s rendszereken. Ebben az
|
|
|
|
|
esetben a kliens MS Windows-on fut <20>s TCP/IP seg<65>ts<74>g<EFBFBD>vel kommunik<69>l a
|
|
|
|
|
Unixon fut<75> szerverrel. A "win32.mak" <20>llom<6F>ny a kiad<61>s r<>sze, ennek
|
|
|
|
|
seg<65>ts<74>g<EFBFBD>vel lehet Win32 platformokra leford<72>tani a libpq-t <20>s a
|
|
|
|
|
psql-t. A PostgreSQL ODBC kliensekkel is k<>pes kommunik<69>lni. Szerver
|
|
|
|
|
Az adatb<74>zis szerver Cygwin seg<65>ts<74>g<EFBFBD>vel fut Windows NT <20>s Win2k
|
2003-01-14 07:00:32 +08:00
|
|
|
|
rendszereken. Tov<6F>bbi inform<72>ci<63> tal<61>lhat<61> a pgsql/doc/FAQ_MSWIN
|
|
|
|
|
<20>llom<6F>nyban <20>s a MS Windows FAQ-ban a k<>vetkez<65> helyen:
|
2003-02-04 20:32:41 +08:00
|
|
|
|
http://www.PostgreSQL.org/docs/faq-mswin.html. Nat<61>v MS Windows
|
|
|
|
|
NT/2000/XP portok jelenleg fejleszt<7A>s alatt <20>llnak. 1.5) Hogyan tudok
|
|
|
|
|
PostgreSQL-t szerezni? Az els<6C>dleges anonim ftp oldal:
|
|
|
|
|
ftp://ftp.PostgreSQL.org/pub. A t<>k<EFBFBD>r oldalak list<73>ja megtal<61>lhat<61> a
|
|
|
|
|
f<> weboldalunkon. 1.6) Hogyan kapok term<72>kt<6B>mogat<61>st? Az els<6C>dleges
|
|
|
|
|
lista a pgsql-general@postgresql.org. Ez haszn<7A>lhat<61> a PostgreSQL-lel
|
|
|
|
|
kapcsolatos p<>rbesz<73>dekre. Ha fel szeretn<74>l <20>ratkozni, k<>ldj egy
|
|
|
|
|
levelet a k<>vetkez<65> tartalommal (nem t<>rggyal) a
|
|
|
|
|
pgsql-general-request@postgresql.org c<>mre: subscribe end Van egy
|
|
|
|
|
hib<69>kkal kapcsolatos levelez<65>si lista is:
|
|
|
|
|
pgsql-bugs-request@PostgreSQL.org a k<>vetkez<65> tartalommal: subscribe
|
|
|
|
|
end A fejleszt?i levelez<65>si lista:
|
|
|
|
|
pgsql-hackers-request@PostgreSQL.org a k<>vetkez<65> tertalommal:
|
|
|
|
|
subscribe end Egy<67>b levelez<65>si list<73>k tal<61>lhat<61>ak a weboldalunkon:
|
|
|
|
|
http://www.PostgreSQL.org Van egy IRC csatorna is #PostgreSQL n<>ven
|
|
|
|
|
ahol felteheted k<>r<EFBFBD>dseid. A k<>vetkez<65> unix paranccsal csatlakozhatsz:
|
|
|
|
|
irc -c '#PostgreSQL' "$USER" irc.phoenix.net. A kereskedelmi
|
|
|
|
|
term<72>kt<6B>mogat<61>st ny<6E>jt<6A> c<>gek list<73>ja el<65>rhet<65> itt:
|
|
|
|
|
http://www.PostgreSQL.org/users-lounge/commercial-support.html 1.7)
|
|
|
|
|
Melyik a legfrissebb kiad<61>s? A legfrissebb PostgreSQL kiad<61>s a 7.3. A
|
|
|
|
|
tervek szerint minden negyedik h<>napban van <20>j kiad<61>s. 1.8) Milyen
|
|
|
|
|
dokument<6E>ci<63> <20>ll rendelkez<65>sre? Sz<53>mos k<>zik<69>nyv, man oldalak <20>s kis
|
|
|
|
|
teszt p<>ld<6C>k tal<61>lhat<61>ak a kiad<61>sban a doc/ k<>nyvt<76>r alatt. Az
|
|
|
|
|
interneten is olvashatod a dokument<6E>ci<63>t a k<>vetkez<65> c<>men:
|
|
|
|
|
http://www.PostgreSQL.org/users-lounge/docs/. K<>t PostgreSQL k<>nyv
|
|
|
|
|
<20>rhet<65> el az interneten a http://www.PostgreSQL.org/docs/awbook.html
|
|
|
|
|
<20>s a http://www.commandprompt.com/ppbook/ c<>meken. A megv<67>s<EFBFBD>rolhat<61>
|
|
|
|
|
k<>nyvek list<73>ja itt tal<61>lhat<61>: http://www.ca.PostgreSQL.org/books/. A
|
|
|
|
|
PostgreSQL-lel kapcsolatos technikai jelleg<65> cikkek gy<67>jtem<65>nye:
|
|
|
|
|
http://techdocs.PostgreSQL.org/. A psql parancs rendelkezik n<>h<EFBFBD>ny \d
|
|
|
|
|
utas<61>t<EFBFBD>ssal, amellyekkel list<73>zhat<61>ak az oper<65>torok, a funkci<63>k, stb.
|
|
|
|
|
A website is tartalmaz tov<6F>bbi dokument<6E>ci<63>kat. 1.9) Hogyan tal<61>lok
|
|
|
|
|
inform<72>ci<63>t hib<69>kr<6B>l vagy hi<68>nyz<79> funkcional<61>t<EFBFBD>sr<73>l? A PostgreSQLaz
|
|
|
|
|
SQL-92 szabv<62>ny egy kieg<65>sz<73>t<EFBFBD>se. N<>zd meg a TODO list<73>kat ha
|
|
|
|
|
<20>rdekelnek az ismert hib<69>k. 1.10) Hogy tanuljam meg az SQL nyelvet? A
|
|
|
|
|
PostgreSQL k<>nyv a http://www.PostgreSQL.org/docs/awbook.html c<>men
|
|
|
|
|
tartalmaz SQL alapokat. El<45>rhet<65> egy m<>sik SQL k<>nyv is a
|
|
|
|
|
http://www.commandprompt.com/ppbook c<>men. Egy sz<73>p oktat<61> anyag
|
|
|
|
|
tal<61>lhat<61> a http://www.intermedia.net/support/sql/sqltut.shtm, a
|
|
|
|
|
http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM
|
|
|
|
|
<20>s a http://sqlcourse.com oldalakon. Egy m<>sik lehet<65>s<EFBFBD>g a "Tan<61>tsd
|
|
|
|
|
magad 21 nap alatt SQL-re, m<>sodik kiad<61>s" a
|
|
|
|
|
http://members.tripod.com/er4ebus/sql/index.htm. Sok felhaszn<7A>l<EFBFBD>nak
|
|
|
|
|
tetszett a gyakorlati SQL k<>nyv ("The Practical SQL Handbook"). 1.11)
|
|
|
|
|
A PostgreSQL 2000. <20>v kompatibilis? Igen, k<>nnyed<65>n kezeli a 2000
|
|
|
|
|
ut<75>ni <20>s id<69>sz<73>m<EFBFBD>t<EFBFBD>sunk el<65>tt 2000 el<65>tti d<>tumokat is. 1.12) Hogyan
|
|
|
|
|
lehet csatlakozni a fejleszt<7A> csapathoz? El<45>ssz<73>r is t<>ltsd le a
|
|
|
|
|
forr<72>sk<73>dot, <20>s olvasd el a PostgreSQL fejleszt<7A>i dokumnet<65>ci<63>t a web
|
|
|
|
|
oldalunkon vagy a kiad<61>sban. Ezut<75>n <20>ratkozz fel a pgsql-hackers <20>s a
|
|
|
|
|
pgsql-patches levelez<65>si list<73>kra. V<>g<EFBFBD>l pedig k<>ldj be magas
|
|
|
|
|
szinvonal<61> patch-eket a pgsql-patches list<73>ra. Van egy p<>r ember,
|
|
|
|
|
akiknek commit privil<69>giumuk a PostgreSQL CVS f<>n. <20>k olyan sok magas
|
|
|
|
|
szinvonal<61> patch-et k<>ldtek be, hogy az addigi csapat m<>r nem tudta
|
|
|
|
|
k<>vetni, <20>s nem volt k<>ts<74>g<EFBFBD>nk arr<72>l, hogy a patch-ek amiket <20>k
|
|
|
|
|
k<>ldenek j<> min<69>s<EFBFBD>g<EFBFBD>. 1.13) Hogyan k<>ldjek hibajelent<6E>st? L<>togass el
|
|
|
|
|
a BugTool oldalra: http://www.PostgreSQL.org/bugs/bugs.php Itt
|
|
|
|
|
megtal<61>lod k<>vetend<6E> utas<61>t<EFBFBD>sokat. Ellen<65>rizd az ftp oldalunkon is,
|
|
|
|
|
hogy nincs-e <20>jabb verzi<7A> vagy folt. ftp://ftp.PostgreSQL.org/pub
|
|
|
|
|
1.14) Milyen a PostgreSQL m<>s DBMS-ekkel <20>sszehasonl<6E>tva? Sz<53>mos
|
|
|
|
|
n<>z<EFBFBD>pontb<74>l lehet vizsg<73>lni a szoftvert: k<>pess<73>gek, teljes<65>tm<74>ny
|
|
|
|
|
megb<67>zhat<61>s<EFBFBD>g, t<>mogatotts<74>g <20>s <20>r. K<>pess<73>gek A PostgreSQL
|
|
|
|
|
rendelkezik a nagy, kereskedelmi DBMS-ek k<>pess<73>geivel: tranzakci<63>k,
|
|
|
|
|
al-lek<65>rdez<65>sek, triggerek, n<>zetek, k<>ls<6C> kulcsok, integr<67>t<EFBFBD>s <20>s
|
|
|
|
|
kifinoult z<>rmechanizmusok. Van n<>h<EFBFBD>ny k<>pess<73>ge, ami a kereskedelmi
|
|
|
|
|
adatb<74>zisokb<6B>l hi<68>nyzik, mint p<>ld<6C>ul a felhaszn<7A>l<EFBFBD> <20>ltal defini<6E>lt
|
|
|
|
|
t<>pusok, <20>r<EFBFBD>kl<6B>d<EFBFBD>s, szab<61>lyok <20>s verzi<7A> kontroll a z<>rol<6F>si vit<69>k
|
|
|
|
|
reduk<75>l<EFBFBD>s<EFBFBD><73>rt. Teljes<65>tm<74>ny A PostgreSQL teljes<65>tm<74>nye hasonl<6E>t a
|
|
|
|
|
kereskedelmi <20>s m<>s ny<6E>lt adatb<74>zis szerverek<65>hez. Lehet bizonyos
|
|
|
|
|
esetekben lassabb, m<>sokban gyorsabb. A MySQL nev<65> tanul<75> RDBMS
|
|
|
|
|
p<>ld<6C>ul gyorsabban hajt v<>gre insert/update m<>veleteket, mivel a
|
|
|
|
|
tranzakci<63>kat elsum<75>kolja. Persze a MySQL nem rendelkezik a k<>pess<73>gek
|
|
|
|
|
r<>szben felsoroltak nagy r<>sz<73>vel. Mi a megb<67>zhat<61>s<EFBFBD>gra <20>s a
|
|
|
|
|
k<>pess<73>gekre <20>p<EFBFBD>t<EFBFBD>nk, b<>r a teljes<65>tm<74>ny is n<> minden kiad<61>ssal. Van
|
|
|
|
|
egy <20>rdekes oldal a MySQL <20>s a PostgreSQL <20>sszehasonl<6E>t<EFBFBD>s<EFBFBD>val a
|
|
|
|
|
http://openacs.org/philosophy/why-not-mysql.html c<>men. Megb<67>zhat<61>s<EFBFBD>g
|
|
|
|
|
Tudjuk hogy ha egy DBMS nem megb<67>zhat<61>, akkor teljesen haszontalan.
|
|
|
|
|
Igyeksz<73>nk j<>l tesztelt, stabil k<>dot kiadni, amiben a lehet<65>
|
|
|
|
|
legkevesebb hiba van. Minden kiad<61>s el<65>tt eltellik legal<61>bb 1 h<>nap
|
|
|
|
|
b<>ta teszt, <20>s a kiad<61>si t<>rt<72>net is azt mutatja, hogy stabil k<>dot
|
|
|
|
|
adunk ki, ami k<>szen <20>ll a produkt<6B>v felhaszn<7A>l<EFBFBD>sra. <20>gy gondoljuk,
|
|
|
|
|
fel<65>lm<6C>lunk m<>s adatb<74>zis szoftvereket ezen a t<>ren. T<>mogat<61>s A
|
|
|
|
|
levelez<65>si list<73>ink kapcsolatot teremtenek a fejleszt<7A>k <20>s
|
|
|
|
|
felhaszn<7A>l<EFBFBD>k csoportj<74>val , akik seg<65>tenek a probl<62>m<EFBFBD>k megold<6C>s<EFBFBD>ban.
|
|
|
|
|
B<>r nem tudjuk garant<6E>lni hogy ki tudjuk jav<61>tani a hib<69>t, m<>s,
|
|
|
|
|
kereskedelmi adatb<74>zis c<>gek sem tudj<64>k. A fejleszt<7A> csoport k<>zvetlen
|
|
|
|
|
el<65>r<EFBFBD>si lehet<65>s<EFBFBD>ge, a k<>z<EFBFBD>ss<73>g, a dokument<6E>ci<63> <20>s a forr<72>sk<73>d gyakran
|
|
|
|
|
t<>mogat<61>st biztos<6F>t, mint m<>s adatb<74>zisokn<6B>l. Van kereskedelmi,
|
|
|
|
|
alkalmi t<>mogat<61>s azoknak, akiknek sz<73>ks<6B>ge van r<> (l<>sd: 1.6). <20>r A
|
|
|
|
|
PostgreSQL szabad b<>rmilyen felhaszn<7A>l<EFBFBD>sra, ak<61>r kereskedelmire is. A
|
|
|
|
|
term<72>khez hozz<7A>adhatod a saj<61>t forr<72>sk<73>djaidat korl<72>toz<6F>s n<>lk<6C>l,
|
|
|
|
|
1.15) Hogyan tudom <20>zletileg segiteni a PostgreSQL-t? A PostgreSQL
|
|
|
|
|
els<6C> oszt<7A>ly<6C> infrastrukt<6B>r<EFBFBD>val rendelkezik, amit 1996-ban ind<6E>tottunk
|
|
|
|
|
el. Mindent Marc Fourniernek k<>sz<73>nhet<65>nk, aki l<>trehozta <20>s
|
|
|
|
|
karbantartja a rendszert. A min<69>s<EFBFBD>gi infrastrukt<6B>ra nagyon fontos egy
|
|
|
|
|
nyilt forr<72>s<EFBFBD> szoftver eset<65>ben. Megv<67>d az olyan fennakad<61>sokt<6B>l,
|
|
|
|
|
amelyek komoly k<>s<EFBFBD>seket okoznak a fejleszt<7A>sekben. Term<72>szetesen ez
|
|
|
|
|
az infrastrukt<6B>ra nem olcs<63>. Sz<53>mos havi <20>s <20>lland<6E> kiad<61>sunk van. Ha
|
|
|
|
|
a c<>gednek van p<>nze, amivel t<>mogatn<74> er<65>fesz<73>t<EFBFBD>seinket, k<>rlek
|
|
|
|
|
l<>togass el a http://store.pgsql.com/shopping/ oldalra. B<>r a weboldal
|
|
|
|
|
"PostgreSQL, Inc"-k<>nt eml<6D>ti, a hozz<7A>j<EFBFBD>rul<75>sok kiz<69>r<EFBFBD>lag a PostgreSQL
|
|
|
|
|
fejleszt<7A>sre <20>rtend<6E>ek, <20>s nem egy meghat<61>rozott c<>gnek. Ha jobban
|
|
|
|
|
tetszik, k<>ldhetsz csekket is a kapcsolati c<>mek b<>rmelyik<69>re.
|
|
|
|
|
_________________________________________________________________
|
|
|
|
|
Felhaszn<7A>l<EFBFBD>i kliens k<>rd<72>sek 2.1) Van ODBC meghajt<6A> PostgreSQL-hez?
|
|
|
|
|
K<>t ODBC meghajt<6A> <20>rhet<65> el: PsqlODBC <20>s a OpenLink ODBC. A PsqlODBC a
|
|
|
|
|
PostgreSQL kiad<61>s r<>sze. Tov<6F>bbi inform<72>ci<63> tal<61>lhat<61> a
|
|
|
|
|
ftp://ftp.PostgreSQL.org/pub/odbc/ oldalon. Az OpenLink ODBC-t a
|
|
|
|
|
http://www.openlinksw.com c<>mr<6D>l t<>ltheted le. Ez az <20> szabv<62>nyos ODBC
|
|
|
|
|
kliens szoftver<65>kkel m<>k<EFBFBD>dik, <20>gy minden <20>ltaluk t<>mogatott platformon
|
|
|
|
|
(Win, Mac, Unix, VMS) el<65>rhet<65> lesz a PostgreSQL szerver. Tal<61>n olyan
|
|
|
|
|
vev<65>knek fogj<67>k eladni, akik kereskedelmi min<69>s<EFBFBD>g<EFBFBD> term<72>ket
|
|
|
|
|
szeretn<74>nek kapni, de a freeware verzi<7A> mindig el<65>rhet<65> lesz.
|
|
|
|
|
K<>rd<72>seidet a term<72>kkel kapcsolatban a postgres95@openlink.co.uk c<>men
|
|
|
|
|
teheted fel. Olvasd el az ODBC fejezetet is a programoz<6F>k
|
|
|
|
|
k<>zik<69>nyv<79>ben! 2.2) Milyen eszk<7A>z<EFBFBD>k <20>llnak rendelkez<65>sre PostgreSQL
|
|
|
|
|
Web fejleszt<7A>sekhez? Egy sz<73>p bemutat<61> olvashat<61> az adatb<74>zissal
|
|
|
|
|
t<>mogatott web oldalanr<6E>l a http://www.webreview.com weboldalon. A web
|
|
|
|
|
integr<67>ci<63>hoz a PHP egy kiv<69>ll<6C> szoftver. Let<65>lthet<65> a
|
|
|
|
|
http://www.php.net c<>mr<6D>l. Komplexebb esetekre sokan haszn<7A>lj<6C>k a Perl
|
|
|
|
|
fel<65>letet <20>s a CGI.pm vagy a mod_perl-t. 2.3) Van a PostgreSQL-hez
|
|
|
|
|
grafikus felhaszn<7A>l<EFBFBD>i fel<65>let? Riport gener<65>tor? Be<42>gyazott lek<65>rdez<65>
|
|
|
|
|
nyelv fel<65>let? Van egy sz<73>p PgAccess nev<65> grafikus fel<65>let<65>nk, ami
|
|
|
|
|
riport gener<65>tork<72>nt is haszn<7A>lhat<61>. A weboldal<61>t megtal<61>lod a
|
|
|
|
|
http://www.pgaccess.org/ c<>men. A disztrib<69>ci<63> tartalmazza az ecpg
|
|
|
|
|
programot is, ami egy be<62>gyazott SQL lek<65>rdez<65>si fel<65>let C nyelvhez.
|
|
|
|
|
2.4) Milyen programoz<6F>si nyelvekkel lehet el<65>rni a PostgreSQL
|
|
|
|
|
szervert? A k<>vetkez<65>k: * C (libpq) * C++ (libpq++) * Embedded C
|
|
|
|
|
(ecpg) * Java (jdbc) * Perl (DBD::Pg and perl5) * ODBC (odbc) * Python
|
|
|
|
|
(PyGreSQL) * TCL (libpgtcl) * C Easy API (libpgeasy) * PHP ('pg_'
|
|
|
|
|
functions, Pear::DB) Tov<6F>bbi programoz<6F>si fel<65>letek <20>rhet<65>ek el a
|
2003-01-14 07:00:32 +08:00
|
|
|
|
http://www.PostgreSQL.org/interfaces.html <20>s a
|
|
|
|
|
http://gborg.PostgreSQL.org oldalakon.
|
2003-02-04 20:32:41 +08:00
|
|
|
|
_________________________________________________________________
|
|
|
|
|
Adminisztr<74>ci<63>s k<>rd<72>sek 3.1) Hogyan tudom a PostgreSQL-t
|
|
|
|
|
/usr/local/pgsql -t<>l elt<6C>r<EFBFBD> helyre install<6C>lni? A configure script
|
|
|
|
|
--prefix param<61>ter<65>nek haszn<7A>lat<61>val. 3.2) AMikor elind<6E>tom a
|
|
|
|
|
postmaster-t, egy "Bad System Call"-t vagy core dump-ot kapok. Mi<4D>rt?
|
2003-01-14 07:00:32 +08:00
|
|
|
|
Sz<53>mos probl<62>ma lehet, de legel<65>ssz<73>r ellen<65>rizd le, hogy a kerneled
|
|
|
|
|
System V kieg<65>sz<73>t<EFBFBD>sekkel rendelkezik-e. A PostgreSQL haszn<7A>lja a
|
2003-02-04 20:32:41 +08:00
|
|
|
|
kernel osztott mem<65>ria <20>s szemafor API-j<>t. 3.3) Amikor megpr<70>b<EFBFBD>lom
|
|
|
|
|
inditani a postmaster-t, "IpcMemoryCreate" hib<69>kat kapok. Mi<4D>rt? Vagy
|
|
|
|
|
nincs megfelel<65>en konfigur<75>lva a kerneled osztott mem<65>ria t<>mogat<61>sa
|
|
|
|
|
vagy meg kell nagyobb<62>tanod a maxim<69>lis osztott mem<65>ria m<>retet. A
|
|
|
|
|
pontos m<>ret sz<73>ks<6B>glet f<>gg az architekt<6B>r<EFBFBD>dt<64>l <20>s att<74>l hogy h<>ny
|
|
|
|
|
buffert <20>s processzt konfigur<75>lsz a postmasternek. Legal<61>bb 1 MB
|
2003-01-14 07:00:32 +08:00
|
|
|
|
ter<65>letre sz<73>ks<6B>ged van. A PostgreSQL Adminisztr<74>ci<63> k<>zik<69>nyvben
|
|
|
|
|
olvashatsz r<>szletesebb inform<72>ci<63>kat az osztott mem<65>ri<72>r<EFBFBD>l <20>s a
|
2003-02-04 20:32:41 +08:00
|
|
|
|
szemaforokr<6B>l. 3.4) Amikor megpr<70>b<EFBFBD>lom inditani a postmaster-t,
|
|
|
|
|
"IpcSemaphoreCreate" hib<69>kat kapok. Mi<4D>rt? Ha a hiba<62>zenet ez: "
|
|
|
|
|
IpcSemaphoreCreate: semget failed (No space left on device)", akkor a
|
|
|
|
|
kerneled konfigur<75>ci<63>ja nem tesz lehet<65>v<EFBFBD> elegend<6E> szemafort. A
|
|
|
|
|
PostgreSQL szerver processzenk<6E>nt 1 szemafort ig<69>nyel. Egy <20>tmeneti
|
|
|
|
|
megold<6C>s lehet az hogy a postmastert kevesebb maxim<69>lis processz
|
|
|
|
|
sz<73>mmal inditod el. Haszn<7A>ld a -D param<61>tert. Egy sokkal megfelel<65>bb
|
|
|
|
|
megold<6C>s az ha n<>veled a kerneled SEMMNS <20>s SEMMNI param<61>tereit. A
|
|
|
|
|
hib<69>s szemaforok is adat<61>zis lerobban<61>s<EFBFBD>hoz is vezethet nagy terhel<65>s
|
|
|
|
|
eset<65>n. Ha a hiba<62>zenet valami m<>s, lehet hogy nincs szemaforok
|
|
|
|
|
t<>mogat<61>s forditva a kerneledbe. Olvasd el a PostgreSQL
|
|
|
|
|
adminisztr<74>torok k<>zik<69>nyv<79>ben az osztott mem<65>ri<72>r<EFBFBD>l <20>s a
|
|
|
|
|
szemaforokr<6B>l sz<73>l<EFBFBD> fejezetet. 3.5) Hogyan tudom kontroll<6C>lni a m<>s
|
|
|
|
|
g<>pekr<6B>l <20>rkez<65> kapcsolat k<>r<EFBFBD>seket? Alap<61>rtelmez<65>sben a PostgreSQL a
|
|
|
|
|
helyi kapcsolatokat Unix socketekkel val<61>s<EFBFBD>tja meg. M<>s g<>pek nem
|
|
|
|
|
lesznek k<>pesek csatlakozni, ha nem enged<65>lyezed azt -i opci<63>val a
|
|
|
|
|
postmasternek, <20>s nem <20>ll<6C>tod be host a alap<61> azonos<6F>t<EFBFBD>st a
|
|
|
|
|
pg_hba.conf <20>llom<6F>nyban. Ezzel v<>lnak lehet<65>v<EFBFBD> a TCP/IP kapcsolatok.
|
|
|
|
|
3.6) Hogyan tudom nagyobb teljes<65>tm<74>nyre hangolni az adatb<74>zisomat? Az
|
|
|
|
|
indexel<65>s felt<6C>tlen<65>l gyors<72>tja a lek<65>rdez<65>seket. Az EXPLAIN parancs
|
|
|
|
|
lehet<65>v<EFBFBD> teszi hogy l<>sd, hogy a PostgreSQL mik<69>nt interpret<65>lja a
|
|
|
|
|
lek<65>rdez<65>st <20>s melyik indexet haszn<7A>lja. Ha sok INSERT m<>veletet
|
|
|
|
|
hajtassz v<>gre, csin<69>ld nagy k<>tegekben a COPY paranccsal. Ez sokkal
|
|
|
|
|
gyorsabb mint az egyedi INSERT parancsok. M<>sodszor: Azok a m<>veletek,
|
|
|
|
|
amelyek nincsenek tranzakci<63> blokkon bel<65>l, azok saj<61>t tranzakci<63>t
|
|
|
|
|
ind<6E>tanak. Sok m<>veletet <20>rdemes egy tranzakci<63>n bel<65>l v<>grehajtani.
|
|
|
|
|
Ez cs<63>kkenti a tranzakci<63> kezel<65>s t<>bbletidej<65>t. Az indexeket javasolt
|
|
|
|
|
a nagy adatv<74>ltoz<6F>sok el<65>tt elt<6C>vol<6F>tani, majd <20>jra l<>trehizni. Sz<53>mos
|
|
|
|
|
teljes<65>tm<74>ny jav<61>t<EFBFBD> lehet<65>s<EFBFBD>g van. Kikapcsolhatod az fsync() m<>veletet
|
|
|
|
|
a postmaster -o -F opci<63>kval val<61> ind<6E>t<EFBFBD>sakor. <20>gy nem fog az amugy
|
|
|
|
|
lass<73> fsync() f<>ggv<67>ny megh<67>v<EFBFBD>dni minden tranzakci<63> v<>g<EFBFBD>n.
|
2003-01-14 07:00:32 +08:00
|
|
|
|
Haszn<7A>lhatod a postmaster -B opci<63>j<EFBFBD>t is az osztott mem<65>ria szegmens
|
2003-02-04 20:32:41 +08:00
|
|
|
|
m<>ret<65>nek n<>vel<65>s<EFBFBD>hez. Ha az <20>rt<72>ket t<>l magasra <20>ll<6C>tod, lehet hogy a
|
|
|
|
|
postmaster nem indul el, mert t<>ll<6C>pted az oper<65>ci<63>s rendszer <20>ltal
|
2003-01-14 07:00:32 +08:00
|
|
|
|
megengedett m<>retet. Minden buffer 8K m<>ret<65> <20>s alap<61>rtelmez<65>sban 64
|
2003-02-04 20:32:41 +08:00
|
|
|
|
buffer van. A -S opci<63>val n<>velheted a szerver <20>tmeneti rendez<65>sekre
|
|
|
|
|
fenntartott mem<65>ria ter<65>let<65>t. Az <20>rt<72>ket kilobyteban add meg. Az
|
|
|
|
|
alap<61>rtelmezett <20>rt<72>k 512K. Haszn<7A>lhatod a CLUSTER utas<61>t<EFBFBD>st is, hogy
|
|
|
|
|
a t<>bl<62>kat egy indexnek megfelel<65>en csoportos<6F>tsd. Olvasd el a CLUSTER
|
|
|
|
|
k<>zik<69>nyv oldalt tov<6F>bbi r<>szletek<65>rt. 3.7) Milyen hibakeres<65>
|
|
|
|
|
lehet<65>s<EFBFBD>gek <20>rhet<65>ek el? A PostgreSQL sz<73>mos lehet<65>s<EFBFBD>ggel rendelkezik
|
|
|
|
|
ami <20>rt<72>kes lehet a hiba- keres<65>sn<73>l. El<45>ssz<73>r is, futtathatod a
|
|
|
|
|
configure scriptet --enable-cassert opci<63>val, sok assert()
|
|
|
|
|
funkci<63>hiv<69>s ellen<65>rzi a program fut<75>s<EFBFBD>t <20>s meg<65>llitja ha valami
|
|
|
|
|
v<>ratlan hiba t<>rt<72>nik. Mind a postmaster <20>s a postgres sz<73>mos
|
|
|
|
|
hibakeres<65> lehet<65>s<EFBFBD>ggel rendelkezik. Mindig amikor elinditod a
|
|
|
|
|
postmastert, gy<67>z<EFBFBD>dj meg r<>la, hogy a kimenetet log <20>llom<6F>nyba k<>ld<6C>d.
|
|
|
|
|
Igy: cd /usr/local/pgsql ./bin/postmaster >server.log 2>&1 & Ez egy
|
|
|
|
|
server.log <20>llom<6F>nyt hoz l<>tre a fels<6C> PostgreSQL k<>nyvt<76>rban. Ez az
|
|
|
|
|
<20>llom<6F>ny tartlamaz majd sz<73>mos hasznos inform<72>ci<63>t a szerverrel
|
2003-01-14 07:00:32 +08:00
|
|
|
|
kapcsolatos probl<62>m<EFBFBD>kr<6B>l <20>s hib<69>kr<6B>l. A postmaster -d opci<63>j<EFBFBD>val lehet
|
2003-02-04 20:32:41 +08:00
|
|
|
|
r<>szletesebb hibakeres<65> inform<72>ci<63>t kapni. A -d opci<63>hoz meg kell
|
|
|
|
|
hat<61>rozni egy hiba szintet. Vigy<67>zz, a magas hibakeres<65> szint nagy log
|
|
|
|
|
<20>llom<6F>nyt okozhat. Ha a postmaster nem fut, akkor futtathatod a
|
|
|
|
|
postgres szervert parancssorb<72>l is, <20>s az SQL kifejez<65>st k<>zvetlen<65>l
|
|
|
|
|
ennek adhatod <20>t. Ez csak hibakeres<65>s eset<65>ben javasolt. Az <20>j sor a
|
|
|
|
|
kifejez<65>s v<>g<EFBFBD>t jelenti, nem a pontosvessz<73>. Ha hibakeres<65> opci<63>kkal
|
|
|
|
|
forditottad a szervert, haszn<7A>lhatsz egy debuggert is hogy l<>sd hogy
|
|
|
|
|
mi t<>rt<72>nik. Mivel igy a szervert nem a postmaster inditotta, nem
|
|
|
|
|
t<>bbfelhaszn<7A>l<EFBFBD>s k<>rnyezetk<74>nt fut, igy a z<>rol<6F>si <20>s a szerverek
|
|
|
|
|
k<>z<EFBFBD>tti kommunik<69>ci<63>s hiba jelens<6E>gek nem jelentkeznek. Ha m<>r fut a
|
|
|
|
|
postmaster, indits egy psql-t, <20>s n<>zd meg a szerver processz PID-j<>t!
|
|
|
|
|
Egy debuggert haszn<7A>lhatsz a processzhez csatlakoz<6F>shoz. Be<42>llithatsz
|
|
|
|
|
t<>r<EFBFBD>spontokat <20>s elindithatsz lek<65>rdez<65>seket. Ha a postgres indit<69>sban
|
|
|
|
|
keresel hib<69>t, a PGOPTIONS k<>rnyezeti v<>ltoz<6F>t <20>llitsd be "-W n"
|
2003-01-14 07:00:32 +08:00
|
|
|
|
<20>rt<72>kre. Ez n m<>sodperc v<>rakoz<6F>st id<69>z el<65>, igy tudsz csatlakozni a
|
2003-02-04 20:32:41 +08:00
|
|
|
|
processzhez, el tdsz hejezni t<>r<EFBFBD>spontokat, majd folytathatod a
|
|
|
|
|
ind<6E>t<EFBFBD>st. A postgres program -s, -A <20>s -t opci<63>i is nagyon hasznosak
|
|
|
|
|
lehetnek hibakeres<65>sn<73>l <20>s teljes<65>tm<74>ny m<>r<EFBFBD>sn<73>l. Profiling
|
|
|
|
|
leht<68>s<EFBFBD>ggel is fordithatod a szervert, hogy l<>sd melyik funkci<63>k
|
|
|
|
|
foglalj<6C>k el a fut<75>si id<69>t. A szerver profile <20>llom<6F>nyai a
|
|
|
|
|
pgsql/data/base/dbname k<>nzvt<76>rba ker<65>lnek, a kliens profile
|
|
|
|
|
<20>llom<6F>nyok az aktu<74>lis k<>nyvt<76>rba. Linuxon ehhez sz<73>ks<6B>ges a
|
|
|
|
|
-DLINUX_PROFILE ford<72>t<EFBFBD>si direktiva. 3.8) Mi<4D>rt kapok "Sorry, too many
|
|
|
|
|
clients" (T<>l sok kliens) hib<69>t csatlakoz<6F>sn<73>l? N<>velned kell a
|
|
|
|
|
postmaster egyidej<65>leg futtatott szerver processz sz<73>m korl<72>tj<74>t. Az
|
|
|
|
|
alap<61>rtelmezett korl<72>t 32 processz. Ezt n<>velhetjed <20>gy, hogy
|
2003-01-14 07:00:32 +08:00
|
|
|
|
<20>jrainditod a postmastert <20>s -N opci<63>val meghat<61>rotod az <20>j <20>rt<72>ket,
|
2003-02-04 20:32:41 +08:00
|
|
|
|
vagy m<>dositod a postgresql.conf-ot. Ne felejtsd el, hogy ha n<>veled a
|
|
|
|
|
szerver processzek maxim<69>lis sz<73>m<EFBFBD>t, akkor bufferek sz<73>m<EFBFBD>t is n<>velned
|
|
|
|
|
kell, legal<61>bb a processzek sz<73>m<EFBFBD>nak k<>tszeres<65>re. Nagy processz
|
|
|
|
|
sz<73>mokeset<65>ben val<61>szin<69>leg a Unix konfigur<75>ci<63>s param<61>tereken is
|
|
|
|
|
n<>velni kell. Ellen<65>rizd a SHMMAX (az osztott mem<65>ria szegmensek
|
|
|
|
|
maxim<69>lis m<>rete), a SEMMNS <20>s a SEMMNI (a szemaforok maxim<69>lis
|
|
|
|
|
sz<73>ma), az NPROC (a processzek maxim<69>lis sz<73>ma), a MAXUPRC
|
|
|
|
|
(felhaszn<7A>l<EFBFBD>nk<6E>nti maxim<69>lis processz sz<73>m) <20>s a NFILE <20>s NINODE (a
|
|
|
|
|
megnzitott <20>llom<6F>nzok maxim<69>lis sz<73>ma) param<61>tereket. A PostgreSQL
|
|
|
|
|
az<61>rt korl<72>tozza k<>l<EFBFBD>n a processz sz<73>mot, hogy a rendszeredet ne
|
|
|
|
|
terhelhesse meg t<>ls<6C>gosan. A PostgreSQL 6.5 verzi<7A>ban a maxim<69>lis
|
|
|
|
|
szerver processz sz<73>m 64 volt <20>s a m<>dosit<69>shoz bele kellett irni a
|
|
|
|
|
include/storage/sinvaladt.h <20>llom<6F>nyba <20>s <20>jra kellett forditani a
|
|
|
|
|
servert. 3.9) Mi van pgsql_tmp k<>nyvt<76>rban? Ez a k<>nyvt<76>r a lek<65>rdez<65>s
|
|
|
|
|
v<>grehajt<6A> <20>ltal l<>trehezott <20>tmeneti <20>llom<6F>nyokat tartalmazza.
|
|
|
|
|
P<>ld<6C>ul ha egy rendez<65>st kell v<>grehajtani egy ORDER BY kifejez<65>s
|
|
|
|
|
miatt <20>s a m?velet t<>bb mem<65>ri<72>t vesz ig<69>nybe, mint amennyit a -S
|
|
|
|
|
param<61>ter megenged, akkor az <20>tmeneti k<>nyvt<76>rban hoz l<>tre egy
|
|
|
|
|
<20>llom<6F>nyt a fennmarad<61> adat t<>rol<6F>s<EFBFBD>ra. Az <20>tmeneti <20>llom<6F>nyok
|
|
|
|
|
t<>bbnyire t<>rl?dnek, de meg is maradhat ha p<>ld<6C>ul v<>ratlan hib<69>val
|
|
|
|
|
le<6C>ll a szerver egy rendez<65>s k<>zben. Indit<69>skor <20>s le<6C>llit<69>skor ezeket
|
|
|
|
|
az <20>llom<6F>nyokat t<>rli a postmaster. 3.10) Mi<4D>rt kell dumpolni <20>s
|
|
|
|
|
<20>jrat<61>lteni PostgreSQL kiad<61>s v<>lt<6C>s<EFBFBD>n<EFBFBD>l? A PostgreSQL csapat csak
|
|
|
|
|
apr<70>bb v<>ltoztat<61>sokat hajt v<>gre a kisebb kiad<61>sok k<>z<EFBFBD>tt, igy ha 7.2
|
|
|
|
|
verzi<7A>r<EFBFBD>l <20>llsz <20>t 7.2.1 verzi<7A>ra, akkor nem sz<73>ks<6B>ges kidumplonod az
|
|
|
|
|
adatb<74>zist. A nagy kiad<61>sok eset<65>ben (p<>ld<6C>ul verzi<7A>r<EFBFBD>l 7.3-ra
|
|
|
|
|
<20>tt<74>r<EFBFBD>sn<73>l) v<>ltozik a belsi<73> adatstrukt<6B>r<EFBFBD>k <20>s adat<61>llom<6F>nyok
|
|
|
|
|
form<72>tuma. Ezek a v<>ltoz<6F>sok gyakran nagyon <20>sszetettek, ez<65>rt ink<6E>b
|
|
|
|
|
nem tartunk fenn visszafel<65> kompatibilit<69>st. A dump az adatot
|
|
|
|
|
<20>ltal<61>nos form<72>tumban irja ki, majd az <20>j form<72>tumban lehet azt
|
|
|
|
|
visszat<61>leni. Azokban a kiad<61>sokban, amelyek k<>z<EFBFBD>tt az adat form<72>tum
|
|
|
|
|
nem v<>ltozik, a pg_upgrade program haszn<7A>lhat<61> dumpol<6F>s <20>s
|
|
|
|
|
helzre<72>llit<69>s n<>lk<6C>l.
|
|
|
|
|
_________________________________________________________________
|
|
|
|
|
M<>k<EFBFBD>dtet<65>si k<>rd<72>sek 4.1) Mi a k<>l<EFBFBD>nbs<62>g a bin<69>ris <20>s a norm<72>l
|
|
|
|
|
kurzorok k<>z<EFBFBD>tt? N<>zd meg a DECLARE dokument<6E>ci<63>j<EFBFBD>t. 4.2) Hogyan tudom
|
|
|
|
|
select-elni a lek<65>rdez<65>s els<6C> p<>r sor<6F>t? Olvasd el a FETCH
|
|
|
|
|
dokument<6E>ci<63>j<EFBFBD>t, vagy haszn<7A>ld a SELECT LIMIT-et. Az eg<65>sz lek<65>rdez<65>st
|
|
|
|
|
v<>gre kell hajtani, m<>g akkor is, ha csak az els<6C> p<>r sort akarod
|
|
|
|
|
megkapni. Gondolj arra, hogy a lek<65>rdez<65>sben lehet ORDER BY is. Ha van
|
|
|
|
|
olyan index, ami megfelel az ORDER BY kifejez<65>sednek, a PostgreSQL
|
|
|
|
|
k<>pes lehet az els<6C> n<>h<EFBFBD>ny rekord visszaad<61>s<EFBFBD>ra, vagy a teljes
|
|
|
|
|
lek<65>rdez<65>snek le kell futnia, amig a k<>rt rekordok le nem
|
|
|
|
|
gener<65>l<EFBFBD>dnak. 4.3) Hogy tudom kilist<73>zni a t<>bl<62>kat vagy m<>s dolgokat
|
|
|
|
|
a PostgreSQL-ben? Elolvashatod a psql forr<72>s k<>dj<64>ban a
|
|
|
|
|
pgsql/src/bin/psql/describe.c <20>llom<6F>nyban. Ez SQL parancsokat
|
|
|
|
|
tartalmaz, amelyek azokat a kimeneteket <20>llitj<74>k el<65>, amiket a per
|
|
|
|
|
jellel kezd<7A>d<EFBFBD> parancsok adnak vissza. 4.4) Hogyan tudok elt<6C>vol<6F>tani
|
|
|
|
|
egy oszlopot egy t<>bl<62>b<EFBFBD>l? Ez a funkcionalit<69>s a 7.3 verzi<7A>t<EFBFBD>l kezdve
|
|
|
|
|
<20>rhet<65> el az ALTER TABLE DROP COLUMN -nal. A r<>gebbi verti<74>kban igy
|
|
|
|
|
lehet v<>grehajtani: BEGIN; LOCK TABLE old_table; SELECT ... -- minden
|
|
|
|
|
oszlopot, kiv<69>tel amit t<>r<EFBFBD>lni szeretn<74>l INTO TABLE new_table FROM
|
|
|
|
|
old_table; DROP TABLE old_table; ALTER TABLE new_table RENAME TO
|
|
|
|
|
old_table; COMMIT; 4.5) Mi a maxim<69>lis m<>rete egy sornak, egy t<>bl<62>nak
|
|
|
|
|
vagy egy adatb<74>zisnak? A korl<72>tok: adatb<74>zis: korl<72>tlan (1 TB az
|
|
|
|
|
<20>ltalunk ismert lagnagyobb) t<>bla: 16 TB rekord/sor 1.6TB mez<65> 1 GB a
|
|
|
|
|
t<>bla sorainak sz<73>ma: korl<72>tlan a t<>bla oszlopainak sz<73>ma: 250-1600 az
|
|
|
|
|
oszlop nevekt<6B>l f<>gg<67>en A t<>bla indexeinek sz<73>ma: korl<72>tlan
|
2003-01-14 07:00:32 +08:00
|
|
|
|
Term<72>szetesen nem igaz<61>n korl<72>tlan, de a t<>rter<65>let, mem<65>ria <20>s egy<67>b
|
2003-02-04 20:32:41 +08:00
|
|
|
|
k<>ls<6C> t<>nyez<65>k korl<72>tozz<7A>k. A teljesitm<74>ny romolhat, ha ezek az
|
|
|
|
|
<20>rt<72>kek szokatlanul nagyok. A 16 TB-os legnagyobb t<>bla m<>ret nem
|
|
|
|
|
ig<69>nyel nagy <20>llom<6F>ny t<>mogat<61>st. A nagy t<>bl<62>k t<>bb 1 GB m<>ret<65>
|
|
|
|
|
<20>llom<6F>nyba ker<65>lnek, igy az <20>llom<6F>ny rendszer korl<72>tai nem l<>nyegesek.
|
|
|
|
|
A maxim<69>lis t<>bla m<>ret <20>s az oszlopok maxim<69>lis oszlop sz<73>m
|
|
|
|
|
n<>velhet<65>, ha az alap<61>rtelmezett blokkm<6B>retet 32k-ra n<>veled. 4.6)
|
|
|
|
|
Mekkora adatb<74>zis lemez ter<65>let sz<73>ks<6B>ges egy tipikus sz<73>veg <20>llom<6F>ny
|
|
|
|
|
t<>rol<6F>s<EFBFBD>hoz? A PostgreSQL ak<61>r a sz<73>veg <20>llom<6F>ny helyig<69>nz<6E>nek
|
|
|
|
|
<20>tsz<73>r<EFBFBD>s<EFBFBD>t is elfoglalhaja. K<>pzelj el p<>ld<6C>ul, egy 100.000 soros
|
|
|
|
|
sz<73>veget, aminek minde sora egy sz<73>mb<6D>l <20>s egy sz<73>vegb<67>l <20>ll. Tegy<67>k
|
|
|
|
|
el, hogy <20>tlagosan 20 byte hossz<73> sz<73>vegek. Ez a sz<73>veg<65>llom<6F>ny
|
|
|
|
|
k<>r<EFBFBD>lbel<65>l 2.8 MB helyet foglalna el. A t<>bla ami a fenti
|
|
|
|
|
adatszerkezetet elt<6C>roln<6C>, k<>r<EFBFBD>lbel<65>l 6.4 MB-os lenne. Ezt a
|
|
|
|
|
k<>vetkez<65>k<EFBFBD>ppen sz<73>molhatjuk ki: 36 byte: sor fejl<6A>c 24 byte: egy int
|
|
|
|
|
mez<65> + egy sz<73>veg mez<65> 4 byte: mutato
|
|
|
|
|
--------------------------------------- 64 byte soronkent. Az adat
|
|
|
|
|
oldal m<>rete a PostgreSQL-ben 8192 byte, igy 8192 / 64 = 128 rekord
|
|
|
|
|
adatb<74>zis oldalank<6E>nt (lefel<65> kerekitve). 100000 rekord / 128 rekord
|
|
|
|
|
oldalank<6E>nt = 782 adat oldal (felel<65> kerekitve). 782 adatb<74>zis oldal *
|
|
|
|
|
8192 byte olalank<6E>nt = 6,406,144 byte (6.4 MB) Az indexek nem
|
|
|
|
|
foglalnak t<>l sokat, de tartalmazz<7A>k az indexelt adatot, igy ezek is
|
|
|
|
|
lehetnek nagyok. A NULL <20>rt<72>kek bitt<74>rk<72>pben vannak t<>rolva, igy kev<65>s
|
|
|
|
|
helyet foglanak. 4.7) Hogy tudhatom meg milyen t<>bl<62>k, indexek,
|
|
|
|
|
adatb<74>zisok vagy felhaszn<7A>l<EFBFBD>k vannak defini<6E>lva? A psql-ben tal<61>lsz
|
|
|
|
|
sz<73>mos '\' karakterrel kezd<7A>d<EFBFBD> utas<61>t<EFBFBD>st az ilyen inform<72>ci<63>k
|
|
|
|
|
list<73>z<EFBFBD>s<EFBFBD>ra. A '\?' segits<74>g<EFBFBD>vel tudot kilist<73>zni ezeket a
|
|
|
|
|
parancsokat. Ezen kiv<69>l vannak rendszer t<>bl<62>k, amelyek nevei 'pg_'
|
|
|
|
|
-vel kezd<7A>dnek. Pr<50>b<EFBFBD>ld ki a pgsql/src/tutorial/syscat.source
|
|
|
|
|
<20>llom<6F>nyt is. Ez sok p<>ld<6C>t tartalmaz az rendszert<72>bl<62>kon v<>grehajtott
|
|
|
|
|
SELECT-ekr<6B>l. 4.8) A lek<65>rdez<65>seim lass<73>ak, vagy nem haszn<7A>lj<6C>k az
|
|
|
|
|
indexeket. Mi<4D>rt? Az indexeket nem haszn<7A>lja a szerver minden
|
|
|
|
|
lek<65>rdez<65>sn<73>l automatikusan. Csak akkor haszn<7A>l indexet, ha a t<>bla
|
|
|
|
|
m<>rete egy megadott als<6C> hat<61>r felett van, <20>s a lek<65>rdez<65>s csak a
|
|
|
|
|
sorok egy kis r<>sz<73>t <20>rinti. Ez az<61>rt van, mert a v<>letlen hozz<7A>f<EFBFBD>r<EFBFBD>s
|
|
|
|
|
m<>g mindig lassabb lehet mint az t<>bla szekvenci<63>lis olvas<61>sa. Hogy a
|
|
|
|
|
PostgreSQL meg tudja hat<61>rozni hogy kell-e indexet haszn<7A>lni, l<>teznie
|
|
|
|
|
kell egy statisztik<69>nak a t<>bl<62>r<EFBFBD>l. Ez a statisztikai adatok a VAACUM
|
|
|
|
|
ANALYZE vagy az egyszer<65> ANALYZE m<>veletek sor<6F>n j<>nnek l<>tre. A
|
|
|
|
|
statisztikai adatok felhaszn<7A>l<EFBFBD>s<EFBFBD>val az optimaliz<69>l<EFBFBD> meg tudja
|
|
|
|
|
hat<61>rozni, hogy h<>ny sor van a t<>bl<62>ban, <20>s el tudja d<>nteni, hogy
|
|
|
|
|
haszn<7A>ljon-e indexet. A statisztiaki adatgy<67>jt<6A>st id<69>nk<6E>nt v<>gre kell
|
|
|
|
|
hajtani, ahogy a t<>bla adatai v<>ltoznak. Az indexeket norm<72>lis esetben
|
|
|
|
|
nem haszn<7A>lja az ORDER BY vagy az OUTER JOIN. A szekvenci<63>lis olvas<61>s
|
|
|
|
|
<20>ltal<61>ban gyorsabb, mint az index keres<65>s egy nagy t<>bl<62>ban. B<>r a
|
|
|
|
|
LIMIT az ORDER BY-val kombin<69>lva haszn<7A>lhat indexet, mert a t<>bla csak
|
|
|
|
|
kis r<>sze <20>rintett. B<>r a MIN <20>s MAX SQL funkci<63>k sem haszn<7A>lj<6C>k az
|
|
|
|
|
indexeket, ezeket az <20>rt<72>keket egy ORDER BY + LIMIT lek<65>rdez<65>ssel is
|
|
|
|
|
le lehet k<>rdezni: SELECT col FROM tab ORDER BY col [ DESC ] LIMIT 1;
|
2003-01-14 07:00:32 +08:00
|
|
|
|
Amikor helyettes<65>t<EFBFBD> jel oper<65>torokat haszn<7A>lsz, mint a LIKE kulcssz<73>
|
2003-02-04 20:32:41 +08:00
|
|
|
|
vagy a ~, az indexeket csak bizonyos k<>r<EFBFBD>lm<6C>nyek k<>z<EFBFBD>tt lehet
|
|
|
|
|
haszn<7A>lni: * A keres<65> string kezdete a keres<65>si minta elej<65>n kell hogy
|
|
|
|
|
legyen. p<>ld<6C>ul: + A LIKE mint<6E>k nem kezd<7A>dhetnek % jellel. + ~
|
|
|
|
|
(regexp) kifejez<65>sek nem kezd<7A>dhetnek ^ jellel. * A keres<65>si kifejez<65>s
|
|
|
|
|
nem kezd<7A>dhet karakter oszt<7A>llyal. * A case-insensitive keres<65>s
|
|
|
|
|
(ILIKE, ~*) nem haszn<7A>lnak indexet ehelyett funkcion<6F>lis indexet
|
|
|
|
|
haszn<7A>lnak, amit a 4.12 pontban tal<61>lhatsz. * Az alap<61>rtelmezett C
|
|
|
|
|
hellyel kell futtatni az initdb-t. 4.9) Hogy tudom ellen<65>rizni, hogy
|
|
|
|
|
optimaliz<69>lta a lek<65>rdez<65>s optimaliz<69>l<EFBFBD> a lek<65>rdez<65>sem? Olvasd el a
|
|
|
|
|
dokument<6E>ci<63> EXPLAIN-r<>l sz<73>l<EFBFBD> r<>sz<73>t. 4.10) Mi az R-tree index? Az
|
|
|
|
|
R-tree index a t<>rbeli adat indexel<65>s<EFBFBD>re alkalmas. Egy hash index nem
|
|
|
|
|
k<>pes tartom<6F>ny keres<65>sekre. A B-tree index csak egy dimenzi<7A>n kezeli
|
|
|
|
|
a tartom<6F>ny keres<65>seket. P<>ld<6C>ul ha az indexet egy pont (point
|
|
|
|
|
adatt<74>pus) t<>pus<75> mez.re <20>p<EFBFBD>tj<74>k, gyorsabban kezeli az olyan jelleg<65>
|
|
|
|
|
lek<65>rdez<65>seket, mint egy adott k<>rben tal<61>lhat<61> pontok. Az R-tree
|
|
|
|
|
tervez<65>si mint<6E>t eredetileg le<6C>r<EFBFBD> sz<73>veg: Guttman, A. "R-trees: A
|
|
|
|
|
Dynamic Index Structure for Spatial Searching." Proceedings of the
|
|
|
|
|
1984 ACM SIGMOD Int'l Conf on Mgmt of Data, 45-57. Ezt olvashatod
|
|
|
|
|
Stonebraker "Readings in Database Systems" c. k<>nyv<79>ben. A be<62>p<EFBFBD>tett
|
|
|
|
|
R-tree kezelni tudj<64>k a soksz<73>geket (polygon adatt<74>pus) <20>s a dobozokat
|
|
|
|
|
(box). Elm<6C>letileg, az R-tree kiterjeszthet<65> tov<6F>bbi dimenzi<7A>kra is.
|
|
|
|
|
Gyakorlatilag ezen dolgoznod kell egy kicsit, <20>s m<>g nincs
|
|
|
|
|
dokument<6E>ci<63>nk arr<72>l hogy az hogyan m<>k<EFBFBD>dik. 4.11) Mi a Genetic Query
|
|
|
|
|
Optimizer? A GEQO modul a lek<65>rdez<65>s optimaliz<69>ci<63> sebess<73>g<EFBFBD>t n<>veli
|
|
|
|
|
nagy mennyis<69>g<EFBFBD> t<>bla <20>sszekapcsol<6F>sa eset<65>n. Lehet<65>v<EFBFBD> teszi a nagy
|
|
|
|
|
lek<65>rdez<65>sek v<>grehajt<6A>s<EFBFBD>t nem teljes keres<65>ssel. 4.12) Hogyan tudok
|
|
|
|
|
regexp keres<65>st <20>s case-insensitive regexp keres<65>st haszn<7A>lni? Hogyan
|
|
|
|
|
tudok indexet haszn<7A>lni case-insensitive keres<65>shez? A ~ oper<65>tor hajt
|
|
|
|
|
v<>gre regul<75>ris kifejez<65>s (regexp) <20>rtelmez<65>st, a ~* ennek
|
|
|
|
|
case-insensitive v<>ltozata. A LIKE case-insensitive v<>ltozata az
|
|
|
|
|
ILIKE. A case-insensitive egyenl<6E>s<EFBFBD>g m<>veleteket <20>ltal<61>ban igy hajtjuk
|
|
|
|
|
v<>gre: SELECT * FROM tab WHERE lower(col) = 'abc'; Ez nem fog indexet
|
|
|
|
|
haszn<7A>lni, b<>r l<>trehozhatsz egy funkci<63> indexet: CREATE INDEX
|
|
|
|
|
tabindex ON tab (lower(col)); 4.13) Hogyan tudom <20>szlelni egy
|
|
|
|
|
lek<65>rdez<65>sben, ha egy mez<65> NULL? Haszn<7A>ld "IS NULL"-t <20>s az "IS NOT
|
|
|
|
|
NULL"-t. 4.14) Mi a k<>l<EFBFBD>nbs<62>g a k<>l<EFBFBD>nb<6E>z<EFBFBD> karaktert<72>pusok k<>z<EFBFBD>tt? Type
|
|
|
|
|
Internal Name Notes --------------------------------------------------
|
|
|
|
|
"char" char 1 character CHAR(n) bpchar blank padded to the specified
|
|
|
|
|
fixed length VARCHAR(n) varchar size specifies maximum length, no
|
|
|
|
|
padding TEXT text no specific upper limit on length BYTEA bytea
|
|
|
|
|
variable-length byte array (null-byte safe) L<>tni fogod a bels<6C>
|
|
|
|
|
elnevez<65>s<EFBFBD>ket, ha tanulm<6C>nyozod a rendszert<72>bl<62>kat <20>s n<>h<EFBFBD>ny
|
|
|
|
|
hiba<62>zenetet. Az ut<75>bbi n<>gy a "varlena" t<>pusok, ami a t<>rol<6F>suk
|
|
|
|
|
m<>dj<64>ra utal: az els<6C> 4 byte a lemezen a hossz<73>s<EFBFBD>g, a t<>bbi az adat. A
|
|
|
|
|
val<61>di m<>ret teh<65>t nagyobb mint a deklar<61>lt hossz<73>s<EFBFBD>g.Ezek azadatok
|
|
|
|
|
t<>m<EFBFBD>ritve t<>rol<6F>dnak el, igy kevesebb helyet foglalnek el az el<65>re
|
|
|
|
|
sz<73>mitottn<74>l. A CHAR(n) a legjobb megold<6C>s, ha stabil hossz<73>s<EFBFBD>g<EFBFBD>
|
|
|
|
|
stringet t<>rolsz. A VARCHAR(n) j<> arra az esetekre, ha a hossz<73>s<EFBFBD>g
|
|
|
|
|
v<>ltozik, de van fels<6C> korl<72>tja. A TEXT t<>pus korl<72>tlan hossz<73>s<EFBFBD>g<EFBFBD> (1
|
|
|
|
|
GB-ig) sz<73>vegek t<>rol<6F>s<EFBFBD>ra alklamas. A BYTEA bin<69>ris adatok t<>rol<6F>s<EFBFBD>ra
|
|
|
|
|
van. A teljesitm<74>ny mutat<61>i hasonl<6E>ak ezenek a t<>pusoknak. 4.15.1)
|
|
|
|
|
Hogyan tudok l<>trehozni automatikusan n<>vekv<6B> <20>rt<72>k<EFBFBD> mez<65>t? A
|
|
|
|
|
PostgreSQL rendelkezik egy SERIAL adatt<74>pussal. Ez egy szekvenci<63>t <20>s
|
|
|
|
|
egy indexet hoz l<>tre az oszlopon. P<>ld<6C>ul ez: CREATE TABLE person (
|
|
|
|
|
id SERIAL, name TEXT ); ugyanezt jelenti: CREATE SEQUENCE
|
|
|
|
|
person_id_seq; CREATE TABLE person ( id INT4 NOT NULL DEFAULT
|
|
|
|
|
nextval('person_id_seq'), name TEXT ); CREATE UNIQUE INDEX
|
|
|
|
|
person_id_key ON person ( id ); A szekvenci<63>kkal kapcsolatban olvasd
|
|
|
|
|
el a create_sequence man oldalt. A sor OID-j<>t is haszn<7A>lhatod egyedi
|
|
|
|
|
azonosit<69>k<EFBFBD>nt, b<>r ebben az esetben figyelj a pg_gump haszn<7A>lat<61>n<EFBFBD>l a
|
|
|
|
|
-o opci<63>ra (COPY WITH OIDS, m<>sol<6F>s OID-dal), hogy meg?rizd az
|
|
|
|
|
<20>rt<72>keket. 4.15.2) Hogyan kaphatom meg egy SERIAL besz<73>r<EFBFBD>s <20>rt<72>k<EFBFBD>t?
|
|
|
|
|
Egy megold<6C>s erre az, ha a nextval() funkci<63>val megszerzed az <20>rt<72>ket
|
|
|
|
|
m<>g miel<65>tt besz<73>rn<72>d az adatot a t<>bl<62>ba. Erre itt l<>thatsz egy
|
|
|
|
|
p<>ld<6C>t: new_id = execute("SELECT nextval('person_id_seq')");
|
|
|
|
|
execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise
|
|
|
|
|
Pascal')"); Esetleg lek<65>rdezheted a szekvencia <20>llapot<6F>t a sor
|
|
|
|
|
besz<73>r<EFBFBD>sa ut<75>n. execute("INSERT INTO person (name) VALUES ('Blaise
|
|
|
|
|
Pascal')"); new_id = execute("SELECT currval('person_id_seq')"); V<>g<EFBFBD>l
|
|
|
|
|
pedig, haszn<7A>lhatod a visszaadott OID <20>rt<72>ket is, b<>r ez a lehet<65>
|
2003-01-14 07:00:32 +08:00
|
|
|
|
legkev<65>sb<73> portolhat<61>. Perl DBI-ben, Edmund Mergl DBD::Pg modulj<6C>ban
|
2003-02-04 20:32:41 +08:00
|
|
|
|
az OID <20>rt<72>k haszn<7A>lhat<61> a $sth->execute() ut<75>n
|
|
|
|
|
($sth->{pg_oid_status}). 4.15.3) A currval() <20>s a nextval() nem teremt
|
|
|
|
|
holtpont vesz<73>lyes helyzetet a felhaszn<7A>l<EFBFBD>k k<>z<EFBFBD>tt? Nem. A currval()
|
|
|
|
|
funkci<63> a szerver processzed <20>ltal adott <20>rt<72>ket adja vissza, nem
|
|
|
|
|
pedig a t<>bbi szerver processz <20>ltal adottat. 4.15.4) Mi<4D>rt nem
|
|
|
|
|
haszn<7A>l<EFBFBD>dnak fel <20>jra a sequence sz<73>mok tranzakci<63> abort eset<65>n? Mi<4D>rt
|
|
|
|
|
vannak probl<62>m<EFBFBD>k a serial oszlopok sz<73>moz<6F>s<EFBFBD>val? A p<>rhuzamoss<73>g
|
|
|
|
|
fejleszt<7A>se <20>rdek<65>ben a sorozat sz<73>mokat k<>r<EFBFBD>sre adja ki a szerver
|
|
|
|
|
fut<75> tranzakci<63>knak, <20>s azokat nem z<>rja, amig a tranzakci<63> v<>get nem
|
|
|
|
|
<20>r. Ez jukakat okoz a sz<73>moz<6F>sokban a visszaforditott tranzakci<63>k
|
|
|
|
|
miatt. 4.16) Mi a OID? Mi a TID? Az OID a PostgreSQL egyedi sor
|
|
|
|
|
azonosit<69>ja. Minden sor, ami l<>trej<65>n a szerveren, kap egy OID-t.
|
|
|
|
|
Minden OID, amit az initdb alatt j<>n l<>tre 16384 alatt van (l<>sd
|
|
|
|
|
include/access/transam.h). Minden, felhaszn<7A>l<EFBFBD> <20>ltal l<>trehozott OID
|
|
|
|
|
legal<61>bb ennyi. Alap<61>rtelmez<65>sben, az OID nem csak a t<>bl<62>ban vagy az
|
|
|
|
|
adatb<74>zisban egyedi, hanem a teljes PostgreSQL adatb<74>zis rendszerben.
|
2003-01-14 07:00:32 +08:00
|
|
|
|
A PostgreSQL az OID-okat a bels<6C> t<>bl<62>iban haszn<7A>lja a sorok t<>bl<62>k
|
|
|
|
|
k<>z<EFBFBD>tt <20>sszekapcsol<6F>s<EFBFBD>hoz. Ezek az OID-k haszn<7A>lhat<61>ak a rekordok
|
2003-02-04 20:32:41 +08:00
|
|
|
|
azonosit<69>s<EFBFBD>ra is amikor t<>bl<62>kat csatol <20>ssze a szerver (JOIN). Az
|
|
|
|
|
OID-ot haszn<7A>lhatod mez<65> t<>pusk<73>nt is, <20>s indexelheted is. Az OID
|
|
|
|
|
<20>rt<72>k egy k<>zponti ter<65>letr<74>l sz<73>rmazik, amit minden szerver processz
|
|
|
|
|
haszn<7A>l. Ha az OID-ot valami m<>sra szeretn<74>d cser<65>lni: CREATE TABLE
|
|
|
|
|
new_table(old_oid oid, mycol int); SELECT old_oid, mycol INTO new FROM
|
|
|
|
|
old; COPY new TO '/tmp/pgtable'; DELETE FROM new; COPY new WITH OIDS
|
|
|
|
|
FROM '/tmp/pgtable'; Az OID 4 byte-os integer <20>rt<72>kk<6B>nt t<>rol<6F>dik, igy
|
|
|
|
|
4 milli<6C>rdn<64>l t<>lcsordul. M<>g soha senki nem jelezte hogy ez t<>rt<72>nt
|
|
|
|
|
volna, <20>s ezt a korl<72>tot igyeksz<73>nk elt<6C>volitani, m<>g miel<65>tt b<>rki
|
|
|
|
|
<20>szrevenn<6E>. A TID a fizikai sorok blokk <20>s offszet c<>mmel val<61>
|
|
|
|
|
azonosit<69>s<EFBFBD>ra szolg<6C>l. A TID v<>ltozik minden rekord m<>dosit<69>s <20>s
|
|
|
|
|
t<>rl<72>s alkalm<6C>val. Ezeket az indexek haszn<7A>lj<6C>k hogy a fizikai sort
|
|
|
|
|
gyorsan megtal<61>lj<6C>k. 4.17) Mi a PostgreSQL-ben haszn<7A>lt kifejez<65>sek
|
|
|
|
|
jelent<6E>se? N<>hol a forr<72>s k<>dban <20>s a dokumnet<65>ci<63>ban tal<61>lhat<61>ak
|
|
|
|
|
kifejez<65>sek, amelyek <20>ltal<61>nosabb jelent<6E>ssel b<>rnak. Itt van n<>h<EFBFBD>ny:
|
|
|
|
|
* t<>bla (table), rel<65>ci<63> (relation), oszt<7A>ly (class) * sor (row),
|
|
|
|
|
rekord (record), tuple (nincs magyar jelent<6E>s) * oszlop (column), mez<65>
|
|
|
|
|
(field), attributum (attribute) * retrieve, select * helyettesit
|
|
|
|
|
(replace), m<>dosit (update) * hozz<7A>f<EFBFBD>z (append), besz<73>r (insert) *
|
|
|
|
|
OID, sorozat <20>rt<72>k (serial value) * portal, cursor * range variable,
|
|
|
|
|
t<>bla n<>v, t<>bla alias Az <20>ltal<61>nos adatb<74>zis kifejez<65>sek
|
|
|
|
|
<20>sszefoglal<61>j<EFBFBD>t itt olvashat<61>:
|
2003-01-14 07:00:32 +08:00
|
|
|
|
http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary
|
2003-02-04 20:32:41 +08:00
|
|
|
|
/glossary.html 4.18) Mi<4D>rt kapom ezt a hib<69>t: "ERROR: Memory exhausted
|
|
|
|
|
in AllocSetAlloc()"? Lehet hogy elfogyott a virtu<74>lis mem<65>ri<72>d, vagy a
|
|
|
|
|
kerneled er<65>forr<72>s korl<72>tai alacsonyak. Pr<50>b<EFBFBD>ld ki ezt miel<65>tt
|
|
|
|
|
elinditan<61>d a postmastert: ulimit -d 262144 limit datasize 256m A
|
|
|
|
|
shellt<6C>l f<>gg<67>en ezek k<>z<EFBFBD>l csak az egyik fut majd le, de a processzek
|
|
|
|
|
adatszegmens<6E>t sokkal magasabbra <20>llitja, ami tal<61>n el<65>g lesz a
|
|
|
|
|
lek<65>rdez<65>s v<>grehajt<6A>s<EFBFBD>hoz. Ez az utas<61>t<EFBFBD>s a jelenlegi processzre (a
|
|
|
|
|
shelled) <20>rv<72>nyes, <20>s minden <20>ltala l<>trehozott processzre. Ha
|
|
|
|
|
probl<62>m<EFBFBD>d van az SQL klienssel, mert a szerver t<>l nagy adatot k<>ld
|
|
|
|
|
vissza, pr<70>b<EFBFBD>ld meg e klienssel is ugyanezt. 4.19) Hogyan tudhatom meg
|
|
|
|
|
PostgreSQL, milyen verzi<7A>t futtatok? A psql programban select
|
|
|
|
|
version(); 4.20) Mi<4D>rt kapok "invalid large obj descriptor" hib<69>t nagy
|
|
|
|
|
objektumok kezel<65>s<EFBFBD>n<EFBFBD>l? A nagy objektumok kezel<65>s<EFBFBD>t egy tranzakci<63>s
|
|
|
|
|
blokkban helyezd el. (BEGIN <20>s COMMIT k<>z<EFBFBD>tt) Jelenleg a PostgreSQL
|
|
|
|
|
ezt a szab<61>lyt azzal teszi k<>telez<65>v<EFBFBD>, hogy a tranzakci<63> v<>g<EFBFBD>n a nagy
|
|
|
|
|
objektumokat lez<65>rja, igy a tranzakci<63> ut<75>n az els<6C> m<>velet amit az
|
|
|
|
|
objektumon v<>grahajtan<61>l hib<69>s lesz. Ha olyan programoz<6F>si fel<65>letet
|
|
|
|
|
haszn<7A>lsz mint az ODBC vagy a JDBC akkor val<61>szin<69>leg ki kell
|
|
|
|
|
kapcsolnod az auto-commit-ot. 4.21) Hogy hozhatok l<>tre olyan
|
|
|
|
|
oszlopot, aminek alap<61>rtelmezett <20>r<EFBFBD>tke a jelenlegi id<69>? Haszn<7A>ld a
|
|
|
|
|
CURRENT_TIMESTAMP -ot: CREATE TABLE test (x int, modtime timestamp
|
|
|
|
|
DEFAULT CURRENT_TIMESTAMP ); 4.22) Mi<4D>rt olyan lass<73>ak az
|
|
|
|
|
al-lek<65>rdez<65>seim IN-nel? Jelenleg az al-lek<65>rdez<65>seket a k<>ls<6C>
|
|
|
|
|
lek<65>rdez<65>shez csatoljuk. Ha az allek<65>rdez<65>s csak kev<65>s sort eredm<64>nyez
|
|
|
|
|
<20>s a k<>ls<6C> lek<65>rdez<65>s sokat, akkor az IN is gyors. Az EXISTS kulcssz<73>
|
|
|
|
|
haszn<7A>lat<61>val gyorsithatod a lek<65>rdez<65>seket. SELECT * FROM tab WHERE
|
|
|
|
|
col IN (SELECT subcol FROM subtab); EXISTS haszn<7A>lat<61>val: SELECT *
|
|
|
|
|
FROM tab WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
|
|
|
|
|
Ahhoz hogy ez gyorsan fusson le, a subcol indexelt oszlopnak kell hogy
|
|
|
|
|
legyen. Rem<65>lj<6C>k ezt a korl<72>tot siker<65>l hamarosan legy<67>zn<7A>nk. 4.23)
|
|
|
|
|
Hogyan tudok outer join-t v<>grehajtani? A PostgreSQL a szabv<62>nyos SQL
|
|
|
|
|
szintaktik<69>t k<>veti. Itt van k<>t p<>lda: SELECT * FROM t1 LEFT OUTER
|
|
|
|
|
JOIN t2 ON (t1.col = t2.col); vagy SELECT * FROM t1 LEFT OUTER JOIN t2
|
|
|
|
|
USING (col); Ezek az identikus lek<65>rdez<65>sek <20>sszekapcsolj<6C>k a t1.col
|
|
|
|
|
<20>s a t2.col mez<65>ket, <20>s a t1 b<>rmelyik kapcsolatlan sor<6F>t is
|
|
|
|
|
visszadj<64>k. A RIGHT JOIN a t2 kapcsolatlan sorait adta volna vissza, a
|
|
|
|
|
FULL JOIN pedig a kapcsolt, <20>s mindk<64>t t<>bla kapcsolatlan sorait adja.
|
|
|
|
|
Az OUTER kulcssz<73> opcion<6F>lis, a LEFT, RIGHT <20>s FULL JOIN
|
|
|
|
|
szintaktikailag helyes. Az <20>tlagos <20>sszekapcsol<6F>sokat INNER JOIN-nak
|
|
|
|
|
nevezz<7A>k. Az el<65>z<EFBFBD> kiad<61>sokban a OUTER JOIN lek<65>rdez<65>seket UNION <20>s
|
|
|
|
|
NOT IN kulcsszavakkal lehetett szimul<75>lni. P<>ld<6C>ul a tab1 <20>s a tab2
|
|
|
|
|
<20>sszekapcsol<6F>sa: SELECT tab1.col1, tab2.col2 FROM tab1, tab2 WHERE
|
|
|
|
|
tab1.col1 = tab2.col1 UNION ALL SELECT tab1.col1, NULL FROM tab1 WHERE
|
|
|
|
|
tab1.col1 NOT IN (SELECT tab2.col1 FROM tab2) ORDER BY col1 4.24)
|
|
|
|
|
Hogyan tudok t<>bb adatb<74>zison v<>grehajtani lek<65>rdez<65>st? Arra nincs
|
|
|
|
|
lehet<65>s<EFBFBD>g, hogy m<>s adatb<74>zisb<73>l k<>rdezz le adatot. Mivel a PostgreSQL
|
|
|
|
|
adatb<74>zis specifikus rendszer t<>bl<62>kat t<>lt be, bizonytalan hogy egy
|
|
|
|
|
adatb<74>zisok k<>z<EFBFBD>tti lek<65>rdez<65>snek hogyan kellene viselkednie. A
|
|
|
|
|
contrib/dblink k<>nyvt<76>rban tal<61>lsz egy megold<6C>st erre, ami funkci<63>
|
|
|
|
|
hiv<69>sok segits<74>g<EFBFBD>vel m<>k<EFBFBD>dik. Persze, a kliens hozhat l<>tre szimult<6C>n
|
|
|
|
|
kapcsolatot t<>bb adatb<74>zissal, <20>s <20>sszef<65>s<EFBFBD>lheti az eredm<64>nyeket.
|
|
|
|
|
4.25) Hogy tudok t<>bb soros vagy oszlopos eredm<64>nyt visszaadni egy
|
|
|
|
|
funkci<63>b<EFBFBD>l? A PL/pgSQL t<>rolt elj<6C>r<EFBFBD>s nyelvvel refcursor
|
|
|
|
|
haszn<7A>lat<61>val. R<>szletesen itt:
|
|
|
|
|
http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html 4.26)
|
|
|
|
|
Mi<4D>rt nem tudom megbizhat<61>an l<>trehozni <20>s t<>r<EFBFBD>lni az <20>tmeneti
|
|
|
|
|
t<>bl<62>kat a PL/pgSQL funkci<63>kban? A PL/pgSQL cacheli a funkci<63>k
|
|
|
|
|
tartalm<6C>t, aminek az a szerencs<63>tlen mell<6C>khat<61>sa, hogy ha egy
|
|
|
|
|
PL/pgSQL funkci<63> haszn<7A>l egy <20>tmeneti t<>bl<62>t, ami k<>s?bb t<>rl<72>dik majd
|
|
|
|
|
ujra l<>trej<65>n, akkor az <20>jra lefut<75> funkci<63> nem fogja megtal<61>lni a
|
|
|
|
|
t<>bl<62>t, mert a cache v<>ltozat a r<>gi t<>bl<62>ra tartalmaz mutat<61>t. A
|
|
|
|
|
megold<6C>s erre az EXECUTE utas<61>t<EFBFBD>s haszn<7A>lata az <20>tmeneti t<>bl<62>k
|
|
|
|
|
kezel<65>s<EFBFBD>re PL/pgSQL-ben. Ez a lek<65>rdez<65>s <20>jraford<72>t<EFBFBD>s<EFBFBD>t fogja
|
|
|
|
|
el<65>id<69>zni minden alkalommal. 4.27) Milyen replik<69>ci<63>s lehet<65>s<EFBFBD>gek
|
|
|
|
|
vannak? Sz<53>mos master/slave replik<69>ci<63>s lehet<65>s<EFBFBD>g l<>tezik. Ez csak a
|
|
|
|
|
master adatb<74>zis sz<73>m<EFBFBD>ra teszi lehet<65>v<EFBFBD>, hogy az adatokat v<>ltoztassa.
|
|
|
|
|
Egy List<73>t olvashatsz ezekr<6B>l itt:
|
|
|
|
|
http://gborg.PostgreSQL.org/genpage?replication_research Egy
|
|
|
|
|
t<>bbfelhaszn<7A>l<EFBFBD>s replik<69>ci<63>s rendszer k<>sz<73>l itt:
|
2003-01-14 07:00:32 +08:00
|
|
|
|
http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
|
2003-02-04 20:32:41 +08:00
|
|
|
|
4.28) Milyen k<>dol<6F>si lehet<65>s<EFBFBD>gek vannak? - A contrib/pgcrypto
|
|
|
|
|
tartlamaz sz<73>mos SQL lek<65>rdez<65>sben haszn<7A>lhat<61> k<>dol<6F>st. - A
|
|
|
|
|
kliens-szerver kommunik<69>ci<63> rejtjelez<65>s<EFBFBD>re a hostssl haszn<7A>lhat<61>. Ezt
|
|
|
|
|
a pg_hba.conf-ben enged<65>lyeztheted. - Az adatb<74>zis felhszn<7A>l<EFBFBD>k
|
|
|
|
|
jelszavait t<>rol<6F>skor k<>dolja a rendszer. R<>gebbi verzi<7A>kban a
|
|
|
|
|
PASSWORD_ENCRYPTION opci<63>val lehetett bekapcsolni. - A szerveren
|
|
|
|
|
haszn<7A>lhatsz k<>dolt f<>jrendszert.
|
|
|
|
|
_________________________________________________________________ A
|
|
|
|
|
PostgreSQL kiterjeszt<7A>se 5.1) <20>rtam egy felhaszn<7A>l<EFBFBD>i funkci<63>t. Mi<4D>rt
|
|
|
|
|
core dumpol az adatb<74>zis amikor haszn<7A>lom? Sz<53>mos probl<62>ma lehet.
|
|
|
|
|
El<45>bb prob<6F>ld ki a funkci<63>dat egy k<>l<EFBFBD>n<EFBFBD>ll<6C> alkalmaz<61>sban. 5.2) Hogyan
|
|
|
|
|
lehet <20>j adatt<74>pusokat <20>s funkci<63>kat hozz<7A>adni a PostgreSQL
|
|
|
|
|
disztrib<69>ci<63>hoz? K<>ldd el a kieg<65>sz<73>t<EFBFBD>seid a pgsql-hackers levelez<65>si
|
|
|
|
|
list<73>ra <20>s a forr<72>skodjaid v<>g<EFBFBD>l a contrib-ban k<>tnek ki. 5.3) Hogyan
|
|
|
|
|
lehet olyan C funkci<63>t <20>rni, ami Tuple-t ad vissza? A 7.3 verzi<7A>t<EFBFBD>l
|
|
|
|
|
kezdve a PostgreSQL t<>mogatja a t<>bl<62>zatokat viszzaad<61> funkci<63>kat C,
|
|
|
|
|
PL/pgSQL <20>s SQL nyelveken. B<>vebb dokument<6E>ci<63>t a Programoz<6F>
|
|
|
|
|
k<>zik<69>nyvben tal<61>lsz. Egy C p<>lda funkci<63> tal<61>lhat<61> a
|
|
|
|
|
contrib/tablefunc k<>nyvt<76>rban. 5.4) Megv<67>ltoztattam egy forr<72>s
|
|
|
|
|
<20>llom<6F>nyt. Mi<4D>rt nem v<>ltozik a bin<69>ris <20>jraford<72>t<EFBFBD>s ut<75>n? A
|
|
|
|
|
Makefile-ok nem ismerik a include <20>llom<6F>nyok megfelel<65> f<>gg<67>s<EFBFBD>geit.
|
2003-01-14 07:00:32 +08:00
|
|
|
|
V<>gre kell hajtanod egy make clean-t, majd <20>jra egy make-t. Ha GCC-t
|
|
|
|
|
haszn<7A>lsz felhaszn<7A>lhatod a configure script --enable-depend opci<63>j<EFBFBD>t,
|
|
|
|
|
<20>gy a compiler maga fogja ellen<65>rizni a f<>gg<67>s<EFBFBD>geket.
|