From: Bruce Momjian Date: Fri, 3 Jun 2005 18:17:07 +0000 (+0000) Subject: Update Russian FAQ. X-Git-Tag: REL8_1_0BETA1~667 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1bdec3424bc15a3b0d25b4579870ae05824a63ca;p=postgresql Update Russian FAQ. Viktor Vislobokov --- diff --git a/doc/FAQ_russian b/doc/FAQ_russian index 6089d60613..f2fd1ccd7b 100644 --- a/doc/FAQ_russian +++ b/doc/FAQ_russian @@ -1,12 +1,12 @@ Otvety na chasto zadavaemye voprosy po PostgreSQL - Data poslednego obnovleniya: Ponedel'nik 14 fevralya 23:35:09 EST 2005 + Data poslednego obnovleniya: Ponedel'nik 30 maya 09:11:03 EDT 2005 Anglijskij variant soprovozhdaet: Bryus Mom'yan (Bruce Momjian) (pgman@candle.pha.pa.us) - Perevel na russkij: Viktor Vislobokov (corochoone@perm.ru) + Pereviol na russkij: Viktor Vislobokov (corochoone@perm.ru) Samuyu svezhuyu anglijskuyu versiyu dokumenta mozhno najti na http://www.PostgreSQL.org/files/documentation/faqs/FAQ.html. @@ -30,6 +30,7 @@ 1.10) Kak nauchit'sya SQL? 1.11) Kak prisoedinitsya k komande razrabotchikov? 1.12) Kak sravnivat' PostgreSQL s drugimi SUBD? + 1.13) Kto upravlyaet PostgreSQL? Voprosy pol'zovatelej po klientskoj chasti @@ -70,8 +71,8 @@ 4.8) Kak mne vypolnit' poisk regulyarnogo vyrazheniya i poisk nezavisimyj ot registra bukv poisk regulyarnogo vyrazheniya? Kak mne ispol'zovat' indeks dlya poiska nezavisimogo ot registra bukv? - 4.9) Kak ya mogu opredelit', chto znachenie polya ravno NULL v - kakom-libo zaprose? + 4.9) Kak mne opredelit', chto znachenie polya ravno NULL v kakom-libo + zaprose? Mogu ya otsortirovat' polya NULL ili net? 4.10) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami? 4.11.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem? 4.11.2) Kak mne poluchit' znachenie pri vstavke SERIAL? @@ -80,36 +81,25 @@ 4.11.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya snova pri otmene tranzakcii? Pochemu sozdayutsya razryvy pri numeracii v kolonke, gde ya ispol'zuyu posledovatel'nost'/SERIAL? - 4.12) CHto takoe OID? CHto takoe TID? + 4.12) CHto takoe OID? CHto takoe CTID? 4.13) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in AllocSetAlloc()"? 4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena? - 4.15) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku - "invalid large obj descriptor"? - 4.16) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat' + 4.15) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat' tekuschee vremya? - 4.17) Kak vypolnit' vneshnee svyazyvanie? - 4.18) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh? - 4.19) Kak mne vernut' iz funkcii neskol'ko strok tablicy? - 4.20) Pochemu ya poluchayu oshibku "missing oid", kogda obraschayuts' - k vremennym tablicam v funkciyah PL/PgSQL? - 4.21) Kakie opcii shifrovaniya suschestvuyut? - - Rasshireniya PostgreSQL - - 5.1) YA napisal funkciyu opredelyaemuyu pol'zovatelem. Kogda ya - zapuskayu ee v psql, pochemu ya poluchayu core dump? - 5.2) Kak ya mogu vnesti nekotorye klassnye novye tipy i funkcii v - PostgreSQL? - 5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu stroku tablicy? - 5.4) YA izmenil ishodnyj fajl. Pochemu posle perekompilyacii ya ne - vizhu izmenenij? + 4.16) Kak vypolnit' vneshnee svyazyvanie? + 4.17) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh? + 4.18) Kak mne vernut' iz funkcii neskol'ko strok tablicy? + 4.19) Pochemu ya poluchayu oshibku "relation with OID #### ne + suschestvuet", kogda obraschayuts' k vremennym tablicam v funkciyah + PL/PgSQL? + 4.20) Kakie est' resheniya dlya replikacii? _________________________________________________________________ Obschie voprosy - 1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie? - + 1.1) CHto takoe PostgreSQL? Kak proiznositsya `eto nazvanie? + PostgreSQL proiznositsya Post-Gres-Q-L (Post-Gres-K'yu-`El), takzhe chasto govoryat prosto Postgres. @@ -125,8 +115,8 @@ Podrobnosti smotrite v FAQ dlya razrabotchikov, http://www.PostgreSQL.org/files/documentation/faqs/FAQ_DEV.html - 1.2) Kakovy avtorskie prava na PostgreSQL? - + 1.2) Kakovy avtorskie prava na PostgreSQL? + PostgreSQL rasprostranyaetsya po klassicheskoj licenzii BSD. `Eta licenziya ne soderzhit ogranichenij na to, kak budet ispol'zovat'sya ishodnyj kod. Nam nravitsya `eta licenziya i u nas net namerenij eio @@ -137,7 +127,8 @@ Sistema Upravleniya Bazami Dannyh PostgreSQL Portions copyright (c) 1996-2005, PostgreSQL Global Development Group - Portions Copyright (c) 1994-6 Regents of the University of California + Portions Copyright (c) 1994-1996 Regents of the University of + California Predostavlyayutsya prava na ispol'zovanie, kopirovanie, izmenenie i rasprostranenie dannogo programmnogo obespecheniya i ego dokumentacii @@ -161,16 +152,16 @@ PREDOSTAVLYAT' SOPROVOZHDENIE, PODDERZHKU, OBNOVLENIYA, RASSHIRENIYA ILI IZMENENIYA. - 1.3) Na kakih platformah rabotaet PostgreSQL? - + 1.3) Na kakih platformah rabotaet PostgreSQL? + Obychno, PostgreSQL mozhet rabotat' na lyuboj sovremennoj platforme sovmestimoj s Unix. V instrukcii po ustanovke, vy najdete spisok teh platform, na kotoryh byli provedeny testovye zapuski PostgreSQL k momentu vyhoda dannoj versii. - Nachinaya s versii 8.0, PostgreSQL bez vsyakih uhischrenij rabotaet na - operacionnyh sistemah Microsoft Windows, osnovannyh na NT, takih kak - Win2000, WinXP i Win2003. Paket installyatora dostupen po adresu + PostgreSQL takzhe rabotaet na operacionnyh sistemah Microsoft Windows, + osnovannyh na NT, takih kak Win2000, WinXP i Win2003. Paket + installyatora dostupen po adresu http://pgfoundry.org/projects/pginstaller. Versii Windows, osnovannye na MS-DOS (Win95, Win98, WinMe) mogut zapuskat' PostgreSQL s pomosch'yu Cygwin. @@ -180,14 +171,13 @@ http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgre SQL&stype=all&sort=type&dir=%2F. - 1.4) Gde mozhno vzyat' PostgreSQL? - - Naprimer, vospol'zovavshis' anonimnym dostupom na ftp sajt PostgreSQL - ftp://ftp.PostgreSQL.org/pub. Spisok zerkal vy najdete na nashem - osnovnom sajte. + 1.4) Gde mozhno vzyat' PostgreSQL? + + CHerez brauzer, ispol'zuya http://www.postgresql.org/ftp/ i cherez + ftp, ispol'zuya ftp://ftp.PostgreSQL.org/pub/. - 1.5) Gde poluchit' podderzhku? - + 1.5) Gde poluchit' podderzhku? + Soobschestvo PostgreSQL predostavlyaet pomosch' mnozhestvu pol'zovatelej cherez E-mail. Osnovnoj web-sajt dlya podpiski na spiski rassylki po E-mail `eto: http://www.postgresql.org/community/lists/. @@ -205,22 +195,23 @@ Spisok kommercheskoj podderzhki kompanij dostupen na http://techdocs.postgresql.org/companies.php. - 1.6) Kak mne soobschit' ob oshibke? - + 1.6) Kak mne soobschit' ob oshibke? + Posetite stranichku so special'noj formoj otchiota ob oshibke v PostgreSQL po adresu: http://www.postgresql.org/support/submitbug. Takzhe prover'te nalichie bolee svezhej versii PostgreSQL na nashem - FTP sajte ftp://ftp.PostgreSQL.org/pub. + FTP sajte ftp://ftp.PostgreSQL.org/pub/. - 1.7) Kakaya poslednyaya versiya? - - Poslednij vypusk PostgreSQL - `eto versiya 8.0.1 + 1.7) Kakaya poslednyaya versiya? + + Poslednij vypusk PostgreSQL - `eto versiya 8.0.2 - My planiruem vypuskat' novye versii kazhdye 10-12 mesyacev. + My planiruem vypuskat' novye starshie versii kazhdyj god, a mladshie + versii kazhdye neskol'ko mesyacev. - 1.8) Kakaya dokumentaciya imeetsya v nalichii? - + 1.8) Kakaya dokumentaciya imeetsya v nalichii? + PostgreSQL soderzhit mnogo dokumentacii, vklyuchaya bol'shoe rukovodstvo, stranicy `elektronnogo rukovodstva man i nekotorye malen'kie testovye primery. Smotrite v katalog /doc. Vy takzhe mozhete @@ -229,8 +220,10 @@ Suschestvuet dve knigi po PostgreSQL dostupnye po adresam http://www.PostgreSQL.org/docs/books/awbook.html i - http://www.commandprompt.com/ppbook/. Spisok knig po PostgreSQL, - kotorye mozhno kupit' dostupen po adresu + http://www.commandprompt.com/ppbook/. Est' neskol'ko knig po + PostgreSQL, kotorye mozhno kupit'. Odnu iz naibolee populyarnyh + napisal Korri Duglas (Korry Douglas). Spisok obzorov po `etim knigam + dostupen po adresu http://techdocs.postgresql.org/techdocs/bookreviews.php. Krome togo, po adresu http://techdocs.PostgreSQL.org/ vy mozhete najti kollekciyu tehnicheskih statej posvyaschennyh PostgreSQL. @@ -241,48 +234,33 @@ Nash sajt soderzhit esche bol'she informacii. - 1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih - vozmozhnostyah? - + 1.9) Kak najti informaciyu ob izvestnyh oshibkah ili otsutstvuyuschih + vozmozhnostyah? + PostgreSQL podderzhivaet rasshirennyj podklass SQL-92. Smotrite nash spisok TODO na predmet izvestnyh oshibok, otsutstvuyuschih vozmozhnostej i buduschih planov. - 1.10) Kak mne nauchit'sya SQL? - - Kniga po PostgreSQL na - http://www.PostgreSQL.org/docs/books/awbook.html nauchit SQL. - Suschestvuet drugaya kniga po PostgreSQL na - http://www.commandprompt.com/ppbook. Est' prekrasnyj uchebnik na + 1.10) Kak mne nauchit'sya SQL? + + Vo-pervyh, voz'mite odnu iz knig po PostgreSQL, o kotoryh govorilos' + vyshe. Esche odin uchebnik - `eto kniga "Teach Yourself SQL in 21 + Days, Second Edition" (Osvoj samostoyatel'no SQL za 21 den', Vtoraya + redakciya) na http://members.tripod.com/er4ebus/sql/index.htm. Mnogim + iz nashih pol'zovatelej nravitsya kniga The Practical SQL Handbook, + Bowman, Judith S., et al., Addison-Wesley. Drugim nravitsya The + Complete Reference SQL, Groff et al., McGraw-Hill. + Est' prekrasnyj uchebnik na http://www.intermedia.net/support/sql/sqltut.shtm, na http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM, i na http://sqlcourse.com. - Esche odin uchebnik - `eto kniga "Teach Yourself SQL in 21 Days, - Second Edition" (Osvoj samostoyatel'no SQL za 21 den', Vtoraya - redakciya) na http://members.tripod.com/er4ebus/sql/index.htm - - Mnogim iz nashih pol'zovatelej nravitsya kniga The Practical SQL - Handbook, Bowman, Judith S., et al., Addison-Wesley. Drugim nravitsya - The Complete Reference SQL, Groff et al., McGraw-Hill. - - 1.11) Kak prisoedinitsya k komande razrabotchikov? - - Dlya nachala, skachajte poslednyuyu versiyu ishodnyh tekstov i - prochtite FAQ i dokumentaciyu dlya razrabotchikov PostgreSQL na nashem - sajte ili v distributive. Zatem, podpishites' na spiski rassylki - pgsql-hackers i pgsql-patches. Dalee, otpravlyajte ispravleniya - (patches) vysokogo kachestva v spisok pgsql-patches. - - Suschestvuet ogranichennyj spisok lyudej, kotoryj imeyut privelegiyu - vnosit' izmeneniya v CVS arhiv PostgreSQL. Kazhdyj iz `etih lyudej v - svoe vremya otpravil tak mnogo vysokokachestvennyh ispravlenij, chto - ih bylo nevozmozhno ostavit' bez vnimaniya i oni byli udostoeny - previlegii vnosit' izmeneniya, i my uvereny, chto te ispravleniya, - kotorye oni vnesut budut vysokogo kachestva. - - 1.12) Kak sravnivat' PostgreSQL s drugimi SUBD? - + 1.11) Kak prisoedinitsya k komande razrabotchikov? + + Smotrite FAQ dlya razrabotchikov. + + 1.12) Kak sravnivat' PostgreSQL s drugimi SUBD? + Suschestvuet neskol'ko metodov sravneniya programmnogo obespecheniya: vozmozhnosti, proizvoditel'nost', nadezhnost', podderzhka i cena. @@ -298,15 +276,8 @@ Proizvoditel'nost' Proizvoditel'nost' PostgreSQL shodna s drugimi kommercheskimi SUBD i s SUBD s otkrytym ishodnym kodom. V kakih-to veschah my - bystree, v kakih-to medlennee. V sravnenii s MySQL ili linejnoj - SUBD, my bystree, kogda pol'zovatelej mnogo, a takzhe na - slozhnyh zaprosah i pri chtenii/zapisi zagruzki zaprosa. MySQL - bystree dlya prostyh SELECT zaprosov, vypolnyaemyh nebol'shim - kolichestvom pol'zovatelej. I razumeetsya, MySQL ne imeet - kakih-libo vozmozhnostej iz perechislenyh vyshe, v sekcii - Vozmozhnosti. My delaem upor na nadezhnost' i rasshirennye - vozmozhnosti, no my takzhe prodolzhaem uvelichivat' - proizvoditel'nost' s kazhdym vypuskom. + bystree, v kakih-to medlennee. Nasha proizvoditel'nosti obychno + +/-10% po sravneniyu s drugimi SUBD. Nadezhnost' My ponimali, chto nasha SUBD dolzhna byt' nadezhnoj ili ona @@ -339,10 +310,23 @@ opisyvayutsya v nashej licenzii stilya BSD, kotoraya privedena vyshe. + 1.13) Kto upravlyaet PostgreSQL? + + Esli vy ischite kakogo-to osobennogo cheloveka, central'nyj komitet + ili upravlyayuschuyu kompaniyu, to naprasno --- ih net. U nas est' + yadro komiteta i razrabotchikov, rabotayuschih s CVS, no `eti gruppy + sluzhat bol'she dlya administrativnyh celej, chem dlya upravleniya. + Proekt napryamuyu funkcioniruet s pomosch'yu soobschestva + razrabotchikov i pol'zovatelej, k kotoromu mozhet prisoedinitsya + kazhdyj. Vsio chto nuzhno -- `eto podpisat'sya na spiski rassylki i + uchastvovat' v diskussiyah. (Podrobnosti o tom kak vklyuchit'sya v + razrabotku PostgreSQL smotrite v FAQ dlya razrabotchikov.) + _________________________________________________________________ + Voprosy pol'zovatelej po klientskoj chasti - 2.1) Kakie interfejsy est' dlya PostgreSQL? - + 2.1) Kakie interfejsy est' dlya PostgreSQL? + Ustanovka PostgreSQL vklyuchaet tol'ko C i vstroennyj (embedded) C interfejsy. Vse drugie interfejsy yavlyayutsya nezavisimymi proektami i zagruzhayutsya otdel'no; samostoyatel'nost' proektov pozvolyaet im @@ -354,46 +338,40 @@ Python i mnogih drugih, dostupny na http://gborg.postgresql.org v sekcii Drivers/Interfaces, a takzhe cherez poisk v Internet. - 2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL cherez - Web? - + 2.2) Kakie instrumenty suschestvuyut dlya ispol'zovaniya PostgreSQL cherez + Web? + Prekrasnoe vvedenie vo vzaimodejstvie baz dannyh i Web mozhno najti na: http://www.webreview.com Dlya integracii s Web, PHP http://www.php.net yavlyaetsya neplohim interfejsom. - V slozhnyh sluchayah, mnogie pol'zuyutsya Perl i CGI.pm ili mod_perl. - - 2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya? - - Da, suschestvuet neskol'ko graficheskih interfejsov dlya PostgreSQL. - Oni vklyuchayut PgAdmin III (http://www.pgadmin.org), PgAccess - (http://www.pgaccess.org), RHDB Admin - (http://sources.redhat.com/rhdb/), TORA (http://www.globecom.net/tora/ - chastichno kommercheskoe PO) i Rekall ( - http://www.rekallrevealed.org/). Takzhe est' PhpPgAdmin ( - http://phppgadmin.sourceforge.net/) - interfejs k PostgreSQL, - osnovannyj na Web. + V slozhnyh sluchayah, mnogie pol'zuyutsya Perl i DBD::Pg s CGI.pm ili + mod_perl. + + 2.3) Est' li u PostgreSQL graficheskij interfejs pol'zovatelya? + + Da, podrobnosti smotrite v + http://techdocs.postgresql.org/guides/GUITools. _________________________________________________________________ Voprosy administrirovaniya - 3.1) Kak mne ustanovit' PostgreSQL v mesto otlichnoe ot /usr/local/pgsql? - + 3.1) Kak mne ustanovit' PostgreSQL v mesto otlichnoe ot /usr/local/pgsql? + Zadajte opciyu --prefix kogda zapuskaete configure. - 3.2) Kak mne upravlyat' soedineniyami s drugih komp'yuterov? - + 3.2) Kak mne upravlyat' soedineniyami s drugih komp'yuterov? + Po umolchaniyu, PostgreSQL razreshaet tol'ko soedineniya na lokal'noj mashine cherez sokety domena Unix ili TCP/IP soedineniya. Dlya togo, chtoby drugie mashiny smogli podklyuchit'sya k baze vy dolzhny izmenit' listen_addresses v postgresql.conf, razreshit' host-avtorizaciya v fajle $PGDATA/pg_hba.conf i perestartovat' server. - 3.3) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya - proizvoditel'nosti? - + 3.3) Kakie nastrojki mne nuzhno sdelat' dlya uluchsheniya proizvoditel'nosti? + Suschestvuet tri glavnyh oblasti, kotorye potencial'no mogut uvelichit' proizvoditel'nost': @@ -430,64 +408,27 @@ http://candle.pha.pa.us/main/writings/pgsql/hw_performance/inde x.html i http://www.powerpostgresql.com/PerfList/. - 3.4) Kakie vozmozhnosti dlya otladki est' v nalichii? - + 3.4) Kakie vozmozhnosti dlya otladki est' v nalichii? + Est' mnozhestvo ustanovok v nastrojkah servera, nachinayuschihsya na log_*, pozvolyayuschih protokolirovat' zaprosy i statistiku raboty processa, kotoraya ochen' polezna dlya otladki i izmereniya proizvoditel'nosti. - Dlya predostavleniya bolee detal'noj informacii razrabotchikam servera - pri otladke kakoj-libo problemy dolzhny pol'zovat'sya sleduyuschie - instrukcii. - - Takim zhe obrazom mozhno proizvodit' i otladku severa, esli on - rabotaet nepravil'no. Vo-pervyh, pri zapuske configure s opciej - --enable-cassert, mnogie vyzovy assert() pozvolyayut otslezhivat' - rabotu backend processa i ostanovku programmy pri vozniknovenii - kakih-libo neozhidannostej. - - Esli postmaster ne zapuschen, vy mozhete zapustit' postgres backend iz - komandnoj stroki i vvesti vash operator SQL napryamuyu. `Eto - rekomenduetsya tol'ko dlya celej otladki. Zametim, chto v `etom - rezhime, zapros zavershaetsya simvolom novoj stroki, a ne tochkoj s - zapyatoj. Esli vy proizvodili kompilyaciyu s otladochnymi simvolami, - vy mozhete ispol'zovat' lyuboj otladchik, chtoby posmotret', chto - sluchilos'. Poskol'ku backend zapuskaetsya ne iz postmaster, on ne - zapuskaetsya v identichnom okruzhenii i znachit problemy iteracij - blokirovok/backend ne mogut byt' vosproizvedeny. - - Esli postmaster zapuschen, zapustite psql v odnom okne, zatem najdite - PID processa postgres, ispol'zuemyj psql, ispol'zuya SELECT - pg_backend_pid(). Ispol'zujte otladchik dlya podklyucheniya k postgres - PID. Vy mozhete ustanovit' tochki preryvaniya v otladchike i zapustit' - zapros iz psql. Esli vy proizvodite otladku zapuska postgres, vy - mozhete ustanovit' PGOPTIONS="-W n", i zatem zapustit' psql. `Eta - opciya privodit k zaderzhke processa zapuska na n sekund, v techenie - kotoryh vy mozhete podklyuchit' k processu otladchik, ustanovit' - lyubye tochki preryvaniya i prodolzhit' zapusk. - - Vy takzhe mozhete skompilirovat' PostgreSQL s profilirovaniem dlya - togo, chtoby uvidet' kakie funkcii skol'ko vremeni vypolnyayutsya. - Fajly profilirovaniya backend'a nahodyatsya v kataloge - pgsql/data/base/dbname. Fajl profilirovaniya klienta budet pomeschen v - tekuschij katalog klienta. V Linux dlya vypolneniya profilirovaniya - trebuetsya kompilyacii s -DLINUX_PROFILE. - - 3.5) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda - pytayus' podklyuchit'sya k baze? - + 3.5) Pochemu ya poluchayu soobschenie "Sorry, too many clients" kogda + pytayus' podklyuchit'sya k baze? + Vy dostigli ustanovlennogo po umolchaniyu ogranicheniya na 100 sessij podklyucheniya k baze dannyh. Vam neobhodimo uvelichit' dlya postmaster limit na kolichestvo konkurentnyh backend processov, izmeniv znachenie max_connections v fajle postgresql.conf i perestartovat' postmaster. - 3.6) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov - PostgreSQL? - + 3.6) Pochemu neobhodimo delat' dump i restore pri obnovlenii vypuskov + PostgreSQL? + Razrabotchiki PostgreSQL delayut tol'ko nebol'shie izmeneniya mezhdu - podvypuskami. Takim obrazom obnovlenie s versii 7.4 do 7.4.1 ne + podvypuskami. Takim obrazom obnovlenie s versii 7.4.0 do 7.4.1 ne trebuet vypolneniya dump i restore. Odnako pri vyhode ocherednogo vypuska (t.e. pri obnovlenii naprimer, s 7.3 na 7.4) chasto menyaetsya vnutrennij format sistemnyh tablic i fajlov dannyh. `Eti izmeneniya @@ -501,8 +442,8 @@ bez ispol'zovaniya dump/restore. Kommentarii k vypusku govorit kogda mozhno ispol'zovat' pg_upgrade dlya `etogo vypuska. - 3.7) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'? - + 3.7) Kakoe komp'yuternoe "zhelezo" ya dolzhen ispol'zovat'? + Poskol'ku "zhelezo" personal'nyh komp'yuterov yavlyaetsya naibolee sovmestimym, lyudi sklonny verit', chto takoe "zhelezo" imeet odinakovoe kachestvo. `Eto ne tak. Pamyat' ECC, SCSI i kachestvennye @@ -516,15 +457,15 @@ Voprosy `ekspluatacii - 4.1) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek zaprosa? - Proizvol'noj stroki? - + 4.1) Kak vypolnit' SELECT tol'ko dlya neskol'kih pervyh strochek zaprosa? + Proizvol'noj stroki? + Dlya polucheniya tol'ko neskol'kih strok, esli vy znaete ih - kolichestvo na moment vypolneniya SELECT ispol'zujte LIMIT. Esli est' - kakoj-libo indeks, kotoryj sovpadaet s ORDER BY, to vozmozhno, chto - ves' zapros vypolnen i ne budet. Esli vy ne znaete kolichestva - neobhodimyh strok na moment vypolneniya SELECT, ispol'zujte kursor i - FETCH. + kolichestvo na moment vypolneniya SELECT ispol'zujte LIMIT. + Esli est' kakoj-libo indeks, kotoryj sovpadaet s ORDER BY, to + vozmozhno, chto ves' zapros vypolnen i ne budet. Esli vy ne znaete + kolichestva neobhodimyh strok na moment vypolneniya SELECT, + ispol'zujte kursor i FETCH. To SELECT a random row, use: SELECT col @@ -532,10 +473,10 @@ ORDER BY random() LIMIT 1; - 4.2) Kak mne najti kakie tablicy, indeksy, bazy dannyh i pol'zovateli - suschestvuyut? Kak mne uvidet' zaprosy, kotorye ispol'zuet psql dlya - polucheniya `etoj informacii? - + 4.2) Kak mne najti kakie tablicy, indeksy, bazy dannyh i pol'zovateli + suschestvuyut? Kak mne uvidet' zaprosy, kotorye ispol'zuet psql dlya + polucheniya `etoj informacii? + CHtoby prosmatrivat' tablicy v psql, ispol'zujte komandu \dt. Polnyj spisok komand v psql vy mozhete poluchit', ispol'zuya \?. Krome togo, vy mozhete posmotret' ishodnyj kod psql v fajle @@ -555,8 +496,8 @@ mnogie iz operatorov SELECT neobhodimyh dlya polucheniya informacii iz sistemnyh tablic bazy dannyh. - 4.3) Kak izmenit' tip dannyh kolonki? - + 4.3) Kak izmenit' tip dannyh kolonki? + V 8.0 i bolee pozdnih versiyah, izmenenie tipa kolonki vypolnyaetsya ochen' legko cherez ALTER TABLE ALTER COLUMN TYPE. @@ -567,9 +508,8 @@ ALTER TABLE tab DROP COLUMN old_col; COMMIT; - 4.4) Kakovy maksimal'nye razmery dlya strok v tablice, tablic i bazy - dannyh? - + 4.4) Kakovy maksimal'nye razmery dlya strok v tablice, tablic i bazy dannyh? + Suschestvuyut sleduyuschie ogranicheniya: Maksimal'nyj razmer bazy? neogranichen (suschestvuyut bazy na 32 TB) @@ -595,9 +535,9 @@ byt' uvelicheny v chetyre raza, esli razmer bloka po umolchaniyu budet uvelichen do 32k. - 4.5) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya - dannyh iz obychnogo tekstovogo fajla? - + 4.5) Kak mnogo diskovogo prostranstva v baze dannyh nuzhno dlya sohraneniya + dannyh iz obychnogo tekstovogo fajla? + SUBD PostgreSQL mozhet potrebovat'sya diskovogo prostranstva do 5 raz bol'she dlya sohraneniya dannyh iz prostogo tekstovogo fajla. @@ -630,15 +570,15 @@ Znacheniya NULL hranyatsya kak bitovye karty i po`etomu oni zanimayut ochen' malo mesta. - 4.6) Pochemu moi zaprosy rabotayut medleno? Pochemu oni ne ispol'zuyut moi - indeksy? - - Indeksy ne ispol'zuyutsya dlya kazhdogo zaprosa avtomaticheski. Oni - ispol'zuyutsya tol'ko esli tablica bol'she minimal'nogo razmera i - zapros vybiraet tol'ko malen'kij procent strok v tablice. Tak - ustroeno, potomu chto dostup k disku s primeneniem randomizacii pri - skanirovanii indeksov mozhet byt' medlennee, chem prostoe chtenie - tablicy ili ee posledovatel'noe skanirovanie. + 4.6) Pochemu moi zaprosy rabotayut medleno? Pochemu oni ne ispol'zuyut moi + indeksy? + + Indeksy ne ispol'zuyutsya dlya kazhdogo zaprosa. Oni ispol'zuyutsya + tol'ko esli tablica bol'she minimal'nogo razmera i zapros vybiraet + tol'ko malen'kij procent strok v tablice. Tak ustroeno, potomu chto + dostup k disku s primeneniem randomizacii pri skanirovanii indeksov + mozhet byt' medlennee, chem prostoe chtenie tablicy ili ee + posledovatel'noe skanirovanie. CHtoby opredelit' neobhodimost' ispol'zovaniya indeksa dlya kakoj-libo tablicy, PostgreSQL dolzhen imet' statistiku po `etoj tablice. `Eta @@ -665,8 +605,8 @@ Esli vam kazhetsya, chto optimizator nekorrektno vybiraet posledovatel'nyj perebor, ispol'zujte SET enable_seqscan TO 'off' i - zapustite testy, chtoby uvidet', ne stalo-li skanirovanie indeksov - bystree. + zapustite zapros snova, chtoby uvidet', dejstvitel'no li skanirovanie + indeksov bystree. Kogda ispol'zuyutsya operacii s shablonami, naprimer LIKE ili ~, indeksy mogut byt' ispol'zovany v sleduyuschih sluchayah: @@ -689,14 +629,14 @@ esli tipy dannyh tochno ne sovpadali s indeksnymi tipami kolonok. `Eto osobenno kasalos' int2, int8 i numeric indeksov kolonok. - 4.7) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros? - + 4.7) Kak posmotret' na to, kak optimizator vypolnyaet moj zapros? + Smotrite stranicu rukovodstva posvyaschennuyu EXPLAIN. - 4.8) Kak mne vypolnit' poisk regulyarnogo vyrazheniya i poisk nezavisimyj - ot registra bukv poisk regulyarnogo vyrazheniya? Kak mne ispol'zovat' - indeks dlya poiska nezavisimogo ot registra bukv? - + 4.8) Kak mne vypolnit' poisk regulyarnogo vyrazheniya i poisk nezavisimyj ot + registra bukv poisk regulyarnogo vyrazheniya? Kak mne ispol'zovat' indeks + dlya poiska nezavisimogo ot registra bukv? + Operator ~ proizvodit poisk regulyarnogo vyrazheniya, a operator ~* proizvodit nezavisimyj ot registra bukv poisk regulyarnogo vyrazheniya. Nezavisimyj ot registra variant LIKE nazyvaetsya ILIKE. @@ -710,13 +650,24 @@ esli vy sozdadite indeks vyrazheniya, on budet ispol'zovan: CREATE INDEX tabindex ON tab (lower(col)); - 4.9) Kak ya mogu opredelit', chto znachenie polya ravno NULL v kakom-libo - zaprose? - - Vy prosto sravnivaete znachenie s IS NULL i IS NOT NULL. - - 4.10) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami? - + 4.9) Kak mne opredelit', chto znachenie polya ravno NULL v kakom-libo + zaprose? Mogu ya otsortirovat' polya NULL ili net? + + Vy prosto sravnivaete znachenie s IS NULL i IS NOT NULL, kak zdes': + SELECT * + FROM tab + WHERE col IS NULL; + + CHtoby otsortirovat' dannye po znacheniyu ispol'zujte modifikatory IS + NULL i IS NOT NULL v vyrazhenii ORDER BY. Kogda oni budut generirovat' + znacheniya istina, to pri sortirovke oni budut vyshe, chem znacheniya + lozh', tak chto zapisi s NULL budut v otsortirovannom spiske sverhu: + SELECT * + FROM tab + ORDER BY (col IS NOT NULL); + + 4.10) Kakovy otlichiya mezhdu raznymi simvol'nymi tipami? + Tip Vnutrennee imya Zamechaniya VARCHAR(n) varchar razmer zadaet maksimal'nuyu dlinu, net zapolneniya CHAR(n) bpchar zapolnyaetsya pustotoj do fiksirovannoj dliny @@ -731,10 +682,9 @@ Pervye chetyre tipa yavlyayutsya "varlena" tipami (t.e., pervye chetyre bajta na diske yavlyayutsya dlinnoj, za kotoroj sleduyut dannye). Takim obrazom, fakticheski ispol'zuemoe prostranstvo bol'she, - chem oboznachennyj razmer. Odnako, `eti tipy dannyh takzhe poddayutsya - szhatiyu ili mogut byt' sohraneny ne v strokom vide cherez TOAST, tak - chto zanimaemoe diskovoe prostranstvo mozhet takzhe byt' i men'she, - chem ozhidalos'. + chem oboznachennyj razmer. Odnako, dlinnye znacheniya takzhe + szhimayutsya, tak chto zanimaemoe diskovoe prostranstvo mozhet takzhe + byt' i men'she, chem ozhidalos'. VARCHAR(n) - `eto luchshee reshenie, kogda nuzhno hranit' stroki peremennoj dliny, ne prevyshayuschie opredelennogo razmera. TEXT - `eto luchshee reshenie dlya strok neogranichennoj dliny, s maksimal'no @@ -747,8 +697,8 @@ znacheniya kotoryh mogut vklyuchat' NULL bajty. Vse tipy opisannye zdes', imeyut shodnye harakteristiki proizvoditel'nosti. - 4.11.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem? - + 4.11.1) Kak mne sozdat' pole serial/s-avto-uvelicheniem? + PostgreSQL podderzhivaet tip dannyh SERIAL. On avtomaticheski sozdaet posledovatel'nost'. Naprimer: CREATE TABLE person ( @@ -766,8 +716,8 @@ Smotrite podrobnosti o posledovatel'nostyah na stranice rukovodstva posvyaschennoj create_sequence. - 4.11.2) Kak mne poluchit' znachenie pri vstavke SERIAL? - + 4.11.2) Kak mne poluchit' znachenie pri vstavke SERIAL? + Odin iz sposobov sostoit v poluchenii sleduyuschego znacheniya SERIAL iz ob"ekta sequence s pomosch'yu funkcii nextval() pered vstavkoj i zatem vstavlyat' `eto znachenie yavno. Ispol'zujte tablicu-primer v @@ -788,23 +738,23 @@ execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); new_id = execute("SELECT currval('person_id_seq')"); - 4.11.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i - nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami? - + 4.11.3) Ne mozhet li poluchit'sya tak, chto ispol'zovanie currval() i + nextval() privedet k zaciklirovaniyu s drugimi pol'zovatelyami? + Net. currval() vozvraschaet tekuschee znachenie, naznachennoe vashej sessiej, a ne drugimi sessiyami. - 4.11.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya snova - pri otmene tranzakcii? Pochemu sozdayutsya razryvy pri numeracii v kolonke, - gde ya ispol'zuyu posledovatel'nost'/SERIAL? - + 4.11.4) Pochemu chisla iz moej posledovatel'nosti ne ispol'zuyutsya snova pri + otmene tranzakcii? Pochemu sozdayutsya razryvy pri numeracii v kolonke, gde + ya ispol'zuyu posledovatel'nost'/SERIAL? + Dlya realizacii konkuretnosti, znacheniya posledovatel'nostej, pri neobhodimosti vydayutsya vo vremya zapuska tranzakcij i ne blokiruyutsya do polnogo vypolneniya tranzakcij. `Eto mozhet vyzyvat' razryvy v numeracii pri otmene tranzakcij. - 4.12) CHto takoe OID? CHto takoe TID? - + 4.12) CHto takoe OID? CHto takoe CTID? + Kazhdaya, sozdavaemaya v PostgreSQL tablichnaya stroka, poluchaet unikal'nyj indentifikator OID za isklyucheniem sluchaya kogda ispol'zovalos' WITHOUT OIDS. OID - `eto avtomaticheski naznachaemoe @@ -819,14 +769,16 @@ obrazom men'she podverzheny perepolneniyu. Dlya hraneniya znachenij 8-mi bajtnoj posledovatel'nosti dostupen tip SERIAL8. - TID ispol'zuetsya dlya identifikacii special'nyh fizicheskih zapisej s - blochnymi i offset znacheniyami. TID izmenyaetsya posle togo kak - stroki v tablice byli izmeneny ili peregruzheny. TID ispol'zuetsya - indeksnymi zapisyami v kachestve ukazatelya na fizicheskie zapisi. + CTID ispol'zuetsya dlya identifikacii special'nyh fizicheskih zapisej + s blochnymi i offset znacheniyami. CTID izmenyaetsya posle togo kak + stroki v tablice byli izmeneny ili peregruzheny. + + TID ispol'zuetsya indeksnymi zapisyami v kachestve ukazatelya na + fizicheskie zapisi. - 4.13) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in - AllocSetAlloc()"? - + 4.13) Pochemu ya poluchayu oshibku "ERROR: Memory exhausted in + AllocSetAlloc()"? + Predpolozhitel'no u vas zakonchilas' virtual'naya pamyat' ili chto vashe yadro imeet malen'kij limit na opredelennye resursy. Popytajtes' pered zapuskom postmaster vypolnit' sleduyuschie komandy: @@ -841,36 +793,18 @@ klientom, potomu chto backend vozvraschaet slishkom bol'shoj ob"em dannyh, popytajtes' vypolnit' `etu komandu pered zapuskom klienta. - 4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena? - + 4.14) Kak mne uznat', kakaya versiya PostgreSQL zapuschena? + Iz psql, naberite SELECT version(); - 4.15) Pochemu pri rabote s moim bol'shim ob"ektom ya poluchayu oshibku - "invalid large obj descriptor"? - - Vam nuzhno pri ispol'zovanii bol'shogo ob"ekta pomestit' v nachale - BEGIN WORK i v konce COMMIT, a vnutri poluchivshegosya bloka lo_open - ... lo_close. - - V nastoyaschij moment PostgreSQL trebuet, chtoby pri zakrytii - bol'shogo ob"ekta proishodilo vypolnenie tranzakcii. Takim obrazom, - pervaya zhe popytka sdelat' chto-libo s bol'shim ob"ektom, ne - soblyudaya dannogo pravila privedet k soobscheniyu invalid large obj - descriptor, tak kak kod vypolnyayuschij rabotu nad bol'shim ob"ektom - (po krajnej mere v nastoyaschij moment) budet generirovat' soobschenie - ob oshibke esli vy ne ispol'zuete tranzakciyu. - - Esli vy ispol'zuete takoj interfejs klienta kak ODBC, vam vozmozhno - ponadobitsya ustanovit' auto-commit off. - - 4.16) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat' - tekuschee vremya? - + 4.15) Kak mne sozdat' kolonku kotoraya po umolchaniyu budet soderzhat' + tekuschee vremya? + Ispol'zujte CURRENT_TIMESTAMP: CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); - 4.17) Kak mne vypolnit' vneshnee svyazyvanie? - + 4.16) Kak mne vypolnit' vneshnee svyazyvanie? + PostgreSQL podderzhivaet vneshnee svyazyvanie, ispol'zuya standartnyj sintaksis SQL. Vot dva primera: SELECT * @@ -888,8 +822,8 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); neobyazatel'nym i naznachaetsya v LEFT, RIGHT i FULL svyazyvaniyah. Obychnye svyazyvaniya nazyvayutsya INNER svyazyvaniya. - 4.18) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh? - + 4.17) Kak vypolnyat' zaprosy, ispol'zuyuschie neskol'ko baz dannyh? + Ne suschestvuet sposoba sozdat' zapros k bazam dannyh otlichnym ot tekuschej. Poskol'ku PostgreSQL zagruzhaet sistemnye katalogi specifichnye dlya bazy dannyh, neponyatno dazhe, kak dolzhen sebya @@ -900,14 +834,14 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); soedieneniya s razlichnymi bazami dannyh i takih obrazom ob"edinyat' informaciyu iz nih. - 4.19) Kak mne vernut' iz funkcii neskol'ko strok tablicy? - + 4.18) Kak mne vernut' iz funkcii neskol'ko strok tablicy? + Vy mozhete legko ispol'zovat' funkcii, vozvraschayuschie spisok, http://techdocs.postgresql.org/guides/SetReturningFunctions. - 4.20) Pochemu ya poluchayu oshibku "missing oid", kogda obraschayuts' k - vremennym tablicam v funkciyah PL/PgSQL? - + 4.19) Pochemu ya poluchayu oshibku "relation with OID #### ne suschestvuet", + kogda obraschayuts' k vremennym tablicam v funkciyah PL/PgSQL? + PL/PgSQL k`eshiruet scenarii funkcii i odin iz negativnyh `effektov `etogo sostoit v tom, chto esli funkciya PL/PgSQL obraschaetsya k vremennoj tablice i `eta tablica pozdnee udalyaetsya i peresozdaetsya, @@ -917,50 +851,21 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); EXECUTE dlya dostupa k vremennym tablicam v PL/PgSQL. Ispol'zovanie `etogo operatora zastavit zapros peregenerirovat'sya kazhdyj raz. - 4.21) Kakie opcii shifrovaniya suschestvuyut? - - * contrib/pgcrypto soderzhit mnogo funkcij shifrovaniya dlya - ispol'zovaniya v SQL zaprosah. - * Dlya shifrovaniya peredavaemyh dannyh ot klienta k serveru, na - servere v fajle postgresql.conf, opciya ssl dolzhna byt' - ustanovlena v true, v fajle pg_hba.conf dolzhna byt' - sootvetstvuyuschaya zapis' host ili hostssl i na storone klienta - sslmode ne dolzhen byt' zapreschion cherez disable. (Zametim, chto - takzhe vozmozhno ispol'zovanie nezavisimyh vneshnih shifruyuschih - transportov, takih kak stunnel ili ssh, vmesto sobstvennyh SSL - soedinenij PostgreSQL). - * Paroli pol'zovatelej k baze dannyh avtomaticheski shifruyutsya, - pri sohranenii v sistemnyh tablicah. - * Server mozhno zapustit', ispol'zuya shifrovannuyu fajlovuyu - sistemu. - _________________________________________________________________ - - Rasshireniya PostgreSQL - - 5.1) YA napisal funkciyu opredelyaemuyu pol'zovatelem. Kogda ya zapuskayu - ee v psql, pochemu ya poluchayu core dump? - - Problema mozhet zaklyuchat'sya v neskol'kih veschah. Popytajtes' - sperva protestirovat' vashu funkciyu v otdel'noj samostoyatel'noj - programme. - - 5.2) Kak ya mogu vnesti nekotorye klassnye novye tipy i funkcii v - PostgreSQL? - - Otprav'te vashi rasshireniya v spisok rassylki pgsql-hackers i oni po - vozmozhnosti budut pomescheny v podkatalog contrib/. - - 5.3) Kak mne napisat' C funkciyu, vozvraschayuschuyu stroku tablicy? - - V versiyah PostgreSQL, nachinaya s 7.3, funkcii, vozvraschayuschie - tablicy polnost'yu podderzhivayutsya v C, PL/PgSQL i SQL. Podrobnosti - smotrite v Rukovodstve Programmista. Primer vozvraschayuschej tablicu - funkcii, napisannoj na C, mozhno najti v contrib/tablefunc. - - 5.4) YA izmenil ishodnyj fajl. Pochemu posle perekompilyacii ya ne vizhu - izmenenij? - - Fajly Makefile ne imeyut pravil'nyh zavisimostej dlya include fajlov. - Vy dolzhny vypolnit' make clean i zatem make. Esli vy ispol'zuete GCC - vy mozhete ispol'zovat' opciyu --enable-depend v configure chtoby - poruchit' kompilyatoru avtomaticheski otslezhivat' zavisimosti. + 4.20) Kakie est' resheniya dlya replikacii? + + Hotya "replikaciya" -- `eto edinyj termin, est' neskol'ko raznyh + tehnologij dlya vypolneniya replikacij s raznymi osobennostyami dlya + kazhdoj. + + Replikaciya Master/slave pozvolyaet imet' odin glavnyj (master) server + dlya vypolneniya zaprosov chteniya/zapisi, v to vremya kak + podchinionnye (slave) servera mogut proizvodit' tol'ko zaprosy + chteniya/SELECT. Naibolee populyarnym resheniem dlya replikacii + master-slave v PostgreSQL yavlyaetsya Slony-I. + + Replikaciya Multi-master pozvolyaet vypolnyat' zaprosy chteniya/zapisi + na neskol'kih, repliciruemyh drug s drugom komp'yuetrah. `Eta + osobennost' takzhe privodit k potere proizvoditel'nosti, potomu chto + neobhodima sinhronizaciya izmenenij mezhdu neskol'kimi serverami. + Naibolee populyarnym resheniem dlya takoj replikacii v PostgreSQL + yavlyaetsya Pgcluster. diff --git a/doc/src/FAQ/FAQ_russian.html b/doc/src/FAQ/FAQ_russian.html index 768271eb84..a4fd9ffb4c 100644 --- a/doc/src/FAQ/FAQ_russian.html +++ b/doc/src/FAQ/FAQ_russian.html @@ -12,12 +12,12 @@

