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