ïÔ×ÅÔÙ ÎÁ ÞÁÓÔÏ ÚÁÄÁ×ÁÅÍÙÅ ×ÏÐÒÏÓÙ ÐÏ PostgreSQL
- äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: ÷ÔÏÒÎÉË 9 áÐÒÅÌÑ 10:53:30 EDT 2002
+ äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: ÷ÔÏÒÎÉË 26 áÐÒÅÌÑ 23:03:46 EDT 2002
áÎÇÌÉÊÓËÉÊ ×ÁÒÉÁÎÔ ÓÏÐÒÏ×ÏÖÄÁÅÔ: âÒÀÓ íÏÍØÑÎ (Bruce Momjian)
(pgman@candle.pha.pa.us)
4.5) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÚÁÐÉÓÅÊ, ÔÁÂÌÉÃ É ÂÁÚÙ ÄÁÎÎÙÈ?
4.6) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ ÎÕÖÎÏ ÄÌÑ
ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?
- 4.7) ëÁË ÍÎÅ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÎÕÖÎÙÅ ÍÎÅ ÔÁÂÌÉÃÙ ÉÌÉ ÉÎÄÅËÓÙ ÏÐÒÅÄÅÌÅÎÙ
- × ÂÁÚÅ ÄÁÎÎÙÈ?
+ 4.7) ëÁË ÍÎÅ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÓÕÝÅÓÔ×ÕÀÔ ÎÕÖÎÙÅ ÍÎÅ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ,
+ ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ?
4.8) õ ÍÅÎÑ ÍÅÄÌÅÎÎÏ ÒÁÂÏÔÁÀÔ ÚÁÐÒÏÓÙ ÉÌÉ ÎÅ ÐÒÏÉÓÈÏÄÉÔ ÉÓÐÏÌØÚÏ×ÁÎÉÑ
ÉÎÄÅËÓÏ×. ðÏÞÅÍÕ?
4.9) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ ÍÏÊ ÚÁÐÒÏÓ?
÷Ù ÔÁËÖÅ ÍÏÖÅÔÅ ÓËÏÍÐÉÌÉÒÏ×ÁÔØ PostgreSQL Ó ÐÒÏÆÉÌÉÒÏ×ÁÎÉÅÍ ÄÌÑ ÔÏÇÏ,
ÞÔÏÂÙ Õ×ÉÄÅÔØ ËÁËÉÅ ÆÕÎËÃÉÉ ÓËÏÌØËÏ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÑÀÔÓÑ. æÁÊÌÙ
ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ backend'Á ÎÁÈÏÄÑÔÓÑ × ËÁÔÁÌÏÇÅ pgsql/data/base/dbname.
- æÁÊÌ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ ËÌÉÅÎÔÁ ÂÕÄÅÔ ÐÏÍÅÝÅÎ × ÔÅËÕÝÉÊ ËÁÔÁÌÏÇ ËÌÉÅÎÔÁ.
+ æÁÊÌ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ ËÌÉÅÎÔÁ ÂÕÄÅÔ ÐÏÍÅÝÅÎ × ÔÅËÕÝÉÊ ËÁÔÁÌÏÇ ËÌÉÅÎÔÁ. ÷
+ Linux ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ ÔÒÅÂÕÅÔÓÑ ËÏÍÐÉÌÑÃÉÉ Ó
+ -DLINUX_PROFILE.
3.8) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ "Sorry, too many clients" ËÏÇÄÁ ÐÙÔÁÀÓØ
ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?
4.4) ëÁË ÕÄÁÌÉÔØ ËÏÌÏÎËÕ ÉÚ ÔÁÂÌÉÃÙ?
íÙ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÍ ALTER TABLE DROP COLUMN, ÎÏ ÍÏÖÎÏ ÓÄÅÌÁÔØ ÔÁË:
+ BEGIN;
+ LOCK TABLE old_table;
SELECT ... -- ×ÙÂÏÒËÁ ×ÓÅÈ ËÏÌÏÎÏË ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÔÏÊ, ËÏÔÏÒÕÀ ÈÏÔÉÔÅ ÕÄÁÌ
ÉÔØ
INTO TABLE new_table
FROM old_table;
DROP TABLE old_table;
ALTER TABLE new_table RENAME TO old_table;
+ COMMIT;
4.5) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÚÁÐÉÓÅÊ, ÔÁÂÌÉÃ É ÂÁÚÙ ÄÁÎÎÙÈ?
éÎÄÅËÓÙ ÎÅ ÔÒÅÂÕÀÔ ÔÁË ÍÎÏÇÏ, ÎÏ ÐÏÓËÏÌØËÕ ÏÎÉ ÓÏÚÄÁÀÔÓÑ ÄÌÑ ÂÏÌØÛÏÇÏ
ËÏÌÉÞÅÓÔ×Á ÄÁÎÎÙÈ, ÏÎÉ ÔÁËÖÅ ÍÏÇÕÔ ÂÙÔØ ×ÅÌÉËÉ.
- 4.7) ëÁË ÍÎÅ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÎÕÖÎÙÅ ÍÎÅ ÔÁÂÌÉÃÙ ÉÌÉ ÉÎÄÅËÓÙ ÏÐÒÅÄÅÌÅÎÙ ×
- ÂÁÚÅ ÄÁÎÎÙÈ?
+ 4.7) ëÁË ÍÎÅ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÓÕÝÅÓÔ×ÕÀÔ ÎÕÖÎÙÅ ÍÎÅ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ, ÂÁÚÙ
+ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ?
psql ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ËÏÍÁÎÄ, ÎÁÞÉÎÁÀÝÉÈÓÑ Ó ÏÂÒÁÔÎÏÊ ËÏÓÏÊ ÞÅÒÔÙ, ÄÌÑ
ÔÏÇÏ ÞÔÏÂÙ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÔÁËÕÀ ÉÎÆÏÒÍÁÃÉÀ. éÓÐÏÌØÚÕÊÔÅ \? ÄÌÑ ÔÏÇÏ,
- ÞÔÏÂÙ Õ×ÉÄÅÔØ ÜÔÉ ËÏÍÁÎÄÙ.
+ ÞÔÏÂÙ Õ×ÉÄÅÔØ ÜÔÉ ËÏÍÁÎÄÙ. ôÁËÖÅ ÓÕÝÅÓÔ×ÕÀÔ ÓÉÓÔÅÍÎÙÅ ÔÁÂÌÉÃÙ, ÉÍÑ
+ ËÏÔÏÒÙÈ ÎÁÞÉÎÁÅÔÓÑ ÎÁ pg_ É × ËÏÔÏÒÙÈ ÔÁËÖÅ ÓÏÄÅÒÖÉÔÓÑ ÜÔÁ ÉÎÆÏÒÍÁÃÉÑ.
+ åÝ£, psql -l ÐÏËÁÖÅÔ ÓÐÉÓÏË ×ÓÅÈ ÂÁÚ ÄÁÎÎÙÈ.
ôÁËÖÅ ÓÍÏÔÒÉÔÅ ÆÁÊÌ pgsql/src/tutorial/syscat.source. ÷ ÎÅÍ
ÐÒÅÄÓÔÁ×ÌÅÎÙ ÍÎÏÇÉÅ ÏÐÅÒÁÔÏÒÙ SELECT ËÏÔÏÒÙÅ ÎÕÖÎÙ ÄÌÑ ÐÏÌÕÞÅÎÉÑ
alink="#0000ff">
<H1>ïÔ×ÅÔÙ ÎÁ ÞÁÓÔÏ ÚÁÄÁ×ÁÅÍÙÅ ×ÏÐÒÏÓÙ ÐÏ PostgreSQL</H1>
- <P>äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: ÷ÔÏÒÎÉË 9 áÐÒÅÌÑ 10:53:30 EDT 2002</P>
+ <P>äÁÔÁ ÐÏÓÌÅÄÎÅÇÏ ÏÂÎÏ×ÌÅÎÉÑ: ÷ÔÏÒÎÉË 26 áÐÒÅÌÑ 23:03:46 EDT 2002</P>
<P>áÎÇÌÉÊÓËÉÊ ×ÁÒÉÁÎÔ ÓÏÐÒÏ×ÏÖÄÁÅÔ: âÒÀÓ íÏÍØÑÎ (Bruce Momjian) (<A href=
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
ÔÁÂÌÉÃ É ÂÁÚÙ ÄÁÎÎÙÈ?<BR>
<A href="#4.6">4.6</A>) ëÁË ÍÎÏÇÏ ÄÉÓËÏ×ÏÇÏ ÐÒÏÓÔÒÁÎÓÔ×Á × ÂÁÚÅ ÄÁÎÎÙÈ
ÎÕÖÎÏ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ ÉÚ ÏÂÙÞÎÏÇÏ ÔÅËÓÔÏ×ÏÇÏ ÆÁÊÌÁ?<BR>
- <A href="#4.7">4.7</A>) ëÁË ÍÎÅ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÎÕÖÎÙÅ ÍÎÅ ÔÁÂÌÉÃÙ ÉÌÉ ÉÎÄÅËÓÙ
- ÏÐÒÅÄÅÌÅÎÙ × ÂÁÚÅ ÄÁÎÎÙÈ?<BR>
+ <A href="#4.7">4.7</A>) ëÁË ÍÎÅ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÓÕÝÅÓÔ×ÕÀÔ ÎÕÖÎÙÅ ÍÎÅ
+ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ, ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ?<BR>
<A href="#4.8">4.8</A>) õ ÍÅÎÑ ÍÅÄÌÅÎÎÏ ÒÁÂÏÔÁÀÔ ÚÁÐÒÏÓÙ ÉÌÉ ÎÅ
ÐÒÏÉÓÈÏÄÉÔ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÉÎÄÅËÓÏ×. ðÏÞÅÍÕ?<BR>
<A href="#4.9">4.9</A>) ëÁË ÐÏÓÍÏÔÒÅÔØ ÎÁ ÔÏ, ËÁË ÏÐÔÉÍÉÚÁÔÏÒ ×ÙÐÏÌÎÑÅÔ
ÔÏÇÏ, ÞÔÏÂÙ Õ×ÉÄÅÔØ ËÁËÉÅ ÆÕÎËÃÉÉ ÓËÏÌØËÏ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÑÀÔÓÑ.
æÁÊÌÙ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ backend'Á ÎÁÈÏÄÑÔÓÑ × ËÁÔÁÌÏÇÅ
<I>pgsql/data/base/dbname</I>. æÁÊÌ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ ËÌÉÅÎÔÁ
- ÂÕÄÅÔ ÐÏÍÅÝÅÎ × ÔÅËÕÝÉÊ ËÁÔÁÌÏÇ ËÌÉÅÎÔÁ.</P>
+ ÂÕÄÅÔ ÐÏÍÅÝÅÎ × ÔÅËÕÝÉÊ ËÁÔÁÌÏÇ ËÌÉÅÎÔÁ. ÷ Linux ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ
+ ÐÒÏÆÉÌÉÒÏ×ÁÎÉÑ ÔÒÅÂÕÅÔÓÑ ËÏÍÐÉÌÑÃÉÉ Ó <I>-DLINUX_PROFILE</I>.</P>
<H4><A name="3.8">3.8</A>) ðÏÞÅÍÕ Ñ ÐÏÌÕÞÁÀ ÓÏÏÂÝÅÎÉÅ <I>"Sorry, too
many clients"</I> ËÏÇÄÁ ÐÙÔÁÀÓØ ÐÏÄËÌÀÞÉÔØÓÑ Ë ÂÁÚÅ?</H4>
<P>íÙ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÍ <SMALL>ALTER TABLE DROP COLUMN,</SMALL> ÎÏ
ÍÏÖÎÏ ÓÄÅÌÁÔØ ÔÁË:</P>
<PRE>
+ BEGIN;
+ LOCK TABLE old_table;
SELECT ... -- ×ÙÂÏÒËÁ ×ÓÅÈ ËÏÌÏÎÏË ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÔÏÊ, ËÏÔÏÒÕÀ ÈÏÔÉÔÅ ÕÄÁÌÉÔØ
INTO TABLE new_table
FROM old_table;
DROP TABLE old_table;
ALTER TABLE new_table RENAME TO old_table;
+ COMMIT;
</PRE>
<H4><A name="4.5">4.5</A>) ëÁËÏ×Ù ÍÁËÓÉÍÁÌØÎÙÅ ÒÁÚÍÅÒÙ ÄÌÑ ÚÁÐÉÓÅÊ,
<P>éÎÄÅËÓÙ ÎÅ ÔÒÅÂÕÀÔ ÔÁË ÍÎÏÇÏ, ÎÏ ÐÏÓËÏÌØËÕ ÏÎÉ ÓÏÚÄÁÀÔÓÑ ÄÌÑ
ÂÏÌØÛÏÇÏ ËÏÌÉÞÅÓÔ×Á ÄÁÎÎÙÈ, ÏÎÉ ÔÁËÖÅ ÍÏÇÕÔ ÂÙÔØ ×ÅÌÉËÉ.</P>
- <H4><A name="4.7">4.7</A>) ëÁË ÍÎÅ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÎÕÖÎÙÅ ÍÎÅ ÔÁÂÌÉÃÙ ÉÌÉ ÉÎÄÅËÓÙ
- ÏÐÒÅÄÅÌÅÎÙ × ÂÁÚÅ ÄÁÎÎÙÈ?</H4>
+ <H4><A name="4.7">4.7</A>) ëÁË ÍÎÅ ÕÂÅÄÉÔØÓÑ, ÞÔÏ ÓÕÝÅÓÔ×ÕÀÔ ÎÕÖÎÙÅ ÍÎÅ
+ ÔÁÂÌÉÃÙ, ÉÎÄÅËÓÙ, ÂÁÚÙ ÄÁÎÎÙÈ É ÐÏÌØÚÏ×ÁÔÅÌÉ?</H4>
<P><I>psql</I> ÉÍÅÅÔ ÎÅÓËÏÌØËÏ ËÏÍÁÎÄ, ÎÁÞÉÎÁÀÝÉÈÓÑ Ó ÏÂÒÁÔÎÏÊ ËÏÓÏÊ
ÞÅÒÔÙ, ÄÌÑ ÔÏÇÏ ÞÔÏÂÙ ÐÒÏÓÍÁÔÒÉ×ÁÔØ ÔÁËÕÀ ÉÎÆÏÒÍÁÃÉÀ. éÓÐÏÌØÚÕÊÔÅ
- \? ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ Õ×ÉÄÅÔØ ÜÔÉ ËÏÍÁÎÄÙ.</P>
+ \? ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ Õ×ÉÄÅÔØ ÜÔÉ ËÏÍÁÎÄÙ. ôÁËÖÅ ÓÕÝÅÓÔ×ÕÀÔ ÓÉÓÔÅÍÎÙÅ
+ ÔÁÂÌÉÃÙ, ÉÍÑ ËÏÔÏÒÙÈ ÎÁÞÉÎÁÅÔÓÑ ÎÁ <i>pg_</i> É × ËÏÔÏÒÙÈ ÔÁËÖÅ ÓÏÄÅÒÖÉÔÓÑ
+ ÜÔÁ ÉÎÆÏÒÍÁÃÉÑ. åÝ£, <i>psql -l</i> ÐÏËÁÖÅÔ ÓÐÉÓÏË ×ÓÅÈ ÂÁÚ ÄÁÎÎÙÈ.</P>
<P>ôÁËÖÅ ÓÍÏÔÒÉÔÅ ÆÁÊÌ <I>pgsql/src/tutorial/syscat.source</I>. ÷ ÎÅÍ
ÐÒÅÄÓÔÁ×ÌÅÎÙ ÍÎÏÇÉÅ ÏÐÅÒÁÔÏÒÙ <SMALL>SELECT</SMALL> ËÏÔÏÒÙÅ ÎÕÖÎÙ