ïÔ×ÅÔÙ ÎÁ ÞÁÓÔÏ ÚÁÄÁ×ÁÅÍÙÅ ×ÏÐÒÏÓÙ ÐÏ PostgreSQL

-

äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: ðÏÎÅÄÅÌØÎÉË 14 ÆÅ×ÒÁÌÑ 23:35:09 EST 2005

+

äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: ðÏÎÅÄÅÌØÎÉË 30 ÍÁÑ 09:11:03 EDT 2005

áÎÇÌÉÊÓËÉÊ ×ÁÒÉÁÎÔ ÓÏÐÒÏ×ÏÖÄÁÅÔ: âÒÀÓ íÏÍØÑÎ (Bruce Momjian) (pgman@candle.pha.pa.us)

-

ðÅÒÅ×ÅÌ ÎÁ ÒÕÓÓËÉÊ: ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× (ðÅÒÅ×£Ì ÎÁ ÒÕÓÓËÉÊ: ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× (corochoone@perm.ru)

@@ -43,6 +43,7 @@ 1.11) ëÁË ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?
1.12) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ óõâä?
+ 1.13) ëÔÏ ÕÐÒÁ×ÌÑÅÔ PostgreSQL?

÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ

@@ -87,8 +88,9 @@ 4.8) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ É ÐÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ? ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?
- 4.9) ëÁË Ñ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ ÒÁ×ÎÏ - NULL × ËÁËÏÍ-ÌÉÂÏ ÚÁÐÒÏÓÅ?
+ 4.9) ëÁË ÍÎÅ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ ÒÁ×ÎÏ + NULL × ËÁËÏÍ-ÌÉÂÏ ÚÁÐÒÏÓÅ? íÏÇÕ Ñ ÏÔÓÏÒÔÉÒÏ×ÁÔØ ÐÏÌÑ + NULL ÉÌÉ ÎÅÔ?
4.10) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ ÔÉÐÁÍÉ?
4.11.1) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?
@@ -101,38 +103,26 @@ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÎÏ×Á ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÉ? ðÏÞÅÍÕ ÓÏÚÄÁÀÔÓÑ ÒÁÚÒÙ×Ù ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?
4.12) þÔÏ ÔÁËÏÅ OID? þÔÏ ÔÁËÏÅ - TID?
+ CTID?
4.13) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "ERROR: Memory exhausted in AllocSetAlloc()"?
4.14) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL ÚÁÐÕÝÅÎÁ?
- 4.15) ðÏÞÅÍÕ ÐÒÉ ÒÁÂÏÔÅ Ó ÍÏÉÍ ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ - Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "invalid large obj descriptor"?
- 4.16) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ + 4.15) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?
- 4.17) ëÁË ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?
- 4.18) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ + 4.16) ëÁË ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?
+ 4.17) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ ÂÁÚ ÄÁÎÎÙÈ?
- 4.19) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÔÁÂÌÉÃÙ?
- 4.20) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "missing oid", - ËÏÇÄÁ ÏÂÒÁÝÁÀÔÓØ Ë ×ÒÅÍÅÎÎÙÍ ÔÁÂÌÉÃÁÍ × ÆÕÎËÃÉÑÈ PL/PgSQL?
- 4.21) ëÁËÉÅ ÏÐÃÉÉ ÛÉÆÒÏ×ÁÎÉÑ ÓÕÝÅÓÔ×ÕÀÔ?
- -

