2005-06-07 00:30:42 +08:00
|
|
|
|
PostgreSQL GyIK
|
2003-01-14 07:00:32 +08:00
|
|
|
|
|
2005-06-07 00:30:42 +08:00
|
|
|
|
Utolso modos<6F>t<EFBFBD>s d<>tuma: 2005 m<>jus 9.
|
|
|
|
|
|
|
|
|
|
Ford<72>t<EFBFBD>s aktualiz<69>l<EFBFBD>sa: 2005 j<>nius
|
|
|
|
|
|
|
|
|
|
A GyIK karbantartoja: Bruce Momjian (pgman@candle.pha.pa.us)
|
|
|
|
|
|
|
|
|
|
Ford<72>to: Horny<6E>k L<>szlo
|
|
|
|
|
(laszlo.hornyak.nospam@gmail.com)
|
|
|
|
|
|
|
|
|
|
A legfrissebb verzio itt <20>rhet<65> el (angol):
|
|
|
|
|
|
|
|
|
|
http://www.PostgreSQL.org/docs/faq-english.html.
|
|
|
|
|
|
|
|
|
|
Legfrissebb magyar nyelv<6C> verzio:
|
|
|
|
|
|
|
|
|
|
http://hackers.forgeahead.hu/space/PostgreSQL/GYIK
|
|
|
|
|
|
|
|
|
|
Platform specifikus k<>rd<72>sek:
|
|
|
|
|
|
|
|
|
|
http://www.PostgreSQL.org/users-lounge/docs/faq.html.
|
|
|
|
|
|
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
<EFBFBD>ltal<EFBFBD>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>cios rendszereken fut PostgreSQL?
|
|
|
|
|
1.4 Milyen nem UNIX oper<65>cios 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>cio <20>ll rendelkez<65>sre?
|
|
|
|
|
1.9 Hogyan tal<61>lok inform<72>ciot hib<69>krol vagy hi<68>nyzo funkcional<61>t<EFBFBD>srol?
|
|
|
|
|
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?
|
|
|
|
|
1.16 Ki ir<69>ny<6E>tja a PostgreSQL-t?
|
|
|
|
|
|
|
|
|
|
Felhaszn<EFBFBD>loi kliens k<>rd<72>sek
|
|
|
|
|
|
|
|
|
|
2.1 Van ODBC meghajto 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>loi 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<EFBFBD>cios k<>rd<72>sek
|
|
|
|
|
|
|
|
|
|
3.1 Hogyan tudom a PostgreSQL-t /usr/local/pgsql -t<>l elt<6C>r<EFBFBD> helyre
|
2003-02-19 01:20:37 +08:00
|
|
|
|
install<6C>lni?
|
2005-06-07 00:30:42 +08:00
|
|
|
|
3.2 AMikor elind<6E>tom a postmaster-t, egy "Bad System Call"-t vagy core
|
2003-02-19 01:20:37 +08:00
|
|
|
|
dump-ot kapok. Mi<4D>rt?
|
2005-06-07 00:30:42 +08:00
|
|
|
|
3.3 Amikor megprob<6F>lom inditani a postmaster-t, "IpcMemoryCreate" hib<69>kat
|
2003-02-19 01:20:37 +08:00
|
|
|
|
kapok. Mi<4D>rt?
|
2005-06-07 00:30:42 +08:00
|
|
|
|
3.4 Amikor megprob<6F>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<EFBFBD>k<EFBFBD>dtet<EFBFBD>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>bol?
|
|
|
|
|
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
|
2003-02-19 01:20:37 +08:00
|
|
|
|
t<>rol<6F>s<EFBFBD>hoz?
|
2005-06-07 00:30:42 +08:00
|
|
|
|
4.7 Hogy tudhatom meg milyen t<>bl<62>k, indexek, adatb<74>zisok vagy
|
|
|
|
|
felhaszn<7A>lok 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>lo a
|
2003-02-19 01:20:37 +08:00
|
|
|
|
lek<65>rdez<65>sem?
|
2005-06-07 00:30:42 +08:00
|
|
|
|
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
|
2003-02-19 01:20:37 +08:00
|
|
|
|
haszn<7A>lni? Hogyan tudok indexet haszn<7A>lni case-insensitive keres<65>shez?
|
2005-06-07 00:30:42 +08:00
|
|
|
|
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>lok k<>z<EFBFBD>tt?
|
|
|
|
|
4.15.4 Mi<4D>rt nem haszn<7A>lodnak fel <20>jra a sequence sz<73>mok tranzakcio 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
|
2003-02-19 01:20:37 +08:00
|
|
|
|
AllocSetAlloc()"?
|
2005-06-07 00:30:42 +08:00
|
|
|
|
4.19 Hogyan tudhatom meg PostgreSQL, milyen verziot futtatok?
|
|
|
|
|
4.20 Mi<4D>rt kapok "invalid large obj descriptor" hib<69>t nagy objektumok
|
2003-02-19 01:20:37 +08:00
|
|
|
|
kezel<65>s<EFBFBD>n<EFBFBD>l?
|
2005-06-07 00:30:42 +08:00
|
|
|
|
4.21 Hogy hozhatok l<>tre olyan oszlopot, aminek alap<61>rtelmezett <20>r<EFBFBD>tke a
|
2003-02-19 01:20:37 +08:00
|
|
|
|
jelenlegi id<69>?
|
2005-06-07 00:30:42 +08:00
|
|
|
|
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
|
|
|
|
|
funkciobol?
|
|
|
|
|
4.26 Mi<4D>rt nem tudom megbizhatoan l<>trehozni <20>s t<>r<EFBFBD>lni az <20>tmeneti
|
|
|
|
|
t<>bl<62>kat a PL/pgSQL funkciokban?
|
|
|
|
|
4.27 Milyen replik<69>cios lehet<65>s<EFBFBD>gek vannak?
|
|
|
|
|
4.28 Milyen kodol<6F>si lehet<65>s<EFBFBD>gek vannak?
|
|
|
|
|
|
|
|
|
|
A PostgreSQL kiterjeszt<7A>se
|
|
|
|
|
|
|
|
|
|
5.1) <20>rtam egy felhaszn<7A>loi funkciot. Mi<4D>rt core dumpol az adatb<74>zis
|
|
|
|
|
amikor haszn<7A>lom?
|
|
|
|
|
5.2) Hogyan lehet <20>j adatt<74>pusokat <20>s funkciokat hozz<7A>adni a PostgreSQL
|
|
|
|
|
disztrib<69>ciohoz?
|
|
|
|
|
5.3) Hogyan lehet olyan C funkciot <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
|
2003-02-19 01:20:37 +08:00
|
|
|
|
<20>jraford<72>t<EFBFBD>s ut<75>n?
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
<EFBFBD>ltal<EFBFBD>nos k<>rd<72>sek
|
|
|
|
|
|
|
|
|
|
1.1 Mi a PostgreSQL? Hogy kell kimondani?
|
|
|
|
|
|
|
|
|
|
<20>gy ejstd ki: Post-Gres-Q-L.
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
(Vagy tal<61>n ink<6E>bb t<>ltsd le a kis mp3-at a PostgreSQL homepage-r<>l)
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
A PostgreSQL a POSTGRES adatb<74>zis management rendszer egy kieg<65>sz<73>t<EFBFBD>se,
|
2005-06-07 00:30:42 +08:00
|
|
|
|
ami egy k<>vetkez<65> gener<65>cios DBMS kutat<61>si protot<6F>pus. Megtartja a
|
2003-02-19 01:20:37 +08:00
|
|
|
|
POSTGRES adatmodell<6C>t <20>s gazdag adatt<74>pus v<>laszt<7A>k<EFBFBD>t, de a PostQuel
|
2005-06-07 00:30:42 +08:00
|
|
|
|
lek<65>rdez<65> nyelvet az SQL egy kiterjesztett verzioj<6F>val helyettes<65>ti. A
|
|
|
|
|
PostgreSQL szabad <20>s a teljes forr<72>skod hozz<7A>f<EFBFBD>rhet<65>.
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
A PostgreSQL fejleszt<7A>s<EFBFBD>t egy csapat v<>gzi, amelynek minden tagja
|
2005-06-07 00:30:42 +08:00
|
|
|
|
megtal<61>lhato a PostgreSQL fejleszt<7A>i levelez<65>si list<73>n. A jelenlegi
|
2003-02-19 01:20:37 +08:00
|
|
|
|
koordin<69>tor Marc G. Fournier (scrappyp@PostgreSQL.org). Ez a csapat
|
2005-06-07 00:30:42 +08:00
|
|
|
|
felel<65>s minden fejleszt<7A>s<EFBFBD>rt. <>A PostgreSQL 1.01 alkotoi 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 kod, amib<69>l a
|
|
|
|
|
PostgreSQL sz<73>rmazik Michael Stonebraker professzor ir<69>ny<6E>t<EFBFBD>sa alatt
|
|
|
|
|
fejlesztettek az egyetem programozoi, tanuloi <20>s v<>gzett tanuloi. <>
|
|
|
|
|
|
|
|
|
|
A szoftver eredeti 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.
|
|
|
|
|
|
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
|
|
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 kodot
|
|
|
|
|
modos<6F>thatod, <20>s tov<6F>bbadhatod, DE semmilyen, a szoftver haszn<7A>lat<61>bol
|
|
|
|
|
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>skod licensz. Nem tartalmaz
|
|
|
|
|
megszor<6F>t<EFBFBD>sokat arra, hogy a forr<72>skodot hogyan haszn<7A>lod fel.
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Kedvelj<6C>k ezt a licensz form<72>t <20>s nem <20>ll sz<73>nd<6E>kunkban megv<67>ltoztatni.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
1.3 Milyen UNIX oper<65>cios rendszereken fut PostgreSQL?
|
|
|
|
|
|
|
|
|
|
<20>ltal<61>ban minden UNIX-kompatibilis oper<65>cios rendszer k<>pes arra hogy
|
2003-02-19 01:20:37 +08:00
|
|
|
|
futtassa a PostgreSQL-t. Azokat a platformokat, amiken tesztelt<6C>k a
|
2005-06-07 00:30:42 +08:00
|
|
|
|
kiad<61>st megtal<61>lhatod a install<6C>cios utas<61>t<EFBFBD>sok k<>z<EFBFBD>tt.
|
|
|
|
|
|
|
|
|
|
1.4 Milyen nem UNIX oper<65>cios rendszerek el<65>rhet<65>ek?
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Kliens
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
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
|
2005-06-07 00:30:42 +08:00
|
|
|
|
ford<72>tani, hogy fussanak MS Windows oper<65>cios 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 futo 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.
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Szerver
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
<>Az adatb<74>zis szerver Cygwin seg<65>ts<74>g<EFBFBD>vel fut Windows NT <20>s Win2k
|
|
|
|
|
rendszereken. Tov<6F>bbi inform<72>cio tal<61>lhato a pgsql/doc/FAQ_MSWIN
|
2003-01-14 07:00:32 +08:00
|
|
|
|
<20>llom<6F>nyban <20>s a MS Windows FAQ-ban a k<>vetkez<65> helyen:
|
2005-06-07 00:30:42 +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>lhato 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>lhato 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
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Van egy hib<69>kkal kapcsolatos levelez<65>si lista is:
|
|
|
|
|
pgsql-bugs-request@PostgreSQL.org a k<>vetkez<65> tartalommal:
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
subscribe
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
A fejleszto"i levelez<65>si lista: pgsql-hackers-request@PostgreSQL.org a
|
|
|
|
|
k<>vetkez<65> tartalommal:
|
|
|
|
|
|
|
|
|
|
subscribe
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
Egy<67>b levelez<65>si list<73>k tal<61>lhatoak 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:
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
irc -c '#PostgreSQL' "$USER" irc.phoenix.net.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
A kereskedelmi term<72>kt<6B>mogat<61>st ny<6E>jto c<>gek list<73>ja el<65>rhet<65> itt:
|
2003-02-19 01:20:37 +08:00
|
|
|
|
http://www.PostgreSQL.org/users-lounge/commercial-support.html
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
Magyar nyelvu" levelez<65>si lista nincs, de ha tudok segiteni a fenit e-mail
|
|
|
|
|
cimemen el<65>rheto" vagyok.
|
|
|
|
|
|
|
|
|
|
1.7 Melyik a legfrissebb kiad<61>s?
|
|
|
|
|
|
|
|
|
|
A legfrissebb PostgreSQL kiad<61>s a 8.0.
|
|
|
|
|
|
|
|
|
|
A tervek szerint minden <20>vben lesz egy nagyobb fejleszt<7A>seket tartalmazo
|
|
|
|
|
kiad<61>s, m<>g a kisebb fejleszt<7A>seket n<>h<EFBFBD>ny havonta adjuk ki.
|
|
|
|
|
|
|
|
|
|
1.8 Milyen dokument<6E>cio <20>ll rendelkez<65>sre?
|
|
|
|
|
|
|
|
|
|
Sz<53>mos k<>zik<69>nyv, man oldalak <20>s kis teszt p<>ld<6C>k tal<61>lhatoak a kiad<61>sban
|
|
|
|
|
a doc/ k<>nyvt<76>r alatt. Az interneten is olvashatod a dokument<6E>ciot a
|
2003-02-19 01:20:37 +08:00
|
|
|
|
k<>vetkez<65> c<>men:
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
http://www.PostgreSQL.org/users-lounge/docs/.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
K<>t PostgreSQL k<>nyv <20>rhet<65> el az interneten a
|
2003-02-19 01:20:37 +08:00
|
|
|
|
http://www.PostgreSQL.org/docs/awbook.html <20>s a
|
2005-06-07 00:30:42 +08:00
|
|
|
|
http://www.commandprompt.com/ppbook/ c<>meken. A megv<67>s<EFBFBD>rolhato k<>nyvek
|
|
|
|
|
list<73>ja itt tal<61>lhato: http://www.ca.PostgreSQL.org/books/. A
|
|
|
|
|
PostgreSQL-lel kapcsolatos technikai jelleg<65> cikkek gy<67>jtem<65>nye:
|
2003-02-19 01:20:37 +08:00
|
|
|
|
http://techdocs.PostgreSQL.org/.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
A psql parancs rendelkezik n<>h<EFBFBD>ny \d utas<61>t<EFBFBD>ssal, amellyekkel list<73>zhatoak
|
|
|
|
|
az oper<65>torok, a funkciok, stb.
|
|
|
|
|
|
|
|
|
|
A website is tartalmaz tov<6F>bbi dokument<6E>ciokat.
|
|
|
|
|
|
|
|
|
|
1.9 Hogyan tal<61>lok inform<72>ciot hib<69>krol vagy hi<68>nyzo funkcional<61>t<EFBFBD>srol?
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
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.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
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 oktato anyag tal<61>lhato
|
|
|
|
|
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>lonak tetszett a gyakorlati SQL k<>nyv ("The Practical SQL
|
|
|
|
|
Handbook").
|
|
|
|
|
|
|
|
|
|
1.11 A PostgreSQL 2000. <20>v kompatibilis?
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
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
|
2005-06-07 00:30:42 +08:00
|
|
|
|
d<>tumokat is.
|
|
|
|
|
|
|
|
|
|
1.12 Hogyan lehet csatlakozni a fejleszt<7A> csapathoz?
|
|
|
|
|
|
|
|
|
|
El<45>ssz<73>r is t<>ltsd le a forr<72>skodot, <20>s olvasd el a PostgreSQL
|
|
|
|
|
fejleszt<7A>i dokumnet<65>ciot a web oldalunkon vagy a kiad<61>sban. Ezut<75>n
|
2003-02-19 01:20:37 +08:00
|
|
|
|
<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.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Van egy p<>r ember, akiknek commit privil<69>giumuk a PostgreSQL CVS f<>n.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
<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 arrol, hogy a
|
|
|
|
|
patch-ek amiket <20>k k<>ldenek jo min<69>s<EFBFBD>g<EFBFBD>.
|
|
|
|
|
|
|
|
|
|
1.13 Hogyan k<>ldjek hibajelent<6E>st?
|
|
|
|
|
|
|
|
|
|
L<>togass el a BugTool oldalra:
|
2003-02-19 01:20:37 +08:00
|
|
|
|
http://www.PostgreSQL.org/bugs/bugs.php
|
|
|
|
|
Itt megtal<61>lod k<>vetend<6E> utas<61>t<EFBFBD>sokat.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
Ellen<65>rizd az ftp oldalunkon is, hogy nincs-e <20>jabb verzio 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>pontbol lehet vizsg<73>lni a szoftvert: k<>pess<73>gek, teljes<65>tm<74>ny
|
|
|
|
|
megb<67>zhatos<6F>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: tranzakciok, 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>zisokbol hi<68>nyzik, mint p<>ld<6C>ul a felhaszn<7A>lo
|
|
|
|
|
<20>ltal defini<6E>lt t<>pusok, <20>r<EFBFBD>kl<6B>d<EFBFBD>s, szab<61>lyok <20>s verzio 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> tanulo RDBMS p<>ld<6C>ul gyorsabban hajt v<>gre
|
|
|
|
|
insert/update m<>veleteket, mivel a tranzakciokat 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>zhatos<6F>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>zhatos<6F>g: Tudjuk hogy ha egy DBMS nem megb<67>zhato, akkor teljesen
|
|
|
|
|
haszontalan. Igyeksz<73>nk jol tesztelt, stabil kodot kiadni, amiben a lehet<65>
|
|
|
|
|
legkevesebb hiba van. Minden kiad<61>s el<65>tt eltellik legal<61>bb 1 honap b<>ta
|
|
|
|
|
teszt, <20>s a kiad<61>si t<>rt<72>net is azt mutatja, hogy stabil kodot 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>lok 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>cio <20>s a forr<72>skod 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>skodjaidat 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>soktol, amelyek komoly k<>s<EFBFBD>seket
|
|
|
|
|
okoznak a fejleszt<7A>sekben. Term<72>szetesen ez az infrastrukt<6B>ra nem olcso.
|
|
|
|
|
Sz<53>mos havi <20>s <20>llando 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>rolag a
|
|
|
|
|
PostgreSQL fejleszt<7A>sre <20>rtendoek, <20>s nem egy meghat<61>rozott c<>gnek. Ha
|
|
|
|
|
jobban tetszik, k<>ldhetsz csekket is a kapcsolati c<>mek b<>rmelyik<69>re.
|
|
|
|
|
|
|
|
|
|
1.16 Ki ir<69>ny<6E>tja a PostgreSQL-t?
|
|
|
|
|
|
|
|
|
|
Ha k<>zponti bizotts<74>got, ellen<65>rzo" c<>get keresel a PostgreSQL m<>g<EFBFBD>tt, add
|
|
|
|
|
fel, nincs ilyesmi. L<>tezik egy mag <20>s CVS commiter csoport, de ez ink<6E>b
|
|
|
|
|
adminisztrativ mint ellen<65>rzo" c<>l<EFBFBD>. A projectet fejleszto"k <20>s
|
|
|
|
|
felhaszn<7A>lok k<>z<EFBFBD>ss<73>ge ir<69>ny<6E>tja, amihez b<>rki csatlakozhat. Csup<75>n annyit
|
|
|
|
|
kell tenned hogy fel<65>ratkozol a levelezo"list<73>kra <20>s r<>szt veszel a
|
|
|
|
|
besz<73>lget<65>sekben.
|
|
|
|
|
|
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Felhaszn<EFBFBD>loi kliens k<>rd<72>sek
|
|
|
|
|
|
|
|
|
|
2.1 Van ODBC meghajto PostgreSQL-hez?
|
|
|
|
|
|
|
|
|
|
K<>t ODBC meghajto <20>rhet<65> el: PsqlODBC <20>s a OpenLink ODBC.
|
|
|
|
|
|
|
|
|
|
A PsqlODBC a PostgreSQL kiad<61>s r<>sze. Tov<6F>bbi inform<72>cio tal<61>lhato 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 verzio 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 programozok 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 bemutato olvashato az adatb<74>zissal t<>mogatott web oldalanrol a
|
|
|
|
|
http://www.webreview.com weboldalon.
|
|
|
|
|
|
|
|
|
|
A web integr<67>ciohoz a PHP egy kiv<69>llo szoftver. Let<65>lthet<65> a
|
|
|
|
|
http://www.php.net c<>mr<6D>l.
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Komplexebb esetekre sokan haszn<7A>lj<6C>k a Perl fel<65>letet <20>s a CGI.pm vagy a
|
|
|
|
|
mod_perl-t.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
2.3 Van a PostgreSQL-hez grafikus felhaszn<7A>loi 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>lhato. A weboldal<61>t megtal<61>lod a http://www.pgaccess.org/ c<>men.
|
|
|
|
|
|
|
|
|
|
A http://techdocs.postgresql.org/guides/GUITools oldalon tal<61>lhatsz egy
|
|
|
|
|
pontos <20>s r<>szltes list<73>t.
|
|
|
|
|
|
|
|
|
|
2.4 Milyen programoz<6F>si nyelvekkel lehet el<65>rni a PostgreSQL szervert?
|
|
|
|
|
|
|
|
|
|
A k<>vetkez<65>k:
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
* 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)
|
2005-06-07 00:30:42 +08:00
|
|
|
|
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-19 01:20:37 +08:00
|
|
|
|
|
2005-06-07 00:30:42 +08:00
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Adminisztr<EFBFBD>cios 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
|
2005-06-07 00:30:42 +08:00
|
|
|
|
System V kieg<65>sz<73>t<EFBFBD>sekkel rendelkezik-e. A PostgreSQL haszn<7A>lja a kernel
|
|
|
|
|
osztott memoria <20>s szemafor API-j<>t.
|
|
|
|
|
|
|
|
|
|
3.3 Amikor megprob<6F>lom inditani a postmaster-t, "IpcMemoryCreate" hib<69>kat
|
|
|
|
|
kapok. Mi<4D>rt?
|
|
|
|
|
|
|
|
|
|
Vagy nincs megfelel<65>en konfigur<75>lva a kerneled osztott memoria t<>mogat<61>sa
|
|
|
|
|
vagy meg kell nagyobb<62>tanod a maxim<69>lis osztott memoria m<>retet.
|
|
|
|
|
|
|
|
|
|
A pontos m<>ret sz<73>ks<6B>glet f<>gg az architekt<6B>r<EFBFBD>dtol <20>s attol hogy h<>ny
|
|
|
|
|
buffert <20>s processzt konfigur<75>lsz a postmasternek. Legal<61>bb 1 MB ter<65>letre
|
|
|
|
|
sz<73>ks<6B>ged van. A PostgreSQL Adminisztr<74>cio k<>zik<69>nyvben olvashatsz
|
|
|
|
|
r<>szletesebb inform<72>ciokat az osztott memori<72>rol <20>s a szemaforokrol.
|
|
|
|
|
|
|
|
|
|
3.4) Amikor megprob<6F>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>cioja 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.
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
A hib<69>s szemaforok is adat<61>zis lerobban<61>s<EFBFBD>hoz is vezethet nagy terhel<65>s
|
2005-06-07 00:30:42 +08:00
|
|
|
|
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 memori<72>rol <20>s a szemaforokrol szolo fejezetet.
|
|
|
|
|
|
|
|
|
|
3.5) Hogyan tudom kontroll<6C>lni a m<>s g<>pekr<6B>l <20>rkez<65> kapcsolat k<>r<EFBFBD>seket?
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Alap<61>rtelmez<65>sben a PostgreSQL a helyi kapcsolatokat Unix socketekkel
|
2005-06-07 00:30:42 +08:00
|
|
|
|
valos<6F>tja meg. M<>s g<>pek nem lesznek k<>pesek csatlakozni, ha nem
|
|
|
|
|
enged<65>lyezed azt -i opcioval 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.
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
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:
|
2005-06-07 00:30:42 +08:00
|
|
|
|
Azok a m<>veletek, amelyek nincsenek tranzakcio blokkon bel<65>l, azok saj<61>t
|
|
|
|
|
tranzakciot ind<6E>tanak. Sok m<>veletet <20>rdemes egy tranzakcion bel<65>l
|
|
|
|
|
v<>grehajtani. Ez cs<63>kkenti a tranzakcio 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<>trehozni.
|
|
|
|
|
|
|
|
|
|
Sz<53>mos teljes<65>tm<74>ny jav<61>to lehet<65>s<EFBFBD>g van. Kikapcsolhatod az fsync()
|
|
|
|
|
m<>veletet a postmaster -o -F opciokval valo ind<6E>t<EFBFBD>sakor. <20>gy nem fog az
|
|
|
|
|
amugy lass<73> fsync() f<>ggv<67>ny megh<67>vodni minden tranzakcio v<>g<EFBFBD>n.
|
|
|
|
|
|
|
|
|
|
Haszn<7A>lhatod a postmaster -B opcioj<6F>t is az osztott memoria szegmens
|
|
|
|
|
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>cios 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-19 01:20:37 +08:00
|
|
|
|
buffer van.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
A -S opcioval n<>velheted a szerver <20>tmeneti rendez<65>sekre fenntartott
|
|
|
|
|
memoria ter<65>let<65>t. Az <20>rt<72>ket kilobyteban add meg. Az alap<61>rtelmezett
|
2003-02-19 01:20:37 +08:00
|
|
|
|
<20>rt<72>k 512K.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
Haszn<7A>lhatod a CLUSTER utas<61>t<EFBFBD>st is, hogy a t<>bl<62>kat egy indexnek
|
2003-02-19 01:20:37 +08:00
|
|
|
|
megfelel<65>en csoportos<6F>tsd. Olvasd el a CLUSTER k<>zik<69>nyv oldalt tov<6F>bbi
|
|
|
|
|
r<>szletek<65>rt.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
Hardver kiv<69>laszt<7A>s<EFBFBD>ban seg<65>thet:
|
|
|
|
|
http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html <20>s
|
|
|
|
|
http://www.powerpostgresql.com/PerfList/.
|
|
|
|
|
|
|
|
|
|
A postgresql.conf be<62>llit<69>saival kapcsolatos tudnivalok:
|
|
|
|
|
http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html
|
|
|
|
|
<20>s http://www.varlena.com/varlena/GeneralBits/Tidbits/perf.html.
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
hibakeres<65>sn<73>l.
|
|
|
|
|
|
|
|
|
|
El<45>ssz<73>r is, futtathatod a configure scriptet --enable-cassert opcioval,
|
|
|
|
|
sok assert() funkciohiv<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 rola, hogy
|
|
|
|
|
a kimenetet log <20>llom<6F>nyba k<>ld<6C>d. Igy:
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
cd /usr/local/pgsql
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
./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>ciot a szerverrel
|
|
|
|
|
kapcsolatos probl<62>m<EFBFBD>krol <20>s hib<69>krol. A postmaster -d opcioj<6F>val lehet
|
|
|
|
|
r<>szletesebb hibakeres<65> inform<72>ciot kapni. A -d opciohoz meg kell
|
|
|
|
|
hat<61>rozni egy hiba szintet. Vigy<67>zz, a magas hibakeres<65> szint nagy log
|
|
|
|
|
<20>llom<6F>nyt okozhat.
|
2003-02-19 01:20:37 +08:00
|
|
|
|
|
|
|
|
|
Ha a postmaster nem fut, akkor futtathatod a postgres szervert
|
2005-06-07 00:30:42 +08:00
|
|
|
|
parancssorbol 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> opciokkal 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>los k<>rnyezetk<74>nt
|
|
|
|
|
fut, igy a z<>rol<6F>si <20>s a szerverek k<>z<EFBFBD>tti kommunik<69>cios hiba jelens<6E>gek
|
2003-02-19 01:20:37 +08:00
|
|
|
|
nem jelentkeznek.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Ha m<>r fut a postmaster, indits egy psql-t, <20>s n<>zd meg a szerver processz
|
2005-06-07 00:30:42 +08:00
|
|
|
|
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<>ltozot <20>llitsd be "-W
|
|
|
|
|
n" <20>rt<72>kre. Ez n m<>sodperc v<>rakoz<6F>st id<69>z el<65>, igy tudsz csatlakozni a
|
2003-02-19 01:20:37 +08:00
|
|
|
|
processzhez, el tdsz hejezni t<>r<EFBFBD>spontokat, majd folytathatod a ind<6E>t<EFBFBD>st.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
A postgres program -s, -A <20>s -t opcioi is nagyon hasznosak lehetnek
|
2003-02-19 01:20:37 +08:00
|
|
|
|
hibakeres<65>sn<73>l <20>s teljes<65>tm<74>ny m<>r<EFBFBD>sn<73>l.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
Profiling leht<68>s<EFBFBD>ggel is fordithatod a szervert, hogy l<>sd melyik funkciok
|
|
|
|
|
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
|
2003-02-19 01:20:37 +08:00
|
|
|
|
korl<72>tj<74>t.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Az alap<61>rtelmezett korl<72>t 32 processz. Ezt n<>velhetjed <20>gy, hogy
|
2005-06-07 00:30:42 +08:00
|
|
|
|
<20>jrainditod a postmastert <20>s -N opcioval meghat<61>rotod az <20>j <20>rt<72>ket, vagy
|
|
|
|
|
modositod a postgresql.conf-ot.
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
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
|
2005-06-07 00:30:42 +08:00
|
|
|
|
k<>tszeres<65>re. Nagy processz sz<73>mokeset<65>ben valoszin<69>leg a Unix
|
|
|
|
|
konfigur<75>cios param<61>tereken is n<>velni kell. Ellen<65>rizd a SHMMAX (az
|
|
|
|
|
osztott memoria 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>lonk<6E>nti maxim<69>lis processz sz<73>m) <20>s a NFILE <20>s NINODE
|
2003-02-19 01:20:37 +08:00
|
|
|
|
(a megnzitott <20>llom<6F>nzok maxim<69>lis sz<73>ma) param<61>tereket. A PostgreSQL
|
2005-06-07 00:30:42 +08:00
|
|
|
|
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 verzioban a maxim<69>lis szerver processz sz<73>m 64 volt <20>s a
|
|
|
|
|
modosit<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<>grehajto <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 memori<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 fennmarado 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 aprobb v<>ltoztat<61>sokat hajt v<>gre a kisebb
|
|
|
|
|
kiad<61>sok k<>z<EFBFBD>tt, igy ha 7.2 verziorol <20>llsz <20>t 7.2.1 verziora, akkor nem
|
|
|
|
|
sz<73>ks<6B>ges kidumplonod az adatb<74>zist. A nagy kiad<61>sok eset<65>ben (p<>ld<6C>ul
|
|
|
|
|
verziorol 7.3-ra <20>tt<74>r<EFBFBD>sn<73>l) v<>ltozik a belsi<73> adatstrukt<6B>r<EFBFBD>k <20>s
|
2003-02-19 01:20:37 +08:00
|
|
|
|
adat<61>llom<6F>nyok form<72>tuma. Ezek a v<>ltoz<6F>sok gyakran nagyon <20>sszetettek,
|
2005-06-07 00:30:42 +08:00
|
|
|
|
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>lhato dumpol<6F>s <20>s helyre<72>llit<69>s n<>lk<6C>l.
|
|
|
|
|
|
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
M<EFBFBD>k<EFBFBD>dtet<EFBFBD>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>cioj<6F>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>cioj<6F>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>lodnak.
|
|
|
|
|
|
|
|
|
|
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 kodj<64>ban a pgsql/src/bin/psql/describe.c
|
2003-02-19 01:20:37 +08:00
|
|
|
|
<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.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
4.4) Hogyan tudok elt<6C>vol<6F>tani egy oszlopot egy t<>bl<62>bol?
|
|
|
|
|
|
|
|
|
|
Ez a funkcionalit<69>s a 7.3 verziot<6F>l kezdve <20>rhet<65> el az ALTER TABLE DROP
|
|
|
|
|
COLUMN -nal. A r<>gebbi vertiokban 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;
|
2003-02-19 01:20:37 +08:00
|
|
|
|
|
|
|
|
|
4.5) Mi a maxim<69>lis m<>rete egy sornak, egy t<>bl<62>nak vagy egy adatb<74>zisnak?
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
A korl<72>tok:
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
* 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
|
|
|
|
|
|
|
|
|
|
Term<72>szetesen nem igaz<61>n korl<72>tlan, de a t<>rter<65>let, memoria <20>s egy<67>b
|
2003-02-19 01:20:37 +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.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
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>ny<6E>nek <20>tsz<73>r<EFBFBD>s<EFBFBD>t is
|
|
|
|
|
elfoglalhatja.
|
|
|
|
|
|
|
|
|
|
K<>pzelj el p<>ld<6C>ul, egy 100.000 soros sz<73>veget, aminek minde sora egy
|
|
|
|
|
sz<73>mbol <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.
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Ezt a k<>vetkez<65>k<EFBFBD>ppen sz<73>molhatjuk ki:
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
36 byte: sor fejl<6A>c
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Az indexek nem foglalnak t<>l sokat, de tartalmazz<7A>k az indexelt adatot,
|
|
|
|
|
igy ezek is lehetnek nagyok.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
A NULL <20>rt<72>kek bitt<74>rk<72>pben vannak t<>rolva, igy kev<65>s helyet foglanak.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
4.7) Hogy tudhatom meg milyen t<>bl<62>k, indexek, adatb<74>zisok vagy
|
|
|
|
|
felhaszn<7A>lok
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
vannak defini<6E>lva?
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
A psql-ben tal<61>lsz sz<73>mos '\' karakterrel kezd<7A>d<EFBFBD> utas<61>t<EFBFBD>st az ilyen
|
2005-06-07 00:30:42 +08:00
|
|
|
|
inform<72>ciok list<73>z<EFBFBD>s<EFBFBD>ra. A '\?' segits<74>g<EFBFBD>vel tudot kilist<73>zni ezeketa
|
|
|
|
|
parancsokat. Ezen kiv<69>l vannak rendszer t<>bl<62>k, amelyek nevei 'pg_'-vel
|
|
|
|
|
kezd<7A>dnek.
|
|
|
|
|
|
|
|
|
|
Prob<6F>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.
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
4.8) A lek<65>rdez<65>seim lass<73>ak, vagy nem haszn<7A>lj<6C>k az indexeket. Mi<4D>rt?
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Az indexeket nem haszn<7A>lja a szerver minden lek<65>rdez<65>sn<73>l automatikusan.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
Csak akkor haszn<7A>l indexet, ha a t<>bla m<>rete egy megadott also 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
|
2003-02-19 01:20:37 +08:00
|
|
|
|
szekvenci<63>lis olvas<61>sa.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Hogy a PostgreSQL meg tudja hat<61>rozni hogy kell-e indexet haszn<7A>lni,
|
2005-06-07 00:30:42 +08:00
|
|
|
|
l<>teznie kell egy statisztik<69>nak a t<>bl<62>rol. 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>lo 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
|
|
|
|
|
funkciok 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;
|
|
|
|
|
|
|
|
|
|
Amikor helyettes<65>t<EFBFBD> jel oper<65>torokat haszn<7A>lsz, mint a LIKE kulcsszo 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.
|
2003-02-19 01:20:37 +08:00
|
|
|
|
* A keres<65>si kifejez<65>s nem kezd<7A>dhet karakter oszt<7A>llyal.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
* 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.
|
2003-02-19 01:20:37 +08:00
|
|
|
|
* Az alap<61>rtelmezett C hellyel kell futtatni az initdb-t.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
4.9) Hogy tudom ellen<65>rizni, hogy optimaliz<69>lta a lek<65>rdez<65>s optimaliz<69>lo
|
|
|
|
|
a lek<65>rdez<65>sem?
|
|
|
|
|
|
|
|
|
|
Olvasd el a dokument<6E>cio EXPLAIN-rol szolo 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 dimenzion 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>lhato pontok.
|
|
|
|
|
|
|
|
|
|
Az R-tree tervez<65>si mint<6E>t eredetileg le<6C>ro 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 dimenziokra
|
|
|
|
|
is. Gyakorlatilag ezen dolgoznod kell egy kicsit, <20>s m<>g nincs
|
|
|
|
|
dokument<6E>cionk arrol 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>cio 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 funkcio 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?
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Haszn<7A>ld "IS NULL"-t <20>s az "IS NOT NULL"-t.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
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?
|
|
|
|
|
|
|
|
|
|
* "char" egy karakter hossz<73> string
|
|
|
|
|
* CHAR(n) bpchar <20>res hellyel a megadott n hossz<73>s<EFBFBD>gig
|
|
|
|
|
* VARCHAR(n) varchar m<>ret maxim<69>lis hossz meghat<61>roz<6F>s<EFBFBD>val, a lefogllat
|
|
|
|
|
ter<65>let is v<>ltozo hossz<73> lesz
|
|
|
|
|
* TEXT nincs meghat<61>rozott felso" korl<72>t
|
|
|
|
|
* BYTEA v<>ltozo hossz<73>s<EFBFBD>g<EFBFBD> byte-t<>mb
|
|
|
|
|
|
|
|
|
|
L<>tni fogod a bels<6C> elnevez<65>s<EFBFBD>ket, ha tanulm<6C>nyozod a rendszert<72>bl<62>kat<61>s
|
|
|
|
|
n<>h<EFBFBD>ny hiba<62>zenetet.
|
|
|
|
|
|
|
|
|
|
Az utobbi n<>gy a "varlena" t<>pusok, ami a t<>rol<6F>suk modj<64>ra utal: az els<6C>
|
|
|
|
|
4 byte a lemezen a hossz<73>s<EFBFBD>g, a t<>bbi az adat. A valodi m<>ret teh<65>t
|
|
|
|
|
nagyobb mint a deklar<61>lt hossz<73>s<EFBFBD>g.Ezek azadatok t<>m<EFBFBD>ritve t<>rolodnak 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) jo 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 mutatoi
|
|
|
|
|
hasonloak 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
|
|
|
|
|
|
|
|
|
|
);
|
2003-02-19 01:20:37 +08:00
|
|
|
|
|
|
|
|
|
ugyanezt jelenti:
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
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 azonositok<6F>nt, b<>r ebben az esetben
|
|
|
|
|
figyelj a pg_gump haszn<7A>lat<61>n<EFBFBD>l a -o opciora (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() funkcioval 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')");
|
2003-02-19 01:20:37 +08:00
|
|
|
|
|
|
|
|
|
V<>g<EFBFBD>l pedig, haszn<7A>lhatod a visszaadott OID <20>rt<72>ket is, b<>r ez a lehet<65>
|
2005-06-07 00:30:42 +08:00
|
|
|
|
legkev<65>sb<73> portolhato. Perl DBI-ben, Edmund Mergl DBD::Pg modulj<6C>ban az
|
|
|
|
|
OID <20>rt<72>k haszn<7A>lhato 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>lok k<>z<EFBFBD>tt?
|
2003-02-19 01:20:37 +08:00
|
|
|
|
|
2005-06-07 00:30:42 +08:00
|
|
|
|
Nem. A currval() funkcio a szerver processzed <20>ltal adott <20>rt<72>ket adja
|
2003-02-19 01:20:37 +08:00
|
|
|
|
vissza, nem pedig a t<>bbi szerver processz <20>ltal adottat.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
4.15.4) Mi<4D>rt nem haszn<7A>lodnak fel <20>jra a sequence sz<73>mok tranzakcio 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 futo tranzakcioknak, <20>s azokat nem z<>rja, amig a tranzakcio v<>get
|
|
|
|
|
nem <20>r. Ez jukakat okoz a sz<73>moz<6F>sokban a visszaforditott tranzakciok
|
|
|
|
|
miatt.
|
|
|
|
|
|
|
|
|
|
4.16) Mi a OID? Mi a TID?
|
|
|
|
|
|
|
|
|
|
Az OID a PostgreSQL egyedi sor azonositoja. 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>lo <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.
|
|
|
|
|
|
|
|
|
|
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>lhatoak a rekordok 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
|
2003-02-19 01:20:37 +08:00
|
|
|
|
processz haszn<7A>l. Ha az OID-ot valami m<>sra szeretn<74>d cser<65>lni:
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
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<>rolodik, 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 valo azonosit<69>s<EFBFBD>ra szolg<6C>l.
|
|
|
|
|
A TID v<>ltozik minden rekord modosit<69>s <20>s t<>rl<72>s alkalm<6C>val. Ezeket az
|
2003-02-19 01:20:37 +08:00
|
|
|
|
indexek haszn<7A>lj<6C>k hogy a fizikai sort gyorsan megtal<61>lj<6C>k.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
4.17) Mi a PostgreSQL-ben haszn<7A>lt kifejez<65>sek jelent<6E>se?
|
|
|
|
|
|
|
|
|
|
N<>hol a forr<72>s kodban <20>s a dokumnet<65>cioban tal<61>lhatoak kifejez<65>sek,
|
|
|
|
|
amelyek <20>ltal<61>nosabb jelent<6E>ssel b<>rnak. Itt van n<>h<EFBFBD>ny:
|
|
|
|
|
|
|
|
|
|
* t<>bla (table), rel<65>cio (relation), oszt<7A>ly (class)
|
2003-02-19 01:20:37 +08:00
|
|
|
|
* sor (row), rekord (record), tuple (nincs magyar jelent<6E>s)
|
|
|
|
|
* oszlop (column), mez<65> (field), attributum (attribute)
|
|
|
|
|
* retrieve, select
|
2005-06-07 00:30:42 +08:00
|
|
|
|
* helyettesit (replace), modosit (update)
|
2003-02-19 01:20:37 +08:00
|
|
|
|
* 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
|
2005-06-07 00:30:42 +08:00
|
|
|
|
Az <20>ltal<61>nos adatb<74>zis kifejez<65>sek <20>sszefoglaloj<6F>t itt olvashato:
|
|
|
|
|
|
|
|
|
|
http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html
|
|
|
|
|
|
|
|
|
|
4.18) Mi<4D>rt kapom ezt a hib<69>t: "ERROR: Memory exhausted in
|
2003-02-19 01:20:37 +08:00
|
|
|
|
AllocSetAlloc()"?
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
Lehet hogy elfogyott a virtu<74>lis memori<72>d, vagy a kerneled er<65>forr<72>s
|
|
|
|
|
korl<72>tai alacsonyak. Prob<6F>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, prob<6F>ld meg e
|
|
|
|
|
klienssel is ugyanezt.
|
|
|
|
|
|
|
|
|
|
4.19) Hogyan tudhatom meg PostgreSQL, milyen verziot futtatok?
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
A psql programban select version();
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
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 tranzakcios blokkban helyezd el. (BEGIN <20>s
|
|
|
|
|
COMMIT k<>z<EFBFBD>tt)
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Jelenleg a PostgreSQL ezt a szab<61>lyt azzal teszi k<>telez<65>v<EFBFBD>, hogy a
|
2005-06-07 00:30:42 +08:00
|
|
|
|
tranzakcio v<>g<EFBFBD>n a nagy objektumokat lez<65>rja, igy a tranzakcio 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
|
|
|
|
|
valoszin<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>?
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Haszn<7A>ld a CURRENT_TIMESTAMP -ot:
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
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 kulcsszo haszn<7A>lat<61>val gyorsithatod a
|
|
|
|
|
lek<65>rdez<65>seket.
|
|
|
|
|
|
|
|
|
|
SELECT *
|
|
|
|
|
|
|
|
|
|
FROM tab
|
|
|
|
|
|
|
|
|
|
WHERE col IN (SELECT subcol FROM subtab);
|
2003-02-19 01:20:37 +08:00
|
|
|
|
|
|
|
|
|
EXISTS haszn<7A>lat<61>val:
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
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);
|
2003-02-19 01:20:37 +08:00
|
|
|
|
|
|
|
|
|
vagy
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
SELECT *
|
|
|
|
|
|
|
|
|
|
FROM t1 LEFT OUTER JOIN t2 USING (col);
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Ezek az identikus lek<65>rdez<65>sek <20>sszekapcsolj<6C>k a t1.col <20>s a t2.col
|
2005-06-07 00:30:42 +08:00
|
|
|
|
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 kulcsszo 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.
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
Az el<65>z<EFBFBD> kiad<61>sokban a OUTER JOIN lek<65>rdez<65>seket UNION <20>s NOT IN
|
2005-06-07 00:30:42 +08:00
|
|
|
|
kulcsszavakkal lehetett szimul<75>lni. P<>ld<6C>ul a tab1 <20>s a tab2
|
2003-02-19 01:20:37 +08:00
|
|
|
|
<20>sszekapcsol<6F>sa:
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
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>zisbol k<>rdezz le adatot.Mivel a
|
|
|
|
|
PostgreSQL adatb<74>zis specifikus rendszer t<>bl<62>kat t<>ltbe, bizonytalan hogy
|
|
|
|
|
egy adatb<74>zisok k<>z<EFBFBD>tti lek<65>rdez<65>snek hogyankellene viselkednie.
|
|
|
|
|
|
|
|
|
|
A contrib/dblink k<>nyvt<76>rban tal<61>lsz egy megold<6C>st erre, ami funkcio
|
|
|
|
|
hiv<69>sok segits<74>g<EFBFBD>vel m<>k<EFBFBD>dik. Persze, a kliens hozhat l<>treszimult<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
|
|
|
|
|
funkciobol?
|
|
|
|
|
|
|
|
|
|
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 megbizhatoan l<>trehozni <20>s t<>r<EFBFBD>lni az <20>tmeneti
|
|
|
|
|
t<>bl<62>kat a PL/pgSQL funkciokban?
|
|
|
|
|
|
|
|
|
|
A PL/pgSQL cacheli a funkciok tartalm<6C>t, aminek az a szerencs<63>tlen
|
|
|
|
|
mell<6C>khat<61>sa, hogy ha egy PL/pgSQL funkcio haszn<7A>l egy <20>tmeneti t<>bl<62>t,
|
|
|
|
|
ami k<>so"bb t<>rl<72>dik majd ujra l<>trej<65>n, akkor az <20>jra lefuto funkcio nem
|
|
|
|
|
fogja megtal<61>lni a t<>bl<62>t, mert a cache v<>ltozat a r<>gi t<>bl<62>ra tartalmaz
|
|
|
|
|
mutatot. A megold<6C>s erre az EXECUTE 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>cios lehet<65>s<EFBFBD>gek vannak?
|
|
|
|
|
|
|
|
|
|
B<>r a replik<69>cio egyetlen ter<65>let, t<>bb technologia l<>tezik replik<69>ciora,
|
|
|
|
|
term<72>szetesen mindnek meg vannak a maga elo"nyei <20>s h<>tr<74>nyai.
|
|
|
|
|
|
|
|
|
|
A master/slave replik<69>cios megold<6C>ssal a master adatb<74>zison hajthatunk
|
|
|
|
|
v<>gre modos<6F>t<EFBFBD>sokat, m<>g a slave adatb<74>zisokon csak lek<65>rdez<65>seket. A
|
|
|
|
|
PostgreSQL legn<67>pszeru"bb master/slave replik<69>cios megold<6C>sa a Solny-I.
|
|
|
|
|
|
|
|
|
|
Sz<53>mos m<>s master/slave replik<69>cios lehet<65>s<EFBFBD>g l<>tezik.Egy List<73>t
|
|
|
|
|
olvashatsz ezekr<6B>l itt:
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
http://gborg.PostgreSQL.org/genpage?replication_research
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
A multi-master replik<69>cio leheto"v<> teszi t<>bb master adatb<74>zis
|
|
|
|
|
haszn<7A>lat<61>t, b<>r ez a technologia drasztikusan cs<63>kkenti az adatb<74>zis
|
|
|
|
|
teljes<65>tm<74>ny<6E>t a sok szinkorniz<69>cio miatt. A PGCluster a legelterjedtebb
|
|
|
|
|
ilyen megold<6C>s.
|
|
|
|
|
|
|
|
|
|
Egy t<>bbfelhaszn<7A>los replik<69>cios rendszer k<>sz<73>l itt:
|
|
|
|
|
|
2003-01-14 07:00:32 +08:00
|
|
|
|
http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
4.28) Milyen kodol<6F>si lehet<65>s<EFBFBD>gek vannak?
|
|
|
|
|
|
|
|
|
|
* A contrib/pgcrypto tartlamaz sz<73>mos SQL lek<65>rdez<65>sben haszn<7A>lhato
|
|
|
|
|
kodol<6F>st.
|
|
|
|
|
* A kliens-szerver kommunik<69>cio rejtjelez<65>s<EFBFBD>re a hostssl haszn<7A>lhato.
|
|
|
|
|
Ezt a pg_hba.conf-ben enged<65>lyeztheted.
|
|
|
|
|
* Az adatb<74>zis felhszn<7A>lok jelszavait t<>rol<6F>skor kodolja a rendszer.
|
|
|
|
|
* R<>gebbi verziokban a PASSWORD_ENCRYPTION opcioval lehetett
|
|
|
|
|
bekapcsolni.
|
|
|
|
|
* A szerveren haszn<7A>lhatsz kodolt f<>jrendszert.
|
|
|
|
|
|
|
|
|
|
----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
A PostgreSQL kiterjeszt<7A>se
|
|
|
|
|
|
|
|
|
|
5.1) <20>rtam egy felhaszn<7A>loi funkciot. 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 funkciodat egy k<>l<EFBFBD>n<EFBFBD>llo
|
2003-02-19 01:20:37 +08:00
|
|
|
|
alkalmaz<61>sban.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
5.2) Hogyan lehet <20>j adatt<74>pusokat <20>s funkciokat hozz<7A>adni a PostgreSQL
|
|
|
|
|
disztrib<69>ciohoz?
|
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
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.
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
|
|
|
|
5.3) Hogyan lehet olyan C funkciot <20>rni, ami Tuple-t ad vissza?
|
|
|
|
|
|
|
|
|
|
A 7.3 verziotol kezdve a PostgreSQL t<>mogatja a t<>bl<62>zatokat viszzaado
|
|
|
|
|
funkciokat C, PL/pgSQL <20>s SQL nyelveken. B<>vebb dokument<6E>ciot a Programozo
|
|
|
|
|
k<>zik<69>nyvben tal<61>lsz. Egy C p<>lda funkcio tal<61>lhato 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
|
2003-02-19 01:20:37 +08:00
|
|
|
|
<20>jraford<72>t<EFBFBD>s ut<75>n?
|
2005-06-07 00:30:42 +08:00
|
|
|
|
|
2003-02-19 01:20:37 +08:00
|
|
|
|
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
|
2005-06-07 00:30:42 +08:00
|
|
|
|
haszn<7A>lsz felhaszn<7A>lhatod a configure script --enable-depend opcioj<6F>t, <20>gy
|
|
|
|
|
a compiler maga fogja ellen<65>rizni a f<>gg<67>s<EFBFBD>geket.
|