From 1bdec3424bc15a3b0d25b4579870ae05824a63ca Mon Sep 17 00:00:00 2001
From: Bruce Momjian
Date: Fri, 3 Jun 2005 18:17:07 +0000
Subject: [PATCH] Update Russian FAQ.
Viktor Vislobokov
---
doc/FAQ_russian | 533 ++++++++++++++---------------------
doc/src/FAQ/FAQ_russian.html | 511 ++++++++++++++-------------------
2 files changed, 433 insertions(+), 611 deletions(-)
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) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÓÔÒÏË × ÔÁÂÌÉÃÅ,
+ ÔÁÂÌÉÃ É ÂÁÚÙ ÄÁÎÎÙÈ?
óÕÝÅÓÔ×ÕÀÔ ÓÌÅÄÕÀÝÉÅ ÏÇÒÁÎÉÞÅÎÉÑ:
-
íÁËÓÉÍÁÌØÎÙÊ ÒÁÚÍÅÒ ÂÁÚÙ? |
ÎÅÏÇÒÁÎÉÞÅÎ (ÓÕÝÅÓÔ×ÕÀÔ ÂÁÚÙ ÎÁ 32 TB) |
@@ -691,7 +635,6 @@
íÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÉÎÄÅËÓÏ× × ÔÁÂÌÉÃÅ? |
ÎÅÏÇÒÁÎÉÞÅÎÏ |
-
@@ -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) ëÁËÉÅ ÏÐÃÉÉ ÛÉÆÒÏ×ÁÎÉÑ ÓÕÝÅÓÔ×ÕÀÔ?
-
-
- - contrib/pgcrypto ÓÏÄÅÒÖÉÔ ÍÎÏÇÏ ÆÕÎËÃÉÊ ÛÉÆÒÏ×ÁÎÉÑ ÄÌÑ
- ÉÓÐÏÌØÚÏ×ÁÎÉÑ × SQL ÚÁÐÒÏÓÁÈ.
- - äÌÑ ÛÉÆÒÏ×ÁÎÉÑ ÐÅÒÅÄÁ×ÁÅÍÙÈ ÄÁÎÎÙÈ ÏÔ ËÌÉÅÎÔÁ Ë ÓÅÒ×ÅÒÕ, ÎÁ ÓÅÒ×ÅÒÅ
- × ÆÁÊÌÅ postgresql.conf, ÏÐÃÉÑ ssl ÄÏÌÖÎÁ ÂÙÔØ ÕÓÔÁÎÏ×ÌÅÎÁ
- × true, × ÆÁÊÌÅ pg_hba.conf ÄÏÌÖÎÁ ÂÙÔØ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÁÑ
- ÚÁÐÉÓØ host ÉÌÉ hostssl É ÎÁ ÓÔÏÒÏÎÅ ËÌÉÅÎÔÁ sslmode
- ÎÅ ÄÏÌÖÅÎ ÂÙÔØ ÚÁÐÒÅݣΠÞÅÒÅÚ disable. (úÁÍÅÔÉÍ, ÞÔÏ ÔÁËÖÅ
- ×ÏÚÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÎÅÚÁ×ÉÓÉÍÙÈ ×ÎÅÛÎÉÈ ÛÉÆÒÕÀÝÉÈ ÔÒÁÎÓÐÏÒÔÏ×, ÔÁËÉÈ
- ËÁË stunnel ÉÌÉ ssh, ×ÍÅÓÔÏ ÓÏÂÓÔ×ÅÎÎÙÈ SSL ÓÏÅÄÉÎÅÎÉÊ PostgreSQL).
- - ðÁÒÏÌÉ ÐÏÌØÚÏ×ÁÔÅÌÅÊ Ë ÂÁÚÅ ÄÁÎÎÙÈ Á×ÔÏÍÁÔÉÞÅÓËÉ ÛÉÆÒÕÀÔÓÑ, ÐÒÉ
- ÓÏÈÒÁÎÅÎÉÉ × ÓÉÓÔÅÍÎÙÈ ÔÁÂÌÉÃÁÈ.
- - óÅÒ×ÅÒ ÍÏÖÎÏ ÚÁÐÕÓÔÉÔØ, ÉÓÐÏÌØÚÕÑ ÛÉÆÒÏ×ÁÎÎÕÀ ÆÁÊÌÏ×ÕÀ ÓÉÓÔÅÍÕ.
-
-
-
- òÁÓÛÉÒÅÎÉÑ 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.
+