òÁÓÛÉÒÅÎÉÑ PostgreSQL

- 5.1) ñ ÎÁÐÉÓÁÌ ÆÕÎËÃÉÀ ÏÐÒÅÄÅÌÑÅÍÕÀ ÐÏÌØÚÏ×ÁÔÅÌÅÍ. - ëÏÇÄÁ Ñ ÚÁÐÕÓËÁÀ ÅÅ × psql, ÐÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ core dump?
- 5.2) ëÁË Ñ ÍÏÇÕ ×ÎÅÓÔÉ ÎÅËÏÔÏÒÙÅ ËÌÁÓÓÎÙÅ ÎÏ×ÙÅ - ÔÉÐÙ É ÆÕÎËÃÉÉ × PostgreSQL?
- 5.3) ëÁË ÍÎÅ ÎÁÐÉÓÁÔØ C ÆÕÎËÃÉÀ, ×ÏÚ×ÒÁÝÁÀÝÕÀ - ÓÔÒÏËÕ ÔÁÂÌÉÃÙ?
- 5.4) ñ ÉÚÍÅÎÉÌ ÉÓÈÏÄÎÙÊ ÆÁÊÌ. ðÏÞÅÍÕ ÐÏÓÌÅ - ÐÅÒÅËÏÍÐÉÌÑÃÉÉ Ñ ÎÅ ×ÉÖÕ ÉÚÍÅÎÅÎÉÊ?
- + 4.18) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÔÁÂÌÉÃÙ?
+ 4.19) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "relation with OID #### + ÎÅ ÓÕÝÅÓÔ×ÕÅÔ", ËÏÇÄÁ ÏÂÒÁÝÁÀÔÓØ Ë ×ÒÅÍÅÎÎÙÍ ÔÁÂÌÉÃÁÍ × ÆÕÎËÃÉÑÈ PL/PgSQL?
+ 4.20) ëÁËÉÅ ÅÓÔØ ÒÅÛÅÎÉÑ ÄÌÑ ÒÅÐÌÉËÁÃÉÉ?
+

ïÂÝÉÅ ×ÏÐÒÏÓÙ

-

1.1) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ?

+

1.1) þÔÏ ÔÁËÏÅ PostgreSQL? ëÁË ÐÒÏÉÚÎÏÓÉÔÓÑ ÜÔÏ ÎÁÚ×ÁÎÉÅ?

PostgreSQL ÐÒÏÉÚÎÏÓÉÔÓÑ Post-Gres-Q-L (ðÏÓÔ-çÒÅÓ-ëØÀ-üÌ), ÔÁËÖÅ ÞÁÓÔÏ ÇÏ×ÏÒÑÔ ÐÒÏÓÔÏ Postgres.

@@ -151,7 +141,7 @@ http://www.PostgreSQL.org/files/documentation/faqs/FAQ_DEV.html

-

1.2) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?

+

1.2) ëÁËÏ×Ù Á×ÔÏÒÓËÉÅ ÐÒÁ×Á ÎÁ PostgreSQL?

PostgreSQL ÒÁÓÐÒÏÓÔÒÁÎÑÅÔÓÑ ÐÏ ËÌÁÓÓÉÞÅÓËÏÊ ÌÉÃÅÎÚÉÉ BSD. üÔÁ ÌÉÃÅÎÚÉÑ ÎÅ ÓÏÄÅÒÖÉÔ ÏÇÒÁÎÉÞÅÎÉÊ ÎÁ ÔÏ, ËÁË ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ @@ -163,7 +153,7 @@

óÉÓÔÅÍÁ õÐÒÁ×ÌÅÎÉÑ âÁÚÁÍÉ äÁÎÎÙÈ PostgreSQL

Portions copyright (c) 1996-2005, PostgreSQL Global Development - Group Portions Copyright (c) 1994-6 Regents of the University of + Group Portions Copyright (c) 1994-1996 Regents of the University of California

ðÒÅÄÏÓÔÁ×ÌÑÀÔÓÑ ÐÒÁ×Á ÎÁ ÉÓÐÏÌØÚÏ×ÁÎÉÅ, ËÏÐÉÒÏ×ÁÎÉÅ, ÉÚÍÅÎÅÎÉÅ @@ -187,16 +177,16 @@ "ëáë åóôø" é ëáìéæïòîéêóëéê õîé÷åòóéôåô îå ïâñúáî ðòåäïóôá÷ìñôø óïðòï÷ïöäåîéå, ðïääåòöëõ, ïâîï÷ìåîéñ, òáóûéòåîéñ éìé éúíåîåîéñ.

-

1.3) îÁ ËÁËÉÈ ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?

+

1.3) îÁ ËÁËÉÈ ÐÌÁÔÆÏÒÍÁÈ ÒÁÂÏÔÁÅÔ PostgreSQL?

ïÂÙÞÎÏ, PostgreSQL ÍÏÖÅÔ ÒÁÂÏÔÁÔØ ÎÁ ÌÀÂÏÊ ÓÏ×ÒÅÍÅÎÎÏÊ ÐÌÁÔÆÏÒÍÅ ÓÏ×ÍÅÓÔÉÍÏÊ Ó Unix. ÷ ÉÎÓÔÒÕËÃÉÉ ÐÏ ÕÓÔÁÎÏ×ËÅ, ×Ù ÎÁÊÄÅÔÅ ÓÐÉÓÏË ÔÅÈ ÐÌÁÔÆÏÒÍ, ÎÁ ËÏÔÏÒÙÈ ÂÙÌÉ ÐÒÏ×ÅÄÅÎÙ ÔÅÓÔÏ×ÙÅ ÚÁÐÕÓËÉ PostgreSQL Ë ÍÏÍÅÎÔÕ ×ÙÈÏÄÁ ÄÁÎÎÏÊ ×ÅÒÓÉÉ.

-

îÁÞÉÎÁÑ Ó ×ÅÒÓÉÉ 8.0, PostgreSQL ÂÅÚ ×ÓÑËÉÈ ÕÈÉÝÒÅÎÉÊ ÒÁÂÏÔÁÅÔ ÎÁ - ÏÐÅÒÁÃÉÏÎÎÙÈ ÓÉÓÔÅÍÁÈ Microsoft Windows, ÏÓÎÏ×ÁÎÎÙÈ ÎÁ NT, ÔÁËÉÈ ËÁË - Win2000, WinXP É Win2003. ðÁËÅÔ ÉÎÓÔÁÌÌÑÔÏÒÁ ÄÏÓÔÕÐÅÎ ÐÏ ÁÄÒÅÓÕ +

PostgreSQL ÔÁËÖÅ ÒÁÂÏÔÁÅÔ ÎÁ ÏÐÅÒÁÃÉÏÎÎÙÈ ÓÉÓÔÅÍÁÈ Microsoft + Windows, ÏÓÎÏ×ÁÎÎÙÈ ÎÁ NT, ÔÁËÉÈ ËÁË Win2000, WinXP É Win2003. + ðÁËÅÔ ÉÎÓÔÁÌÌÑÔÏÒÁ ÄÏÓÔÕÐÅÎ ÐÏ ÁÄÒÅÓÕ http://pgfoundry.org/projects/pginstaller. ÷ÅÒÓÉÉ Windows, ÏÓÎÏ×ÁÎÎÙÅ ÎÁ MS-DOS (Win95, Win98, WinMe) ÍÏÇÕÔ ÚÁÐÕÓËÁÔØ @@ -208,14 +198,13 @@ http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F.

-

1.4) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?

+

1.4) çÄÅ ÍÏÖÎÏ ×ÚÑÔØ PostgreSQL?

-

îÁÐÒÉÍÅÒ, ×ÏÓÐÏÌØÚÏ×Á×ÛÉÓØ ÁÎÏÎÉÍÎÙÍ ÄÏÓÔÕÐÏÍ ÎÁ ftp ÓÁÊÔ - PostgreSQL ftp://ftp.PostgreSQL.org/pub. - óÐÉÓÏË ÚÅÒËÁÌ ×Ù ÎÁÊÄÅÔÅ ÎÁ ÎÁÛÅÍ ÏÓÎÏ×ÎÏÍ ÓÁÊÔÅ.

+

þÅÒÅÚ ÂÒÁÕÚÅÒ, ÉÓÐÏÌØÚÕÑ + http://www.postgresql.org/ftp/ É ÞÅÒÅÚ ftp, ÉÓÐÏÌØÚÕÑ + ftp://ftp.PostgreSQL.org/pub/.

-

1.5) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?

+

1.5) çÄÅ ÐÏÌÕÞÉÔØ ÐÏÄÄÅÒÖËÕ?

óÏÏÂÝÅÓÔ×Ï PostgreSQL ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÐÏÍÏÝØ ÍÎÏÖÅÓÔ×Õ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÞÅÒÅÚ E-mail. ïÓÎÏ×ÎÏÊ web-ÓÁÊÔ ÄÌÑ ÐÏÄÐÉÓËÉ ÎÁ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ ÐÏ @@ -233,28 +222,30 @@ ÑÚÙËÁÈ. ôÁËÖÅ ÓÕÝÅÓÔ×ÕÅÔ ËÁÎÁÌ ÐÏ PostgreSQL ÎÁ ÓÅÒ×ÅÒÅ EFNet.

óÐÉÓÏË ËÏÍÍÅÒÞÅÓËÏÊ ÐÏÄÄÅÒÖËÉ ËÏÍÐÁÎÉÊ ÄÏÓÔÕÐÅÎ ÎÁ - http://techdocs.postgresql.org/companies.php.

+ + http://techdocs.postgresql.org/companies.php.

-

1.6) ëÁË ÍÎÅ ÓÏÏÂÝÉÔØ Ï ÏÛÉÂËÅ?

+

1.6) ëÁË ÍÎÅ ÓÏÏÂÝÉÔØ Ï ÏÛÉÂËÅ?

ðÏÓÅÔÉÔÅ ÓÔÒÁÎÉÞËÕ ÓÏ ÓÐÅÃÉÁÌØÎÏÊ ÆÏÒÍÏÊ ÏÔÞ£ÔÁ Ï ÏÛÉÂËÅ × PostgreSQL ÐÏ ÁÄÒÅÓÕ: - + http://www.postgresql.org/support/submitbug.

ôÁËÖÅ ÐÒÏ×ÅÒØÔÅ ÎÁÌÉÞÉÅ ÂÏÌÅÅ Ó×ÅÖÅÊ ×ÅÒÓÉÉ PostgreSQL ÎÁ ÎÁÛÅÍ - FTP ÓÁÊÔÅ - ftp://ftp.PostgreSQL.org/pub.

+ FTP ÓÁÊÔÅ + ftp://ftp.PostgreSQL.org/pub/. -

1.7) ëÁËÁÑ ÐÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ?

+

1.7) ëÁËÁÑ ÐÏÓÌÅÄÎÑÑ ×ÅÒÓÉÑ?

-

ðÏÓÌÅÄÎÉÊ ×ÙÐÕÓË PostgreSQL - ÜÔÏ ×ÅÒÓÉÑ 8.0.1

+

ðÏÓÌÅÄÎÉÊ ×ÙÐÕÓË PostgreSQL - ÜÔÏ ×ÅÒÓÉÑ 8.0.2

-

íÙ ÐÌÁÎÉÒÕÅÍ ×ÙÐÕÓËÁÔØ ÎÏ×ÙÅ ×ÅÒÓÉÉ ËÁÖÄÙÅ 10-12 ÍÅÓÑÃÅ×.

+

íÙ ÐÌÁÎÉÒÕÅÍ ×ÙÐÕÓËÁÔØ ÎÏ×ÙÅ ÓÔÁÒÛÉÅ ×ÅÒÓÉÉ ËÁÖÄÙÊ ÇÏÄ, + Á ÍÌÁÄÛÉÅ ×ÅÒÓÉÉ ËÁÖÄÙÅ ÎÅÓËÏÌØËÏ ÍÅÓÑÃÅ×.

-

1.8) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?

+

1.8) ëÁËÁÑ ÄÏËÕÍÅÎÔÁÃÉÑ ÉÍÅÅÔÓÑ × ÎÁÌÉÞÉÉ?

PostgreSQL ÓÏÄÅÒÖÉÔ ÍÎÏÇÏ ÄÏËÕÍÅÎÔÁÃÉÉ, ×ËÌÀÞÁÑ ÂÏÌØÛÏÅ ÒÕËÏ×ÏÄÓÔ×Ï, ÓÔÒÁÎÉÃÙ ÜÌÅËÔÒÏÎÎÏÇÏ ÒÕËÏ×ÏÄÓÔ×Á man É ÎÅËÏÔÏÒÙÅ ÍÁÌÅÎØËÉÅ ÔÅÓÔÏ×ÙÅ @@ -264,11 +255,13 @@

óÕÝÅÓÔ×ÕÅÔ Ä×Å ËÎÉÇÉ ÐÏ PostgreSQL ÄÏÓÔÕÐÎÙÅ ÐÏ ÁÄÒÅÓÁÍ http://www.PostgreSQL.org/docs/books/awbook.html - É http://www.commandprompt.com/ppbook/. - óÐÉÓÏË ËÎÉÇ ÐÏ PostgreSQL, ËÏÔÏÒÙÅ ÍÏÖÎÏ ËÕÐÉÔØ ÄÏÓÔÕÐÅÎ ÐÏ ÁÄÒÅÓÕ - http://techdocs.postgresql.org/techdocs/bookreviews.php. - ëÒÏÍÅ ÔÏÇÏ, ÐÏ ÁÄÒÅÓÕ http://techdocs.PostgreSQL.org/ - ×Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ËÏÌÌÅËÃÉÀ ÔÅÈÎÉÞÅÓËÉÈ ÓÔÁÔÅÊ ÐÏÓ×ÑÝÅÎÎÙÈ PostgreSQL.

+ É http://www.commandprompt.com/ppbook/. + åÓÔØ ÎÅÓËÏÌØËÏ ËÎÉÇ ÐÏ PostgreSQL, ËÏÔÏÒÙÅ ÍÏÖÎÏ ËÕÐÉÔØ. + ïÄÎÕ ÉÚ ÎÁÉÂÏÌÅÅ ÐÏÐÕÌÑÒÎÙÈ ÎÁÐÉÓÁÌ ëÏÒÒÉ äÕÇÌÁÓ (Korry Douglas). + óÐÉÓÏË ÏÂÚÏÒÏ× ÐÏ ÜÔÉÍ ËÎÉÇÁÍ ÄÏÓÔÕÐÅÎ ÐÏ ÁÄÒÅÓÕ + http://techdocs.postgresql.org/techdocs/bookreviews.php. + ëÒÏÍÅ ÔÏÇÏ, ÐÏ ÁÄÒÅÓÕ http://techdocs.PostgreSQL.org/ + ×Ù ÍÏÖÅÔÅ ÎÁÊÔÉ ËÏÌÌÅËÃÉÀ ÔÅÈÎÉÞÅÓËÉÈ ÓÔÁÔÅÊ ÐÏÓ×ÑÝÅÎÎÙÈ PostgreSQL.

ëÌÉÅÎÔ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ psql ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ËÏÍÁÎÄ \d ÄÌÑ ÏÔÏÂÒÁÖÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ ÐÏ ÔÉÐÁÍ, ÏÐÅÒÁÔÏÒÁÍ, ÆÕÎËÃÉÑÍ, ÁÇÒÅÇÁÔÁÍ É Ô.Ä. - @@ -276,56 +269,41 @@

îÁÛ ÓÁÊÔ ÓÏÄÅÒÖÉÔ ÅÝÅ ÂÏÌØÛÅ ÉÎÆÏÒÍÁÃÉÉ.

-

1.9) ëÁË ÎÁÊÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂËÁÈ - ÉÌÉ ÏÔÓÕÔÓÔ×ÕÀÝÉÈ ×ÏÚÍÏÖÎÏÓÔÑÈ?

+

1.9) ëÁË ÎÁÊÔÉ ÉÎÆÏÒÍÁÃÉÀ Ï ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂËÁÈ + ÉÌÉ ÏÔÓÕÔÓÔ×ÕÀÝÉÈ ×ÏÚÍÏÖÎÏÓÔÑÈ?

PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ÒÁÓÛÉÒÅÎÎÙÊ ÐÏÄËÌÁÓÓ SQL-92. óÍÏÔÒÉÔÅ ÎÁÛ ÓÐÉÓÏË TODO ÎÁ ÐÒÅÄÍÅÔ ÉÚ×ÅÓÔÎÙÈ ÏÛÉÂÏË, ÏÔÓÕÔÓÔ×ÕÀÝÉÈ ×ÏÚÍÏÖÎÏÓÔÅÊ É ÂÕÄÕÝÉÈ ÐÌÁÎÏ×.

-

1.10) ëÁË ÍÎÅ ÎÁÕÞÉÔØÓÑ SQL?

- -

ëÎÉÇÁ ÐÏ PostgreSQL ÎÁ http://www.PostgreSQL.org/docs/books/awbook.html - ÎÁÕÞÉÔ SQL. óÕÝÅÓÔ×ÕÅÔ ÄÒÕÇÁÑ ËÎÉÇÁ ÐÏ PostgreSQL ÎÁ - - http://www.commandprompt.com/ppbook. - åÓÔØ ÐÒÅËÒÁÓÎÙÊ ÕÞÅÂÎÉË ÎÁ http://www.intermedia.net/support/sql/sqltut.shtm, - ÎÁ - http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM, - É ÎÁ http://sqlcourse.com.

+

1.10) ëÁË ÍÎÅ ÎÁÕÞÉÔØÓÑ SQL?

-

åÝÅ ÏÄÉÎ ÕÞÅÂÎÉË - ÜÔÏ ËÎÉÇÁ "Teach Yourself SQL in 21 Days, Second Edition" - (ïÓ×ÏÊ ÓÁÍÏÓÔÏÑÔÅÌØÎÏ SQL ÚÁ 21 ÄÅÎØ, ÷ÔÏÒÁÑ ÒÅÄÁËÃÉÑ) - ÎÁ http://members.tripod.com/er4ebus/sql/index.htm

- -

íÎÏÇÉÍ ÉÚ ÎÁÛÉÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÎÒÁ×ÉÔÓÑ ËÎÉÇÁ +

÷Ï-ÐÅÒ×ÙÈ, ×ÏÚØÍÉÔÅ ÏÄÎÕ ÉÚ ËÎÉÇ ÐÏ PostgreSQL, Ï ËÏÔÏÒÙÈ ÇÏ×ÏÒÉÌÏÓØ + ×ÙÛÅ. åÝÅ ÏÄÉÎ ÕÞÅÂÎÉË - ÜÔÏ ËÎÉÇÁ "Teach Yourself SQL in 21 Days, + Second Edition" (ïÓ×ÏÊ ÓÁÍÏÓÔÏÑÔÅÌØÎÏ SQL ÚÁ 21 ÄÅÎØ, ÷ÔÏÒÁÑ ÒÅÄÁËÃÉÑ) + ÎÁ + http://members.tripod.com/er4ebus/sql/index.htm. + íÎÏÇÉÍ ÉÚ ÎÁÛÉÈ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÎÒÁ×ÉÔÓÑ ËÎÉÇÁ The Practical SQL Handbook, Bowman, Judith S., et al., Addison-Wesley. äÒÕÇÉÍ ÎÒÁ×ÉÔÓÑ The Complete Reference SQL, Groff et al., McGraw-Hill.

-

1.11) ëÁË ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?

+ åÓÔØ ÐÒÅËÒÁÓÎÙÊ ÕÞÅÂÎÉË ÎÁ http://www.intermedia.net/support/sql/sqltut.shtm, + ÎÁ + http://ourworld.compuserve.com/homepages/graeme_birchall/HTM_COOK.HTM, + É ÎÁ http://sqlcourse.com.

+ -

äÌÑ ÎÁÞÁÌÁ, ÓËÁÞÁÊÔÅ ÐÏÓÌÅÄÎÀÀ ×ÅÒÓÉÀ ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ× É ÐÒÏÞÔÉÔÅ - FAQ É ÄÏËÕÍÅÎÔÁÃÉÀ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ× PostgreSQL ÎÁ ÎÁÛÅÍ ÓÁÊÔÅ ÉÌÉ × - ÄÉÓÔÒÉÂÕÔÉ×Å. úÁÔÅÍ, ÐÏÄÐÉÛÉÔÅÓØ ÎÁ ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ pgsql-hackers É - pgsql-patches. äÁÌÅÅ, ÏÔÐÒÁ×ÌÑÊÔÅ ÉÓÐÒÁ×ÌÅÎÉÑ (patches) ×ÙÓÏËÏÇÏ - ËÁÞÅÓÔ×Á × ÓÐÉÓÏË pgsql-patches.

+

1.11) ëÁË ÐÒÉÓÏÅÄÉÎÉÔÓÑ Ë ËÏÍÁÎÄÅ ÒÁÚÒÁÂÏÔÞÉËÏ×?

-

óÕÝÅÓÔ×ÕÅÔ ÏÇÒÁÎÉÞÅÎÎÙÊ ÓÐÉÓÏË ÌÀÄÅÊ, ËÏÔÏÒÙÊ ÉÍÅÀÔ ÐÒÉ×ÅÌÅÇÉÀ - ×ÎÏÓÉÔØ ÉÚÍÅÎÅÎÉÑ × CVS ÁÒÈÉ× PostgreSQL. ëÁÖÄÙÊ - ÉÚ ÜÔÉÈ ÌÀÄÅÊ × Ó×ÏÅ ×ÒÅÍÑ ÏÔÐÒÁ×ÉÌ ÔÁË ÍÎÏÇÏ ×ÙÓÏËÏËÁÞÅÓÔ×ÅÎÎÙÈ ÉÓÐÒÁ×ÌÅÎÉÊ, - ÞÔÏ ÉÈ ÂÙÌÏ ÎÅ×ÏÚÍÏÖÎÏ ÏÓÔÁ×ÉÔØ ÂÅÚ ×ÎÉÍÁÎÉÑ É ÏÎÉ ÂÙÌÉ ÕÄÏÓÔÏÅÎÙ - ÐÒÅ×ÉÌÅÇÉÉ ×ÎÏÓÉÔØ ÉÚÍÅÎÅÎÉÑ, É ÍÙ Õ×ÅÒÅÎÙ, ÞÔÏ ÔÅ ÉÓÐÒÁ×ÌÅÎÉÑ, ËÏÔÏÒÙÅ - ÏÎÉ ×ÎÅÓÕÔ ÂÕÄÕÔ ×ÙÓÏËÏÇÏ ËÁÞÅÓÔ×Á.

+

óÍÏÔÒÉÔÅ + FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×.

-

1.12) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ - óõâä?

+ +

1.12) ëÁË ÓÒÁ×ÎÉ×ÁÔØ PostgreSQL Ó ÄÒÕÇÉÍÉ + óõâä?

óÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÍÅÔÏÄÏ× ÓÒÁ×ÎÅÎÉÑ ÐÒÏÇÒÁÍÍÎÏÇÏ ÏÂÅÓÐÅÞÅÎÉÑ: @@ -348,14 +326,8 @@

ðÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ PostgreSQL ÓÈÏÄÎÁ Ó ÄÒÕÇÉÍÉ ËÏÍÍÅÒÞÅÓËÉÍÉ óõâä É Ó óõâä Ó ÏÔËÒÙÔÙÍ ÉÓÈÏÄÎÙÍ ËÏÄÏÍ. ÷ ËÁËÉÈ-ÔÏ ×ÅÝÁÈ ÍÙ ÂÙÓÔÒÅÅ, - × ËÁËÉÈ-ÔÏ ÍÅÄÌÅÎÎÅÅ. ÷ ÓÒÁ×ÎÅÎÉÉ Ó MySQL ÉÌÉ ÌÉÎÅÊÎÏÊ - óõâä, ÍÙ ÂÙÓÔÒÅÅ, ËÏÇÄÁ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÍÎÏÇÏ, Á ÔÁËÖÅ ÎÁ ÓÌÏÖÎÙÈ - ÚÁÐÒÏÓÁÈ É ÐÒÉ ÞÔÅÎÉÉ/ÚÁÐÉÓÉ ÚÁÇÒÕÚËÉ ÚÁÐÒÏÓÁ. MySQL ÂÙÓÔÒÅÅ ÄÌÑ ÐÒÏÓÔÙÈ - SELECT ÚÁÐÒÏÓÏ×, ×ÙÐÏÌÎÑÅÍÙÈ ÎÅÂÏÌØÛÉÍ ËÏÌÉÞÅÓÔ×ÏÍ ÐÏÌØÚÏ×ÁÔÅÌÅÊ. - é ÒÁÚÕÍÅÅÔÓÑ, MySQL ÎÅ ÉÍÅÅÔ ËÁËÉÈ-ÌÉÂÏ ×ÏÚÍÏÖÎÏÓÔÅÊ ÉÚ - ÐÅÒÅÞÉÓÌÅÎÙÈ ×ÙÛÅ, × ÓÅËÃÉÉ ÷ÏÚÍÏÖÎÏÓÔÉ. - íÙ ÄÅÌÁÅÍ ÕÐÏÒ ÎÁ ÎÁÄÅÖÎÏÓÔØ É ÒÁÓÛÉÒÅÎÎÙÅ ×ÏÚÍÏÖÎÏÓÔÉ, ÎÏ ÍÙ ÔÁËÖÅ - ÐÒÏÄÏÌÖÁÅÍ Õ×ÅÌÉÞÉ×ÁÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ Ó ËÁÖÄÙÍ ×ÙÐÕÓËÏÍ.
+ × ËÁËÉÈ-ÔÏ ÍÅÄÌÅÎÎÅÅ. îÁÛÁ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ ÏÂÙÞÎÏ +/-10% ÐÏ + ÓÒÁ×ÎÅÎÉÀ Ó ÄÒÕÇÉÍÉ óõâä.
@@ -396,10 +368,25 @@ +

1.13) ëÔÏ ÕÐÒÁ×ÌÑÅÔ PostgreSQL?

+ +

åÓÌÉ ×Ù ÉÝÉÔÅ ËÁËÏÇÏ-ÔÏ ÏÓÏÂÅÎÎÏÇÏ ÞÅÌÏ×ÅËÁ, ÃÅÎÔÒÁÌØÎÙÊ + ËÏÍÉÔÅÔ ÉÌÉ ÕÐÒÁ×ÌÑÀÝÕÀ ËÏÍÐÁÎÉÀ, ÔÏ ÎÁÐÒÁÓÎÏ --- ÉÈ ÎÅÔ. + õ ÎÁÓ ÅÓÔØ ÑÄÒÏ ËÏÍÉÔÅÔÁ É ÒÁÚÒÁÂÏÔÞÉËÏ×, ÒÁÂÏÔÁÀÝÉÈ Ó CVS, + ÎÏ ÜÔÉ ÇÒÕÐÐÙ ÓÌÕÖÁÔ ÂÏÌØÛÅ ÄÌÑ ÁÄÍÉÎÉÓÔÒÁÔÉ×ÎÙÈ ÃÅÌÅÊ, ÞÅÍ + ÄÌÑ ÕÐÒÁ×ÌÅÎÉÑ. ðÒÏÅËÔ ÎÁÐÒÑÍÕÀ ÆÕÎËÃÉÏÎÉÒÕÅÔ Ó ÐÏÍÏÝØÀ + ÓÏÏÂÝÅÓÔ×Á ÒÁÚÒÁÂÏÔÞÉËÏ× É ÐÏÌØÚÏ×ÁÔÅÌÅÊ, Ë ËÏÔÏÒÏÍÕ ÍÏÖÅÔ + ÐÒÉÓÏÅÄÉÎÉÔÓÑ ËÁÖÄÙÊ. ÷Ó£ ÞÔÏ ÎÕÖÎÏ -- ÜÔÏ ÐÏÄÐÉÓÁÔØÓÑ ÎÁ + ÓÐÉÓËÉ ÒÁÓÓÙÌËÉ É ÕÞÁÓÔ×Ï×ÁÔØ × ÄÉÓËÕÓÓÉÑÈ. (ðÏÄÒÏÂÎÏÓÔÉ Ï + ÔÏÍ ËÁË ×ËÌÀÞÉÔØÓÑ × ÒÁÚÒÁÂÏÔËÕ PostgreSQL ÓÍÏÔÒÉÔÅ × + + FAQ ÄÌÑ ÒÁÚÒÁÂÏÔÞÉËÏ×.)

-

÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ

+
-

2.1) ëÁËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÅÓÔØ ÄÌÑ PostgreSQL?

+

÷ÏÐÒÏÓÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ ÐÏ ËÌÉÅÎÔÓËÏÊ ÞÁÓÔÉ

+ +

2.1) ëÁËÉÅ ÉÎÔÅÒÆÅÊÓÙ ÅÓÔØ ÄÌÑ PostgreSQL?

õÓÔÁÎÏ×ËÁ PostgreSQL ×ËÌÀÞÁÅÔ ÔÏÌØËÏ C É ×ÓÔÒÏÅÎÎÙÊ (embedded) C ÉÎÔÅÒÆÅÊÓÙ. ÷ÓÅ ÄÒÕÇÉÅ ÉÎÔÅÒÆÅÊÓÙ @@ -414,8 +401,8 @@ × ÓÅËÃÉÉ Drivers/Interfaces, Á ÔÁËÖÅ ÞÅÒÅÚ ÐÏÉÓË × éÎÔÅÒÎÅÔ.

-

2.2) ëÁËÉÅ ÉÎÓÔÒÕÍÅÎÔÙ ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ - PostgreSQL ÞÅÒÅÚ Web?

+

2.2) ëÁËÉÅ ÉÎÓÔÒÕÍÅÎÔÙ ÓÕÝÅÓÔ×ÕÀÔ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ + PostgreSQL ÞÅÒÅÚ Web?

ðÒÅËÒÁÓÎÏÅ ××ÅÄÅÎÉÅ ×Ï ×ÚÁÉÍÏÄÅÊÓÔ×ÉÅ ÂÁÚ ÄÁÎÎÙÈ É Web ÍÏÖÎÏ ÎÁÊÔÉ ÎÁ: http://www.webreview.com

@@ -423,33 +410,26 @@

äÌÑ ÉÎÔÅÇÒÁÃÉÉ Ó Web, PHP http://www.php.net Ñ×ÌÑÅÔÓÑ ÎÅÐÌÏÈÉÍ ÉÎÔÅÒÆÅÊÓÏÍ.

-

÷ ÓÌÏÖÎÙÈ ÓÌÕÞÁÑÈ, ÍÎÏÇÉÅ ÐÏÌØÚÕÀÔÓÑ Perl É CGI.pm ÉÌÉ mod_perl.

- -

2.3) åÓÔØ ÌÉ Õ PostgreSQL ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ - ÐÏÌØÚÏ×ÁÔÅÌÑ?

- -

äÁ, ÓÕÝÅÓÔ×ÕÅÔ ÎÅÓËÏÌØËÏ ÇÒÁÆÉÞÅÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ× ÄÌÑ PostgreSQL. - ïÎÉ ×ËÌÀÞÁÀÔ PgAdmin III (http://www.pgadmin.org), - PgAccess (http://www.pgaccess.org), - RHDB Admin (http://sources.redhat.com/rhdb/), - TORA (http://www.globecom.net/tora/ - ÞÁÓÔÉÞÎÏ ËÏÍÍÅÒÞÅÓËÏÅ ðï) - É Rekall ( - http://www.rekallrevealed.org/). ôÁËÖÅ ÅÓÔØ - PhpPgAdmin ( - http://phppgadmin.sourceforge.net/) - ÉÎÔÅÒÆÅÊÓ Ë PostgreSQL, - ÏÓÎÏ×ÁÎÎÙÊ ÎÁ Web.

+

÷ ÓÌÏÖÎÙÈ ÓÌÕÞÁÑÈ, ÍÎÏÇÉÅ ÐÏÌØÚÕÀÔÓÑ Perl É DBD::Pg Ó CGI.pm + ÉÌÉ mod_perl.

+ +

2.3) åÓÔØ ÌÉ Õ PostgreSQL ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ + ÐÏÌØÚÏ×ÁÔÅÌÑ?

+ +

äÁ, ÐÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ × + http://techdocs.postgresql.org/guides/GUITools.

+

÷ÏÐÒÏÓÙ ÁÄÍÉÎÉÓÔÒÉÒÏ×ÁÎÉÑ

-

3.1) ëÁË ÍÎÅ ÕÓÔÁÎÏ×ÉÔØ PostgreSQL × ÍÅÓÔÏ ÏÔÌÉÞÎÏÅ - ÏÔ /usr/local/pgsql?

+

3.1) ëÁË ÍÎÅ ÕÓÔÁÎÏ×ÉÔØ PostgreSQL × ÍÅÓÔÏ ÏÔÌÉÞÎÏÅ + ÏÔ /usr/local/pgsql?

úÁÄÁÊÔÅ ÏÐÃÉÀ --prefix ËÏÇÄÁ ÚÁÐÕÓËÁÅÔÅ configure.

-

3.2) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ Ó ÄÒÕÇÉÈ - ËÏÍÐØÀÔÅÒÏ×?

+

3.2) ëÁË ÍÎÅ ÕÐÒÁ×ÌÑÔØ ÓÏÅÄÉÎÅÎÉÑÍÉ Ó ÄÒÕÇÉÈ + ËÏÍÐØÀÔÅÒÏ×?

ðÏ ÕÍÏÌÞÁÎÉÀ, PostgreSQL ÒÁÚÒÅÛÁÅÔ ÔÏÌØËÏ ÓÏÅÄÉÎÅÎÉÑ ÎÁ ÌÏËÁÌØÎÏÊ ÍÁÛÉÎÅ ÞÅÒÅÚ ÓÏËÅÔÙ ÄÏÍÅÎÁ Unix ÉÌÉ TCP/IP ÓÏÅÄÉÎÅÎÉÑ. äÌÑ ÔÏÇÏ, ÞÔÏÂÙ @@ -458,8 +438,8 @@ host-Á×ÔÏÒÉÚÁÃÉÑ × ÆÁÊÌÅ $PGDATA/pg_hba.conf É ÐÅÒÅÓÔÁÒÔÏ×ÁÔØ ÓÅÒ×ÅÒ.

-

3.3) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ - ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?

+

3.3) ëÁËÉÅ ÎÁÓÔÒÏÊËÉ ÍÎÅ ÎÕÖÎÏ ÓÄÅÌÁÔØ ÄÌÑ ÕÌÕÞÛÅÎÉÑ + ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ?

óÕÝÅÓÔ×ÕÅÔ ÔÒÉ ÇÌÁ×ÎÙÈ ÏÂÌÁÓÔÉ, ËÏÔÏÒÙÅ ÐÏÔÅÎÃÉÁÌØÎÏ ÍÏÇÕÔ Õ×ÅÌÉÞÉÔØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ:

@@ -510,55 +490,17 @@ -

3.4) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ × - ÎÁÌÉÞÉÉ?

+

3.4) ëÁËÉÅ ×ÏÚÍÏÖÎÏÓÔÉ ÄÌÑ ÏÔÌÁÄËÉ ÅÓÔØ × + ÎÁÌÉÞÉÉ?

åÓÔØ ÍÎÏÖÅÓÔ×Ï ÕÓÔÁÎÏ×ÏË × ÎÁÓÔÒÏÊËÁÈ ÓÅÒ×ÅÒÁ, ÎÁÞÉÎÁÀÝÉÈÓÑ ÎÁ log_*, ÐÏÚ×ÏÌÑÀÝÉÈ ÐÒÏÔÏËÏÌÉÒÏ×ÁÔØ ÚÁÐÒÏÓÙ É ÓÔÁÔÉÓÔÉËÕ ÒÁÂÏÔÙ ÐÒÏÃÅÓÓÁ, ËÏÔÏÒÁÑ ÏÞÅÎØ ÐÏÌÅÚÎÁ ÄÌÑ ÏÔÌÁÄËÉ É ÉÚÍÅÒÅÎÉÑ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.

-

äÌÑ ÐÒÅÄÏÓÔÁ×ÌÅÎÉÑ ÂÏÌÅÅ ÄÅÔÁÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ ÒÁÚÒÁÂÏÔÞÉËÁÍ - ÓÅÒ×ÅÒÁ ÐÒÉ ÏÔÌÁÄËÅ ËÁËÏÊ-ÌÉÂÏ ÐÒÏÂÌÅÍÙ ÄÏÌÖÎÙ ÐÏÌØÚÏ×ÁÔØÓÑ - ÓÌÅÄÕÀÝÉÅ ÉÎÓÔÒÕËÃÉÉ.

- -

ôÁËÉÍ ÖÅ ÏÂÒÁÚÏÍ ÍÏÖÎÏ ÐÒÏÉÚ×ÏÄÉÔØ É ÏÔÌÁÄËÕ ÓÅ×ÅÒÁ, ÅÓÌÉ ÏÎ - ÒÁÂÏÔÁÅÔ ÎÅÐÒÁ×ÉÌØÎÏ. ÷Ï-ÐÅÒ×ÙÈ, ÐÒÉ ÚÁÐÕÓËÅ configure Ó - ÏÐÃÉÅÊ --enable-cassert, ÍÎÏÇÉÅ ×ÙÚÏ×Ù assert() ÐÏÚ×ÏÌÑÀÔ - ÏÔÓÌÅÖÉ×ÁÔØ ÒÁÂÏÔÕ backend ÐÒÏÃÅÓÓÁ É ÏÓÔÁÎÏ×ËÕ ÐÒÏÇÒÁÍÍÙ ÐÒÉ - ×ÏÚÎÉËÎÏ×ÅÎÉÉ ËÁËÉÈ-ÌÉÂÏ ÎÅÏÖÉÄÁÎÎÏÓÔÅÊ.

- -

åÓÌÉ postmaster ÎÅ ÚÁÐÕÝÅÎ, ×Ù ÍÏÖÅÔÅ ÚÁÐÕÓÔÉÔØ - postgres backend ÉÚ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ É ××ÅÓÔÉ ×ÁÛ ÏÐÅÒÁÔÏÒ - SQL ÎÁÐÒÑÍÕÀ. üÔÏ ÒÅËÏÍÅÎÄÕÅÔÓÑ ÔÏÌØËÏ ÄÌÑ - ÃÅÌÅÊ ÏÔÌÁÄËÉ. úÁÍÅÔÉÍ, ÞÔÏ × ÜÔÏÍ ÒÅÖÉÍÅ, ÚÁÐÒÏÓ ÚÁ×ÅÒÛÁÅÔÓÑ ÓÉÍ×ÏÌÏÍ - ÎÏ×ÏÊ ÓÔÒÏËÉ, Á ÎÅ ÔÏÞËÏÊ Ó ÚÁÐÑÔÏÊ. åÓÌÉ ×Ù ÐÒÏÉÚ×ÏÄÉÌÉ ËÏÍÐÉÌÑÃÉÀ - Ó ÏÔÌÁÄÏÞÎÙÍÉ ÓÉÍ×ÏÌÁÍÉ, ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÌÀÂÏÊ ÏÔÌÁÄÞÉË, ÞÔÏÂÙ - ÐÏÓÍÏÔÒÅÔØ, ÞÔÏ ÓÌÕÞÉÌÏÓØ. ðÏÓËÏÌØËÕ backend ÚÁÐÕÓËÁÅÔÓÑ ÎÅ ÉÚ - postmaster, ÏÎ ÎÅ ÚÁÐÕÓËÁÅÔÓÑ × ÉÄÅÎÔÉÞÎÏÍ ÏËÒÕÖÅÎÉÉ É ÚÎÁÞÉÔ - ÐÒÏÂÌÅÍÙ ÉÔÅÒÁÃÉÊ ÂÌÏËÉÒÏ×ÏË/backend ÎÅ ÍÏÇÕÔ ÂÙÔØ ×ÏÓÐÒÏÉÚ×ÅÄÅÎÙ.

- -

åÓÌÉ postmaster ÚÁÐÕÝÅÎ, ÚÁÐÕÓÔÉÔÅ psql × ÏÄÎÏÍ - ÏËÎÅ, ÚÁÔÅÍ ÎÁÊÄÉÔÅ PID ÐÒÏÃÅÓÓÁ postgres, - ÉÓÐÏÌØÚÕÅÍÙÊ psql, ÉÓÐÏÌØÚÕÑ SELECT pg_backend_pid(). - éÓÐÏÌØÚÕÊÔÅ ÏÔÌÁÄÞÉË ÄÌÑ ÐÏÄËÌÀÞÅÎÉÑ Ë postgres PID. - ÷Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ ÔÏÞËÉ ÐÒÅÒÙ×ÁÎÉÑ × ÏÔÌÁÄÞÉËÅ É ÚÁÐÕÓÔÉÔØ ÚÁÐÒÏÓ - ÉÚ psql. åÓÌÉ - ×Ù ÐÒÏÉÚ×ÏÄÉÔÅ ÏÔÌÁÄËÕ ÚÁÐÕÓËÁ postgres, ×Ù ÍÏÖÅÔÅ ÕÓÔÁÎÏ×ÉÔØ - PGOPTIONS="-W n", É ÚÁÔÅÍ ÚÁÐÕÓÔÉÔØ psql. üÔÁ ÏÐÃÉÑ ÐÒÉ×ÏÄÉÔ - Ë ÚÁÄÅÒÖËÅ ÐÒÏÃÅÓÓÁ ÚÁÐÕÓËÁ ÎÁ n ÓÅËÕÎÄ, × ÔÅÞÅÎÉÅ ËÏÔÏÒÙÈ - ×Ù ÍÏÖÅÔÅ ÐÏÄËÌÀÞÉÔØ Ë ÐÒÏÃÅÓÓÕ ÏÔÌÁÄÞÉË, ÕÓÔÁÎÏ×ÉÔØ ÌÀÂÙÅ ÔÏÞËÉ - ÐÒÅÒÙ×ÁÎÉÑ É ÐÒÏÄÏÌÖÉÔØ ÚÁÐÕÓË.

- -

÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÓËÏÍÐÉÌÉÒÏ×ÁÔØ PostgreSQL Ó ÐÒÏÆÉÌÉÒÏ×ÁÎÉÅÍ ÄÌÑ - ÔÏÇÏ, ÞÔÏÂÙ Õ×ÉÄÅÔØ ËÁËÉÅ ÆÕÎËÃÉÉ ÓËÏÌØËÏ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÑÀÔÓÑ. - æÁÊÌÙ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ backend'Á ÎÁÈÏÄÑÔÓÑ × ËÁÔÁÌÏÇÅ - pgsql/data/base/dbname. æÁÊÌ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ ËÌÉÅÎÔÁ - ÂÕÄÅÔ ÐÏÍÅÝÅÎ × ÔÅËÕÝÉÊ ËÁÔÁÌÏÇ ËÌÉÅÎÔÁ. ÷ Linux ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ - ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ ÔÒÅÂÕÅÔÓÑ ËÏÍÐÉÌÑÃÉÉ Ó -DLINUX_PROFILE.

- -

3.5) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ "Sorry, too - many clients" ËÏÇÄÁ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?

+ +

3.5) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ "Sorry, too + many clients" ËÏÇÄÁ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?

÷Ù ÄÏÓÔÉÇÌÉ ÕÓÔÁÎÏ×ÌÅÎÎÏÇÏ ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÇÒÁÎÉÞÅÎÉÑ ÎÁ 100 ÓÅÓÓÉÊ ÐÏÄËÌÀÞÅÎÉÑ Ë ÂÁÚÅ ÄÁÎÎÙÈ. ÷ÁÍ ÎÅÏÂÈÏÄÉÍÏ Õ×ÅÌÉÞÉÔØ ÄÌÑ @@ -567,11 +509,11 @@ É ÐÅÒÅÓÔÁÒÔÏ×ÁÔØ postmaster.

-

3.6) ðÏÞÅÍÕ ÎÅÏÂÈÏÄÉÍÏ ÄÅÌÁÔØ dump É restore ÐÒÉ - ÏÂÎÏ×ÌÅÎÉÉ ×ÙÐÕÓËÏ× PostgreSQL?

+

3.6) ðÏÞÅÍÕ ÎÅÏÂÈÏÄÉÍÏ ÄÅÌÁÔØ dump É restore ÐÒÉ + ÏÂÎÏ×ÌÅÎÉÉ ×ÙÐÕÓËÏ× PostgreSQL?

òÁÚÒÁÂÏÔÞÉËÉ PostgreSQL ÄÅÌÁÀÔ ÔÏÌØËÏ ÎÅÂÏÌØÛÉÅ ÉÚÍÅÎÅÎÉÑ ÍÅÖÄÕ - ÐÏÄ×ÙÐÕÓËÁÍÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ ÏÂÎÏ×ÌÅÎÉÅ Ó ×ÅÒÓÉÉ 7.4 ÄÏ 7.4.1 ÎÅ ÔÒÅÂÕÅÔ + ÐÏÄ×ÙÐÕÓËÁÍÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ ÏÂÎÏ×ÌÅÎÉÅ Ó ×ÅÒÓÉÉ 7.4.0 ÄÏ 7.4.1 ÎÅ ÔÒÅÂÕÅÔ ×ÙÐÏÌÎÅÎÉÑ dump É restore. ïÄÎÁËÏ ÐÒÉ ×ÙÈÏÄÅ ÏÞÅÒÅÄÎÏÇÏ ×ÙÐÕÓËÁ (Ô.Å. ÐÒÉ ÏÂÎÏ×ÌÅÎÉÉ ÎÁÐÒÉÍÅÒ, Ó 7.3 ÎÁ 7.4) ÞÁÓÔÏ ÍÅÎÑÅÔÓÑ ×ÎÕÔÒÅÎÎÉÊ ÆÏÒÍÁÔ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉÃ É ÆÁÊÌÏ× ÄÁÎÎÙÈ. üÔÉ ÉÚÍÅÎÅÎÉÑ ÞÁÓÔÏ ÎÏÓÑÔ @@ -585,8 +527,10 @@ ÉÓÐÏÌØÚÏ×ÁÎÉÑ dump/restore. ëÏÍÍÅÎÔÁÒÉÉ Ë ×ÙÐÕÓËÕ ÇÏ×ÏÒÉÔ ËÏÇÄÁ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ pg_upgrade ÄÌÑ ÜÔÏÇÏ ×ÙÐÕÓËÁ.

-

3.7) ëÁËÏÅ ËÏÍÐØÀÔÅÒÎÏÅ "ÖÅÌÅÚÏ" Ñ ÄÏÌÖÅÎ - ÉÓÐÏÌØÚÏ×ÁÔØ?

+ +

3.7) ëÁËÏÅ ËÏÍÐØÀÔÅÒÎÏÅ "ÖÅÌÅÚÏ" Ñ ÄÏÌÖÅÎ + ÉÓÐÏÌØÚÏ×ÁÔØ?

+

ðÏÓËÏÌØËÕ "ÖÅÌÅÚÏ" ÐÅÒÓÏÎÁÌØÎÙÈ ËÏÍÐØÀÔÅÒÏ× Ñ×ÌÑÅÔÓÑ ÎÁÉÂÏÌÅÅ ÓÏ×ÍÅÓÔÉÍÙÍ, ÌÀÄÉ ÓËÌÏÎÎÙ ×ÅÒÉÔØ, ÞÔÏ ÔÁËÏÅ "ÖÅÌÅÚÏ" ÉÍÅÅÔ ÏÄÉÎÁËÏ×ÏÅ ËÁÞÅÓÔ×Ï. üÔÏ ÎÅ ÔÁË. ðÁÍÑÔØ ECC, SCSI É ËÁÞÅÓÔ×ÅÎÎÙÅ ÍÁÔÅÒÉÎÓËÉÅ ÐÌÁÔÙ @@ -600,26 +544,27 @@

÷ÏÐÒÏÓÙ ÜËÓÐÌÕÁÔÁÃÉÉ

-

4.1) ëÁË ×ÙÐÏÌÎÉÔØ SELECT ÔÏÌØËÏ - ÄÌÑ ÎÅÓËÏÌØËÉÈ ÐÅÒ×ÙÈ ÓÔÒÏÞÅË ÚÁÐÒÏÓÁ? ðÒÏÉÚ×ÏÌØÎÏÊ ÓÔÒÏËÉ?

+

4.1) ëÁË ×ÙÐÏÌÎÉÔØ SELECT ÔÏÌØËÏ + ÄÌÑ ÎÅÓËÏÌØËÉÈ ÐÅÒ×ÙÈ ÓÔÒÏÞÅË ÚÁÐÒÏÓÁ? ðÒÏÉÚ×ÏÌØÎÏÊ ÓÔÒÏËÉ?

äÌÑ ÐÏÌÕÞÅÎÉÑ ÔÏÌØËÏ ÎÅÓËÏÌØËÉÈ ÓÔÒÏË, ÅÓÌÉ ×Ù ÚÎÁÅÔÅ ÉÈ ËÏÌÉÞÅÓÔ×Ï - ÎÁ ÍÏÍÅÎÔ ×ÙÐÏÌÎÅÎÉÑ SELECT ÉÓÐÏÌØÚÕÊÔÅ LIMIT. + ÎÁ ÍÏÍÅÎÔ ×ÙÐÏÌÎÅÎÉÑ SELECT ÉÓÐÏÌØÚÕÊÔÅ LIMIT.

åÓÌÉ ÅÓÔØ ËÁËÏÊ-ÌÉÂÏ ÉÎÄÅËÓ, ËÏÔÏÒÙÊ ÓÏ×ÐÁÄÁÅÔ Ó ORDER BY, ÔÏ ×ÏÚÍÏÖÎÏ, ÞÔÏ ×ÅÓØ ÚÁÐÒÏÓ ×ÙÐÏÌÎÅÎ É ÎÅ ÂÕÄÅÔ. åÓÌÉ ×Ù ÎÅ ÚÎÁÅÔÅ ËÏÌÉÞÅÓÔ×Á ÎÅÏÂÈÏÄÉÍÙÈ ÓÔÒÏË ÎÁ ÍÏÍÅÎÔ ×ÙÐÏÌÎÅÎÉÑ SELECT, ÉÓÐÏÌØÚÕÊÔÅ ËÕÒÓÏÒ É FETCH.

-

To SELECT a random row, use:

-
    SELECT col
+    

To SELECT a random row, use:

+
    SELECT col
     FROM tab
     ORDER BY random()
     LIMIT 1;
-
+
-

4.2) ëÁË ÍÎÅ ÎÁÊÔÉ ËÁËÉÅ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ, + +

4.2) ëÁË ÍÎÅ ÎÁÊÔÉ ËÁËÉÅ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ, ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ ÓÕÝÅÓÔ×ÕÀÔ? ëÁË ÍÎÅ Õ×ÉÄÅÔØ ÚÁÐÒÏÓÙ, - ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÅÔ psql ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ?

+ ËÏÔÏÒÙÅ ÉÓÐÏÌØÚÕÅÔ psql ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÜÔÏÊ ÉÎÆÏÒÍÁÃÉÉ?

þÔÏÂÙ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÔÁÂÌÉÃÙ × psql, ÉÓÐÏÌØÚÕÊÔÅ ËÏÍÁÎÄÕ \dt. ðÏÌÎÙÊ ÓÐÉÓÏË ËÏÍÁÎÄ × psql ×Ù ÍÏÖÅÔÅ ÐÏÌÕÞÉÔØ, ÉÓÐÏÌØÚÕÑ \?. @@ -642,7 +587,7 @@ ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ ÉÚ ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉà ÂÁÚÙ ÄÁÎÎÙÈ.

-

4.3) ëÁË ÉÚÍÅÎÉÔØ ÔÉÐ ÄÁÎÎÙÈ ËÏÌÏÎËÉ?

+

4.3) ëÁË ÉÚÍÅÎÉÔØ ÔÉÐ ÄÁÎÎÙÈ ËÏÌÏÎËÉ?

÷ 8.0 É ÂÏÌÅÅ ÐÏÚÄÎÉÈ ×ÅÒÓÉÑÈ, ÉÚÍÅÎÅÎÉÅ ÔÉÐÁ ËÏÌÏÎËÉ ×ÙÐÏÌÎÑÅÔÓÑ ÏÞÅÎØ ÌÅÇËÏ ÞÅÒÅÚ ALTER TABLE ALTER COLUMN TYPE.

@@ -656,13 +601,12 @@ COMMIT; -

4.4) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÓÔÒÏË × ÔÁÂÌÉÃÅ, - ÔÁÂÌÉÃ É ÂÁÚÙ ÄÁÎÎÙÈ?

+

4.4) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÓÔÒÏË × ÔÁÂÌÉÃÅ, + ÔÁÂÌÉÃ É ÂÁÚÙ ÄÁÎÎÙÈ?

óÕÝÅÓÔ×ÕÀÔ ÓÌÅÄÕÀÝÉÅ ÏÇÒÁÎÉÞÅÎÉÑ:

- @@ -691,7 +635,6 @@ -
íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÂÁÚÙ? ÎÅÏÇÒÁÎÉÞÅÎ (ÓÕÝÅÓÔ×ÕÀÔ ÂÁÚÙ ÎÁ 32 TB)íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÉÎÄÅËÓÏ× × ÔÁÂÌÉÃÅ? ÎÅÏÇÒÁÎÉÞÅÎÏ

@@ -709,8 +652,8 @@ ÍÏÇÕÔ ÂÙÔØ Õ×ÅÌÉÞÅÎÙ × ÞÅÔÙÒÅ ÒÁÚÁ, ÅÓÌÉ ÒÁÚÍÅÒ ÂÌÏËÁ ÐÏ ÕÍÏÌÞÁÎÉÀ ÂÕÄÅÔ Õ×ÅÌÉÞÅÎ ÄÏ 32k.

-

4.5) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ - ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?

+

4.5) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ + ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?

óõâä PostgreSQL ÍÏÖÅÔ ÐÏÔÒÅÂÏ×ÁÔØÓÑ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á ÄÏ 5 ÒÁÚ ÂÏÌØÛÅ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÐÒÏÓÔÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ.

@@ -747,10 +690,10 @@ ÚÁÎÉÍÁÀÔ ÏÞÅÎØ ÍÁÌÏ ÍÅÓÔÁ.

-

4.6) ðÏÞÅÍÕ ÍÏÉ ÚÁÐÒÏÓÙ ÒÁÂÏÔÁÀÔ ÍÅÄÌÅÎÏ? ðÏÞÅÍÕ - ÏÎÉ ÎÅ ÉÓÐÏÌØÚÕÀÔ ÍÏÉ ÉÎÄÅËÓÙ?

+

4.6) ðÏÞÅÍÕ ÍÏÉ ÚÁÐÒÏÓÙ ÒÁÂÏÔÁÀÔ ÍÅÄÌÅÎÏ? ðÏÞÅÍÕ + ÏÎÉ ÎÅ ÉÓÐÏÌØÚÕÀÔ ÍÏÉ ÉÎÄÅËÓÙ?

-

éÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ËÁÖÄÏÇÏ ÚÁÐÒÏÓÁ Á×ÔÏÍÁÔÉÞÅÓËÉ. ïÎÉ +

éÎÄÅËÓÙ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ËÁÖÄÏÇÏ ÚÁÐÒÏÓÁ. ïÎÉ ÉÓÐÏÌØÚÕÀÔÓÑ ÔÏÌØËÏ ÅÓÌÉ ÔÁÂÌÉÃÁ ÂÏÌØÛÅ ÍÉÎÉÍÁÌØÎÏÇÏ ÒÁÚÍÅÒÁ É ÚÁÐÒÏÓ ×ÙÂÉÒÁÅÔ ÔÏÌØËÏ ÍÁÌÅÎØËÉÊ ÐÒÏÃÅÎÔ ÓÔÒÏË × ÔÁÂÌÉÃÅ. ôÁË ÕÓÔÒÏÅÎÏ, ÐÏÔÏÍÕ ÞÔÏ ÄÏÓÔÕÐ Ë ÄÉÓËÕ Ó ÐÒÉÍÅÎÅÎÉÅÍ ÒÁÎÄÏÍÉÚÁÃÉÉ ÐÒÉ ÓËÁÎÉÒÏ×ÁÎÉÉ @@ -774,17 +717,18 @@ É × ÜÔÏÍ ÓÌÕÞÁÅ ÉÎÄÅËÓ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ, ÐÏÓËÏÌØËÕ ÐÒÉ ×ÙÐÏÌÎÅÎÉÉ ÂÕÄÅÔ ×ÏÚ×ÒÁÝÁÔØÓÑ ÎÅÂÏÌØÛÁÑ ÞÁÓÔØ ÔÁÂÌÉÃÙ. æÁËÔÉÞÅÓËÉ MAX() É MIN() ÎÅ ÉÓÐÏÌØÚÕÀÔ ÉÎÄÅËÓÙ, ÎÏ ÉÎÄÅËÓ ÉÓÐÏÌØÚÕÅÔÓÑ ÐÒÉ ÐÏÓÔÒÏÅÎÉÉ ÚÁÐÒÏÓÏ× Ó - ORDER BY É LIMIT:

-
+    ORDER BY É LIMIT:
+
     SELECT col
     FROM tab
     ORDER BY col [ DESC ]
     LIMIT 1;
-
+

åÓÌÉ ×ÁÍ ËÁÖÅÔÓÑ, ÞÔÏ ÏÐÔÉÍÉÚÁÔÏÒ ÎÅËÏÒÒÅËÔÎÏ ×ÙÂÉÒÁÅÔ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÙÊ ÐÅÒÅÂÏÒ, ÉÓÐÏÌØÚÕÊÔÅ SET enable_seqscan TO 'off' É - ÚÁÐÕÓÔÉÔÅ ÔÅÓÔÙ, ÞÔÏÂÙ Õ×ÉÄÅÔØ, ÎÅ ÓÔÁÌÏ-ÌÉ ÓËÁÎÉÒÏ×ÁÎÉÅ ÉÎÄÅËÓÏ× ÂÙÓÔÒÅÅ. + ÚÁÐÕÓÔÉÔÅ ÚÁÐÒÏÓ ÓÎÏ×Á, ÞÔÏÂÙ Õ×ÉÄÅÔØ, ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÌÉ ÓËÁÎÉÒÏ×ÁÎÉÅ + ÉÎÄÅËÓÏ× ÂÙÓÔÒÅÅ.

ëÏÇÄÁ ÉÓÐÏÌØÚÕÀÔÓÑ ÏÐÅÒÁÃÉÉ Ó ÛÁÂÌÏÎÁÍÉ, ÎÁÐÒÉÍÅÒ LIKE @@ -810,15 +754,15 @@ ÅÓÌÉ ÔÉÐÙ ÄÁÎÎÙÈ ÔÏÞÎÏ ÎÅ ÓÏ×ÐÁÄÁÌÉ Ó ÉÎÄÅËÓÎÙÍÉ ÔÉÐÁÍÉ ËÏÌÏÎÏË. üÔÏ ÏÓÏÂÅÎÎÏ ËÁÓÁÌÏÓØ int2, int8 É numeric ÉÎÄÅËÓÏ× ËÏÌÏÎÏË.

-

4.7) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ - ÍÏÊ ÚÁÐÒÏÓ?

+

4.7) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ + ÍÏÊ ÚÁÐÒÏÓ?

óÍÏÔÒÉÔÅ ÓÔÒÁÎÉÃÕ ÒÕËÏ×ÏÄÓÔ×Á ÐÏÓ×ÑÝÅÎÎÕÀ EXPLAIN.

-

4.8) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ +

4.8) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ É ÐÏÉÓË ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ? - ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?

+ ëÁË ÍÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÄÅËÓ ÄÌÑ ÐÏÉÓËÁ ÎÅÚÁ×ÉÓÉÍÏÇÏ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË×?

ïÐÅÒÁÔÏÒ ~ ÐÒÏÉÚ×ÏÄÉÔ ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ, Á ÏÐÅÒÁÔÏÒ ~* ÐÒÏÉÚ×ÏÄÉÔ ÎÅÚÁ×ÉÓÉÍÙÊ ÏÔ ÒÅÇÉÓÔÒÁ ÂÕË× ÐÏÉÓË ÒÅÇÕÌÑÒÎÏÇÏ @@ -832,23 +776,40 @@ WHERE lower(col) = 'abc'; -

üÔÁ ËÏÎÓÔÒÕËÃÉÑ ÎÅ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÁÎÄÁÒÔÎÙÊ ÉÎÄÅËÓ. ïÄÎÁËÏ, ÅÓÌÉ - ×Ù ÓÏÚÄÁÄÉÔÅ ÉÎÄÅËÓ ×ÙÒÁÖÅÎÉÑ, ÏÎ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ:

+ üÔÁ ËÏÎÓÔÒÕËÃÉÑ ÎÅ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÔÁÎÄÁÒÔÎÙÊ ÉÎÄÅËÓ. ïÄÎÁËÏ, ÅÓÌÉ + ×Ù ÓÏÚÄÁÄÉÔÅ ÉÎÄÅËÓ ×ÙÒÁÖÅÎÉÑ, ÏÎ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÎ:
     CREATE INDEX tabindex ON tab (lower(col));
 
-

4.9) ëÁË Ñ ÍÏÇÕ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ - ÒÁ×ÎÏ NULL × ËÁËÏÍ-ÌÉÂÏ ÚÁÐÒÏÓÅ?

+

4.9) ëÁË ÍÎÅ ÏÐÒÅÄÅÌÉÔØ, ÞÔÏ ÚÎÁÞÅÎÉÅ ÐÏÌÑ ÒÁ×ÎÏ + NULL × ËÁËÏÍ-ÌÉÂÏ ÚÁÐÒÏÓÅ? íÏÇÕ Ñ ÏÔÓÏÒÔÉÒÏ×ÁÔØ ÐÏÌÑ + NULL ÉÌÉ ÎÅÔ?

÷Ù ÐÒÏÓÔÏ ÓÒÁ×ÎÉ×ÁÅÔÅ ÚÎÁÞÅÎÉÅ Ó IS NULL É - IS NOT NULL.

+ IS NOT NULL, ËÁË ÚÄÅÓØ:

+
+   SELECT *
+   FROM tab
+   WHERE col IS NULL;
+
+ +

þÔÏÂÙ ÏÔÓÏÒÔÉÒÏ×ÁÔØ ÄÁÎÎÙÅ ÐÏ ÚÎÁÞÅÎÉÀ ÉÓÐÏÌØÚÕÊÔÅ ÍÏÄÉÆÉËÁÔÏÒÙ + IS NULL É IS NOT NULL × ×ÙÒÁÖÅÎÉÉ + ORDER BY. ëÏÇÄÁ ÏÎÉ ÂÕÄÕÔ ÇÅÎÅÒÉÒÏ×ÁÔØ ÚÎÁÞÅÎÉÑ + ÉÓÔÉÎÁ, ÔÏ ÐÒÉ ÓÏÒÔÉÒÏ×ËÅ ÏÎÉ ÂÕÄÕÔ ×ÙÛÅ, ÞÅÍ ÚÎÁÞÅÎÉÑ + ÌÏÖØ, ÔÁË ÞÔÏ ÚÁÐÉÓÉ Ó NULL ÂÕÄÕÔ × ÏÔÓÏÒÔÉÒÏ×ÁÎÎÏÍ ÓÐÉÓËÅ Ó×ÅÒÈÕ:

-

4.10) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ - ÔÉÐÁÍÉ?

+
+   SELECT *
+   FROM tab
+   ORDER BY (col IS NOT NULL);
+
+ +

4.10) ëÁËÏ×Ù ÏÔÌÉÞÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÓÉÍ×ÏÌØÎÙÍÉ + ÔÉÐÁÍÉ?

- @@ -879,7 +840,6 @@ -
ôÉÐ ÷ÎÕÔÒÅÎÎÅÅ ÉÍÑchar ÏÄÉÎ ÓÉÍ×ÏÌ
@@ -889,8 +849,7 @@

ðÅÒ×ÙÅ ÞÅÔÙÒÅ ÔÉÐÁ Ñ×ÌÑÀÔÓÑ "varlena" ÔÉÐÁÍÉ (Ô.Å., ÐÅÒ×ÙÅ ÞÅÔÙÒÅ ÂÁÊÔÁ ÎÁ ÄÉÓËÅ Ñ×ÌÑÀÔÓÑ ÄÌÉÎÎÏÊ, ÚÁ ËÏÔÏÒÏÊ ÓÌÅÄÕÀÔ ÄÁÎÎÙÅ). ôÁËÉÍ ÏÂÒÁÚÏÍ, ÆÁËÔÉÞÅÓËÉ ÉÓÐÏÌØÚÕÅÍÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÂÏÌØÛÅ, ÞÅÍ - ÏÂÏÚÎÁÞÅÎÎÙÊ ÒÁÚÍÅÒ. ïÄÎÁËÏ, ÜÔÉ ÔÉÐÙ ÄÁÎÎÙÈ ÔÁËÖÅ ÐÏÄÄÁÀÔÓÑ ÓÖÁÔÉÀ - ÉÌÉ ÍÏÇÕÔ ÂÙÔØ ÓÏÈÒÁÎÅÎÙ ÎÅ × ÓÔÒÏËÏÍ ×ÉÄÅ ÞÅÒÅÚ TOAST, + ÏÂÏÚÎÁÞÅÎÎÙÊ ÒÁÚÍÅÒ. ïÄÎÁËÏ, ÄÌÉÎÎÙÅ ÚÎÁÞÅÎÉÑ ÔÁËÖÅ ÓÖÉÍÁÀÔÓÑ, ÔÁË ÞÔÏ ÚÁÎÉÍÁÅÍÏÅ ÄÉÓËÏ×ÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÍÏÖÅÔ ÔÁËÖÅ ÂÙÔØ É ÍÅÎØÛÅ, ÞÅÍ ÏÖÉÄÁÌÏÓØ.

@@ -906,8 +865,8 @@ ËÏÔÏÒÙÈ ÍÏÇÕÔ ×ËÌÀÞÁÔØ NULL ÂÁÊÔÙ. ÷ÓÅ ÔÉÐÙ ÏÐÉÓÁÎÎÙÅ ÚÄÅÓØ, ÉÍÅÀÔ ÓÈÏÄÎÙÅ ÈÁÒÁËÔÅÒÉÓÔÉËÉ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.

-

4.11.1) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ - serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?

+

4.11.1) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ÐÏÌÅ + serial/Ó-Á×ÔÏ-Õ×ÅÌÉÞÅÎÉÅÍ?

PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ÔÉÐ ÄÁÎÎÙÈ SERIAL. ïÎ Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÚÄÁÅÔ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ. îÁÐÒÉÍÅÒ:

@@ -918,7 +877,7 @@ ); -

Á×ÔÏÍÁÔÉÞÅÓËÉ ÔÒÁÎÓÌÉÒÕÅÔÓÑ ×:

+ Á×ÔÏÍÁÔÉÞÅÓËÉ ÔÒÁÎÓÌÉÒÕÅÔÓÑ ×:
     CREATE SEQUENCE person_id_seq;
     CREATE TABLE person ( 
@@ -930,8 +889,8 @@
     óÍÏÔÒÉÔÅ ÐÏÄÒÏÂÎÏÓÔÉ Ï ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÑÈ ÎÁ ÓÔÒÁÎÉÃÅ ÒÕËÏ×ÏÄÓÔ×Á
     ÐÏÓ×ÑÝÅÎÎÏÊ create_sequence. 
 
-    

4.11.2) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ - SERIAL?

+

4.11.2) ëÁË ÍÎÅ ÐÏÌÕÞÉÔØ ÚÎÁÞÅÎÉÅ ÐÒÉ ×ÓÔÁ×ËÅ + SERIAL?

ïÄÉÎ ÉÚ ÓÐÏÓÏÂÏ× ÓÏÓÔÏÉÔ × ÐÏÌÕÞÅÎÉÉ ÓÌÅÄÕÀÝÅÇÏ ÚÎÁÞÅÎÉÑ SERIAL ÉÚ ÏÂßÅËÔÁ sequence Ó ÐÏÍÏÝØÀ ÆÕÎËÃÉÉ @@ -960,16 +919,16 @@

-

4.11.3) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ +

4.11.3) îÅ ÍÏÖÅÔ ÌÉ ÐÏÌÕÞÉÔØÓÑ ÔÁË, ÞÔÏ ÉÓÐÏÌØÚÏ×ÁÎÉÅ currval() É nextval() ÐÒÉ×ÅÄÅÔ Ë - ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?

+ ÚÁÃÉËÌÉÒÏ×ÁÎÉÀ Ó ÄÒÕÇÉÍÉ ÐÏÌØÚÏ×ÁÔÅÌÑÍÉ?

îÅÔ. currval() ×ÏÚ×ÒÁÝÁÅÔ ÔÅËÕÝÅÅ ÚÎÁÞÅÎÉÅ, ÎÁÚÎÁÞÅÎÎÏÅ ×ÁÛÅÊ ÓÅÓÓÉÅÊ, Á ÎÅ ÄÒÕÇÉÍÉ ÓÅÓÓÉÑÍÉ.

-

4.11.4) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ +

4.11.4) ðÏÞÅÍÕ ÞÉÓÌÁ ÉÚ ÍÏÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ ÓÎÏ×Á ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÉ? ðÏÞÅÍÕ ÓÏÚÄÁÀÔÓÑ ÒÁÚÒÙ×Ù - ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?

+ ÐÒÉ ÎÕÍÅÒÁÃÉÉ × ËÏÌÏÎËÅ, ÇÄÅ Ñ ÉÓÐÏÌØÚÕÀ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ/SERIAL?

äÌÑ ÒÅÁÌÉÚÁÃÉÉ ËÏÎËÕÒÅÔÎÏÓÔÉ, ÚÎÁÞÅÎÉÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÅÊ, ÐÒÉ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ×ÙÄÁÀÔÓÑ ×Ï ×ÒÅÍÑ ÚÁÐÕÓËÁ ÔÒÁÎÚÁËÃÉÊ É ÎÅ ÂÌÏËÉÒÕÀÔÓÑ @@ -977,8 +936,8 @@ ÎÕÍÅÒÁÃÉÉ ÐÒÉ ÏÔÍÅÎÅ ÔÒÁÎÚÁËÃÉÊ.

-

4.12) þÔÏ ÔÁËÏÅ OID? þÔÏ ÔÁËÏÅ - TID?

+

4.12) þÔÏ ÔÁËÏÅ OID? þÔÏ ÔÁËÏÅ + CTID?

ëÁÖÄÁÑ, ÓÏÚÄÁ×ÁÅÍÁÑ × PostgreSQL ÔÁÂÌÉÞÎÁÑ ÓÔÒÏËÁ, ÐÏÌÕÞÁÅÔ ÕÎÉËÁÌØÎÙÊ ÉÎÄÅÎÔÉÆÉËÁÔÏÒ OID ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÓÌÕÞÁÑ ËÏÇÄÁ @@ -993,17 +952,17 @@ OID, ÐÏÔÏÍÕ ÞÔÏ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ SERIAL ÕÎÉËÁÌØÎÙ ÔÏÌØËÏ ×ÎÕÔÒÉ ÔÁÂÌÉÃÙ É ÔÁËÉÍ ÏÂÒÁÚÏÍ ÍÅÎØÛÅ ÐÏÄ×ÅÒÖÅÎÙ ÐÅÒÅÐÏÌÎÅÎÉÀ. äÌÑ ÈÒÁÎÅÎÉÑ ÚÎÁÞÅÎÉÊ 8-ÍÉ ÂÁÊÔÎÏÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ - ÄÏÓÔÕÐÅÎ ÔÉÐ SERIAL8.

+ ÄÏÓÔÕÐÅÎ ÔÉÐ SERIAL8. -

TID ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÃÉÉ ÓÐÅÃÉÁÌØÎÙÈ - ÆÉÚÉÞÅÓËÉÈ ÚÁÐÉÓÅÊ Ó ÂÌÏÞÎÙÍÉ É offset ÚÎÁÞÅÎÉÑÍÉ. TID +

CTID ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÉÄÅÎÔÉÆÉËÁÃÉÉ ÓÐÅÃÉÁÌØÎÙÈ + ÆÉÚÉÞÅÓËÉÈ ÚÁÐÉÓÅÊ Ó ÂÌÏÞÎÙÍÉ É offset ÚÎÁÞÅÎÉÑÍÉ. CTID ÉÚÍÅÎÑÅÔÓÑ ÐÏÓÌÅ ÔÏÇÏ ËÁË ÓÔÒÏËÉ × ÔÁÂÌÉÃÅ ÂÙÌÉ ÉÚÍÅÎÅÎÙ ÉÌÉ ÐÅÒÅÇÒÕÖÅÎÙ. - TID ÉÓÐÏÌØÚÕÅÔÓÑ ÉÎÄÅËÓÎÙÍÉ ÚÁÐÉÓÑÍÉ × ËÁÞÅÓÔ×Å +

TID ÉÓÐÏÌØÚÕÅÔÓÑ ÉÎÄÅËÓÎÙÍÉ ÚÁÐÉÓÑÍÉ × ËÁÞÅÓÔ×Å ÕËÁÚÁÔÅÌÑ ÎÁ ÆÉÚÉÞÅÓËÉÅ ÚÁÐÉÓÉ.

-

4.13) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "ERROR: Memory - exhausted in AllocSetAlloc()"?

+

4.13) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "ERROR: Memory + exhausted in AllocSetAlloc()"?

ðÒÅÄÐÏÌÏÖÉÔÅÌØÎÏ Õ ×ÁÓ ÚÁËÏÎÞÉÌÁÓØ ×ÉÒÔÕÁÌØÎÁÑ ÐÁÍÑÔØ ÉÌÉ ÞÔÏ ×ÁÛÅ ÑÄÒÏ ÉÍÅÅÔ ÍÁÌÅÎØËÉÊ ÌÉÍÉÔ ÎÁ ÏÐÒÅÄÅÌÅÎÎÙÅ ÒÅÓÕÒÓÙ. @@ -1022,38 +981,21 @@ ËÌÉÅÎÔÏÍ, ÐÏÔÏÍÕ ÞÔÏ backend ×ÏÚ×ÒÁÝÁÅÔ ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ ÏÂßÅÍ ÄÁÎÎÙÈ, ÐÏÐÙÔÁÊÔÅÓØ ×ÙÐÏÌÎÉÔØ ÜÔÕ ËÏÍÁÎÄÕ ÐÅÒÅÄ ÚÁÐÕÓËÏÍ ËÌÉÅÎÔÁ. -

4.14) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL - ÚÁÐÕÝÅÎÁ?

+

4.14) ëÁË ÍÎÅ ÕÚÎÁÔØ, ËÁËÁÑ ×ÅÒÓÉÑ PostgreSQL + ÚÁÐÕÝÅÎÁ?

éÚ psql, ÎÁÂÅÒÉÔÅ SELECT version();

-

4.15) ðÏÞÅÍÕ ÐÒÉ ÒÁÂÏÔÅ Ó ÍÏÉÍ ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ - Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "invalid large obj descriptor"?

- -

÷ÁÍ ÎÕÖÎÏ ÐÒÉ ÉÓÐÏÌØÚÏ×ÁÎÉÉ ÂÏÌØÛÏÇÏ ÏÂßÅËÔÁ ÐÏÍÅÓÔÉÔØ × ÎÁÞÁÌÅ - BEGIN WORK É × ËÏÎÃÅ COMMIT, Á ×ÎÕÔÒÉ - ÐÏÌÕÞÉ×ÛÅÇÏÓÑ ÂÌÏËÁ lo_open ... lo_close.

-

÷ ÎÁÓÔÏÑÝÉÊ ÍÏÍÅÎÔ PostgreSQL ÔÒÅÂÕÅÔ, ÞÔÏÂÙ ÐÒÉ ÚÁËÒÙÔÉÉ ÂÏÌØÛÏÇÏ - ÏÂßÅËÔÁ ÐÒÏÉÓÈÏÄÉÌÏ ×ÙÐÏÌÎÅÎÉÅ ÔÒÁÎÚÁËÃÉÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ, ÐÅÒ×ÁÑ ÖÅ - ÐÏÐÙÔËÁ ÓÄÅÌÁÔØ ÞÔÏ-ÌÉÂÏ Ó ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ, ÎÅ ÓÏÂÌÀÄÁÑ ÄÁÎÎÏÇÏ ÐÒÁ×ÉÌÁ - ÐÒÉ×ÅÄÅÔ Ë ÓÏÏÂÝÅÎÉÀ invalid large obj descriptor, ÔÁË ËÁË - ËÏÄ ×ÙÐÏÌÎÑÀÝÉÊ ÒÁÂÏÔÕ ÎÁÄ ÂÏÌØÛÉÍ ÏÂßÅËÔÏÍ (ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ × - ÎÁÓÔÏÑÝÉÊ ÍÏÍÅÎÔ) ÂÕÄÅÔ ÇÅÎÅÒÉÒÏ×ÁÔØ ÓÏÏÂÝÅÎÉÅ Ï ÏÛÉÂËÅ ÅÓÌÉ ×Ù ÎÅ - ÉÓÐÏÌØÚÕÅÔÅ ÔÒÁÎÚÁËÃÉÀ.

- -

åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ ÔÁËÏÊ ÉÎÔÅÒÆÅÊÓ ËÌÉÅÎÔÁ ËÁË ODBC, - ×ÁÍ ×ÏÚÍÏÖÎÏ ÐÏÎÁÄÏÂÉÔÓÑ ÕÓÔÁÎÏ×ÉÔØ auto-commit off.

- -

4.16) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ - ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?

+

4.15) ëÁË ÍÎÅ ÓÏÚÄÁÔØ ËÏÌÏÎËÕ ËÏÔÏÒÁÑ ÐÏ ÕÍÏÌÞÁÎÉÀ + ÂÕÄÅÔ ÓÏÄÅÒÖÁÔØ ÔÅËÕÝÅÅ ×ÒÅÍÑ?

éÓÐÏÌØÚÕÊÔÅ CURRENT_TIMESTAMP:

 CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
 
-

4.17) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?

+

4.16) ëÁË ÍÎÅ ×ÙÐÏÌÎÉÔØ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ?

PostgreSQL ÐÏÄÄÅÒÖÉ×ÁÅÔ ×ÎÅÛÎÅÅ Ó×ÑÚÙ×ÁÎÉÅ, ÉÓÐÏÌØÚÕÑ ÓÔÁÎÄÁÒÔÎÙÊ ÓÉÎÔÁËÓÉÓ SQL. ÷ÏÔ Ä×Á ÐÒÉÍÅÒÁ:

@@ -1077,8 +1019,8 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); RIGHT É FULL Ó×ÑÚÙ×ÁÎÉÑÈ. ïÂÙÞÎÙÅ Ó×ÑÚÙ×ÁÎÉÑ ÎÁÚÙ×ÁÀÔÓÑ INNER Ó×ÑÚÙ×ÁÎÉÑ.

-

4.18) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ - ÂÁÚ ÄÁÎÎÙÈ?

+

4.17) ëÁË ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ÎÅÓËÏÌØËÏ + ÂÁÚ ÄÁÎÎÙÈ?

îÅ ÓÕÝÅÓÔ×ÕÅÔ ÓÐÏÓÏÂÁ ÓÏÚÄÁÔØ ÚÁÐÒÏÓ Ë ÂÁÚÁÍ ÄÁÎÎÙÈ ÏÔÌÉÞÎÙÍ ÏÔ ÔÅËÕÝÅÊ. ðÏÓËÏÌØËÕ PostgreSQL ÚÁÇÒÕÖÁÅÔ ÓÉÓÔÅÍÎÙÅ ËÁÔÁÌÏÇÉ ÓÐÅÃÉÆÉÞÎÙÅ ÄÌÑ ÂÁÚÙ @@ -1089,14 +1031,16 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ÓÏÅÄÉÅÎÅÎÉÑ Ó ÒÁÚÌÉÞÎÙÍÉ ÂÁÚÁÍÉ ÄÁÎÎÙÈ É ÔÁËÉÈ ÏÂÒÁÚÏÍ ÏÂßÅÄÉÎÑÔØ ÉÎÆÏÒÍÁÃÉÀ ÉÚ ÎÉÈ.

-

4.19) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÔÁÂÌÉÃÙ?

+

4.18) ëÁË ÍÎÅ ×ÅÒÎÕÔØ ÉÚ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ ÓÔÒÏË ÔÁÂÌÉÃÙ?

÷Ù ÍÏÖÅÔÅ ÌÅÇËÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÕÎËÃÉÉ, ×ÏÚ×ÒÁÝÁÀÝÉÅ ÓÐÉÓÏË, http://techdocs.postgresql.org/guides/SetReturningFunctions.

-

4.20) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "missing oid", - ËÏÇÄÁ ÏÂÒÁÝÁÀÔÓØ Ë ×ÒÅÍÅÎÎÙÍ ÔÁÂÌÉÃÁÍ × ÆÕÎËÃÉÑÈ PL/PgSQL?

+ +

4.19) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÏÛÉÂËÕ "relation with OID #### + ÎÅ ÓÕÝÅÓÔ×ÕÅÔ", ËÏÇÄÁ ÏÂÒÁÝÁÀÔÓØ Ë ×ÒÅÍÅÎÎÙÍ ÔÁÂÌÉÃÁÍ × ÆÕÎËÃÉÑÈ PL/PgSQL?

+

PL/PgSQL ËÜÛÉÒÕÅÔ ÓÃÅÎÁÒÉÉ ÆÕÎËÃÉÉ É ÏÄÉÎ ÉÚ ÎÅÇÁÔÉ×ÎÙÈ ÜÆÆÅËÔÏ× ÜÔÏÇÏ ÓÏÓÔÏÉÔ × ÔÏÍ, ÞÔÏ ÅÓÌÉ ÆÕÎËÃÉÑ PL/PgSQL ÏÂÒÁÝÁÅÔÓÑ Ë ×ÒÅÍÅÎÎÏÊ ÔÁÂÌÉÃÅ É ÜÔÁ ÔÁÂÌÉÃÁ ÐÏÚÄÎÅÅ ÕÄÁÌÑÅÔÓÑ É ÐÅÒÅÓÏÚÄÁÅÔÓÑ, Á ÆÕÎËÃÉÑ ÚÁÔÅÍ ×ÙÚÙ×ÁÅÔÓÑ @@ -1106,53 +1050,26 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ÔÁÂÌÉÃÁÍ × PL/PgSQL. éÓÐÏÌØÚÏ×ÁÎÉÅ ÜÔÏÇÏ ÏÐÅÒÁÔÏÒÁ ÚÁÓÔÁ×ÉÔ ÚÁÐÒÏÓ ÐÅÒÅÇÅÎÅÒÉÒÏ×ÁÔØÓÑ ËÁÖÄÙÊ ÒÁÚ.

-

4.21) ëÁËÉÅ ÏÐÃÉÉ ÛÉÆÒÏ×ÁÎÉÑ ÓÕÝÅÓÔ×ÕÀÔ? -

- -
- -

òÁÓÛÉÒÅÎÉÑ PostgreSQL

- -

5.1) ñ ÎÁÐÉÓÁÌ ÆÕÎËÃÉÀ ÏÐÒÅÄÅÌÑÅÍÕÀ ÐÏÌØÚÏ×ÁÔÅÌÅÍ. - ëÏÇÄÁ Ñ ÚÁÐÕÓËÁÀ ÅÅ × psql, ÐÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ core dump?

- -

ðÒÏÂÌÅÍÁ ÍÏÖÅÔ ÚÁËÌÀÞÁÔØÓÑ × ÎÅÓËÏÌØËÉÈ ×ÅÝÁÈ. ðÏÐÙÔÁÊÔÅÓØ ÓÐÅÒ×Á - ÐÒÏÔÅÓÔÉÒÏ×ÁÔØ ×ÁÛÕ ÆÕÎËÃÉÀ × ÏÔÄÅÌØÎÏÊ ÓÁÍÏÓÔÏÑÔÅÌØÎÏÊ ÐÒÏÇÒÁÍÍÅ.

- -

5.2) ëÁË Ñ ÍÏÇÕ ×ÎÅÓÔÉ ÎÅËÏÔÏÒÙÅ ËÌÁÓÓÎÙÅ ÎÏ×ÙÅ - ÔÉÐÙ É ÆÕÎËÃÉÉ × PostgreSQL?

-

ïÔÐÒÁ×ØÔÅ ×ÁÛÉ ÒÁÓÛÉÒÅÎÉÑ × ÓÐÉÓÏË ÒÁÓÓÙÌËÉ pgsql-hackers - É ÏÎÉ ÐÏ ×ÏÚÍÏÖÎÏÓÔÉ ÂÕÄÕÔ ÐÏÍÅÝÅÎÙ × ÐÏÄËÁÔÁÌÏÇ contrib/.

+

4.20) ëÁËÉÅ ÅÓÔØ ÒÅÛÅÎÉÑ ÄÌÑ ÒÅÐÌÉËÁÃÉÉ?

-

5.3) ëÁË ÍÎÅ ÎÁÐÉÓÁÔØ C ÆÕÎËÃÉÀ, ×ÏÚ×ÒÁÝÁÀÝÕÀ - ÓÔÒÏËÕ ÔÁÂÌÉÃÙ?

- -

÷ ×ÅÒÓÉÑÈ PostgreSQL, ÎÁÞÉÎÁÑ Ó 7.3, ÆÕÎËÃÉÉ, ×ÏÚ×ÒÁÝÁÀÝÉÅ ÔÁÂÌÉÃÙ - ÐÏÌÎÏÓÔØÀ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ × C, PL/PgSQL É SQL. ðÏÄÒÏÂÎÏÓÔÉ ÓÍÏÔÒÉÔÅ × - òÕËÏ×ÏÄÓÔ×Å ðÒÏÇÒÁÍÍÉÓÔÁ. ðÒÉÍÅÒ ×ÏÚ×ÒÁÝÁÀÝÅÊ ÔÁÂÌÉÃÕ ÆÕÎËÃÉÉ, - ÎÁÐÉÓÁÎÎÏÊ ÎÁ C, ÍÏÖÎÏ ÎÁÊÔÉ × contrib/tablefunc.

- -

5.4) ñ ÉÚÍÅÎÉÌ ÉÓÈÏÄÎÙÊ ÆÁÊÌ. ðÏÞÅÍÕ ÐÏÓÌÅ - ÐÅÒÅËÏÍÐÉÌÑÃÉÉ Ñ ÎÅ ×ÉÖÕ ÉÚÍÅÎÅÎÉÊ?

- -

æÁÊÌÙ Makefile ÎÅ ÉÍÅÀÔ ÐÒÁ×ÉÌØÎÙÈ ÚÁ×ÉÓÉÍÏÓÔÅÊ ÄÌÑ include - ÆÁÊÌÏ×. ÷Ù ÄÏÌÖÎÙ ×ÙÐÏÌÎÉÔØ make clean É ÚÁÔÅÍ make. - åÓÌÉ ×Ù ÉÓÐÏÌØÚÕÅÔÅ GCC ×Ù ÍÏÖÅÔÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÏÐÃÉÀ - --enable-depend × configure ÞÔÏÂÙ ÐÏÒÕÞÉÔØ ËÏÍÐÉÌÑÔÏÒÕ - Á×ÔÏÍÁÔÉÞÅÓËÉ ÏÔÓÌÅÖÉ×ÁÔØ ÚÁ×ÉÓÉÍÏÓÔÉ.

+

èÏÔÑ "ÒÅÐÌÉËÁÃÉÑ" -- ÜÔÏ ÅÄÉÎÙÊ ÔÅÒÍÉÎ, ÅÓÔØ ÎÅÓËÏÌØËÏ ÒÁÚÎÙÈ ÔÅÈÎÏÌÏÇÉÊ + ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÒÅÐÌÉËÁÃÉÊ Ó ÒÁÚÎÙÍÉ ÏÓÏÂÅÎÎÏÓÔÑÍÉ ÄÌÑ ËÁÖÄÏÊ.

+ +

òÅÐÌÉËÁÃÉÑ Master/slave ÐÏÚ×ÏÌÑÅÔ ÉÍÅÔØ ÏÄÉÎ ÇÌÁ×ÎÙÊ (master) ÓÅÒ×ÅÒ + ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÚÁÐÒÏÓÏ× ÞÔÅÎÉÑ/ÚÁÐÉÓÉ, × ÔÏ ×ÒÅÍÑ ËÁË ÐÏÄÞÉΣÎÎÙÅ + (slave) ÓÅÒ×ÅÒÁ ÍÏÇÕÔ ÐÒÏÉÚ×ÏÄÉÔØ ÔÏÌØËÏ ÚÁÐÒÏÓÙ + ÞÔÅÎÉÑ/SELECT. îÁÉÂÏÌÅÅ ÐÏÐÕÌÑÒÎÙÍ ÒÅÛÅÎÉÅÍ ÄÌÑ ÒÅÐÌÉËÁÃÉÉ + master-slave × PostgreSQL Ñ×ÌÑÅÔÓÑ + + Slony-I.

+ +

òÅÐÌÉËÁÃÉÑ Multi-master ÐÏÚ×ÏÌÑÅÔ ×ÙÐÏÌÎÑÔØ ÚÁÐÒÏÓÙ ÞÔÅÎÉÑ/ÚÁÐÉÓÉ + ÎÁ ÎÅÓËÏÌØËÉÈ, ÒÅÐÌÉÃÉÒÕÅÍÙÈ ÄÒÕÇ Ó ÄÒÕÇÏÍ ËÏÍÐØÀÅÔÒÁÈ. üÔÁ ÏÓÏÂÅÎÎÏÓÔØ + ÔÁËÖÅ ÐÒÉ×ÏÄÉÔ Ë ÐÏÔÅÒÅ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ, ÐÏÔÏÍÕ ÞÔÏ ÎÅÏÂÈÏÄÉÍÁ + ÓÉÎÈÒÏÎÉÚÁÃÉÑ ÉÚÍÅÎÅÎÉÊ ÍÅÖÄÕ ÎÅÓËÏÌØËÉÍÉ ÓÅÒ×ÅÒÁÍÉ. îÁÉÂÏÌÅÅ + ÐÏÐÕÌÑÒÎÙÍ ÒÅÛÅÎÉÅÍ ÄÌÑ ÔÁËÏÊ ÒÅÐÌÉËÁÃÉÉ × PostgreSQL Ñ×ÌÑÅÔÓÑ + Pgcluster. +