|
12 | 12 | <BODYbgcolor="#ffffff"text="#000000"link="#ff0000"vlink="#a00000"alink="#0000ff"> |
13 | 13 | <H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1> |
14 | 14 |
|
15 | | -<P>Дата последнего обновления:Вторник 31 августа 23:28:03 EDT 2004</P> |
| 15 | +<P>Дата последнего обновления:Среда 15 декабря 20:06:34 EST 2004</P> |
16 | 16 |
|
17 | 17 | <P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<Ahref= |
18 | 18 | "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> |
19 | 19 | </P> |
20 | 20 | <P>Перевел на русский: Виктор Вислобоков (<Ahref= |
21 | | - "mailto:pgman@candle.pha.pa.us">corochoone@perm.ru</A>)<BR> |
| 21 | + "mailto:corochoone@perm.ru">corochoone@perm.ru</A>)<BR> |
22 | 22 | </P> |
23 | 23 |
|
24 | 24 | <P>Самую свежую английскую версию документа можно найти на |
|
139 | 139 | <Ahref="#4.25">4.25</A>) Как мне вернуть из функции несколько записей?<BR> |
140 | 140 | <Ahref="#4.26">4.26</A>) Почему я не могу надежно создавать/удалять |
141 | 141 | временные таблицы в функциях PL/PgSQL?<BR> |
142 | | -<Ahref="#4.27">4.27</A>) Какие опции репликации существуют?<BR> |
143 | | -<Ahref="#4.28">4.28</A>) Какие опции шифрования существуют?<BR> |
| 142 | +<Ahref="#4.27">4.27</A>) Какие опции шифрования существуют?<BR> |
144 | 143 |
|
145 | 144 | <H2align="center">Расширения PostgreSQL</H2> |
146 | 145 | <Ahref="#5.1">5.1</A>) Я написал функцию определяемую пользователем. |
|
201 | 200 |
|
202 | 201 | <P>Система Управления Базами Данных PostgreSQL</P> |
203 | 202 |
|
204 | | -<P>Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group |
205 | | - Portions Copyright (c) 1994-6 Regents of the University of California</P> |
| 203 | +<P>Portions copyright (c) 1996-2004, PostgreSQL Global Development |
| 204 | + Group Portions Copyright (c) 1994-6 Regents of the University of |
| 205 | + California</P> |
206 | 206 |
|
207 | 207 | <P>Предоставляются права на использование, копирование, изменение |
208 | 208 | и распространение данного программного обеспечения и его документации |
|
244 | 244 | операционных системах Microsoft Windows, основанных на NT, таких как |
245 | 245 | Win2000, WinXP и Win2003. Пакет инсталлятора доступен по адресу |
246 | 246 | <Ahref="http://pgfoundry.org/projects/pginstaller"> |
247 | | - http://pgfoundry.org/projects/pginstaller</A>.</P> |
| 247 | + http://pgfoundry.org/projects/pginstaller</A>. Версии Windows, |
| 248 | + основанные на MS-DOS (Win95, Win98, WinMe) могут запускать |
| 249 | + PostgreSQL с помощью Cygwin.</P> |
248 | 250 |
|
249 | 251 | <P>Также существует версия спортированная под Novell Netware 6 на |
250 | 252 | <ahref="http://forge.novell.com/">http://forge.novell.com</a>.</P> |
|
307 | 309 | <Ahref="http://www.PostgreSQL.org">http://www.PostgreSQL.org</A> |
308 | 310 | </BLOCKQUOTE> |
309 | 311 |
|
310 | | -<P>Еще существует IRC канал на Freenode и EFNet, с названием |
311 | | -<I>#PostgreSQL</I>. Я использую для подключения к этому каналу команду Unix |
312 | | -<CODE>irc -c '#PostgreSQL' "$USER" irc.phoenix.net.</CODE> или |
313 | | -<CODE>irc -c '#PostgreSQL' "$USER" irc.freenode.net.</CODE></P> |
| 312 | +<P>Главным IRC каналом является<I>#postgreql</I>, |
| 313 | + расположенный на сервере Freenode (<I>irc.freenode.net</I>). Чтобы |
| 314 | + подключиться, вы можете использовать команду Unix |
| 315 | +<code>irc -c '#postgresql' "$USER" irc.freenode.net</code> или |
| 316 | + любой другой IRC клиент. На этом же сервере существуют каналы на |
| 317 | + испанском (<I>#postgresql-es</I>) и французском (<I>#postgresqlfr</I>) |
| 318 | + языках. Также существует канал по PostgreSQL на сервере EFNet.</P> |
314 | 319 |
|
315 | 320 | <P>Список коммерческой поддержки компаний доступен на |
316 | 321 | <Ahref="http://techdocs.postgresql.org/companies.php">http://techdocs.postgresql.org/companies.php</A>.</P> |
317 | 322 |
|
318 | 323 | <H4><Aname="1.7">1.7</A>) Какая последняя версия?</H4> |
319 | 324 |
|
320 | | -<P>Последний выпуск PostgreSQL - это версия 7.4.5</P> |
| 325 | +<P>Последний выпуск PostgreSQL - это версия 7.4.6</P> |
321 | 326 |
|
322 | 327 | <P>Мы планируем выпускать новые версии каждые 6-8 месяцев.</P> |
323 | 328 |
|
|
397 | 402 |
|
398 | 403 | <H4><Aname="1.13">1.13</A>) Как отправить сообщение об ошибке??</H4> |
399 | 404 |
|
400 | | -<P>Пожалуйста посетите страничку PostgreSQL BugTool на<Ahref= |
401 | | - "http://www.postgresql.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bugs.php</A>, |
402 | | - на которой предоставлены детальные инструкции о том как отправить |
403 | | - сообщение об ошибке.</P> |
| 405 | +<P>Заполните форму об ошибке в PostgreSQL, которая расположена на |
| 406 | +<Ahref="http://www.postgresql.org/bugform.html">http://www.postgresql.org/bugform.html</A>.</P> |
404 | 407 |
|
405 | 408 | <P>Также не забудьте посмотреть на<Ahref= |
406 | 409 | "ftp://ftp.PostgreSQL.org/pub">ftp://ftp.PostgreSQL.org/pub</A> |
|
428 | 431 |
|
429 | 432 | <DT><B>Производительность</B></DT> |
430 | 433 |
|
431 | | -<DD>PostgreSQL имеет производительностьсхожую с другими коммерческими |
| 434 | +<DD>PostgreSQL имеет производительностьсходную с другими коммерческими |
432 | 435 | СУБД и с СУБД с открытым исходным кодом, в каких-то аспектах работая |
433 | 436 | быстрее чем они, в каких-то медленее. В сравнении с MySQL или обыденнее |
434 | 437 | СУБД, мы быстрее, когда пользователей много, а также на комплексных |
|
555 | 558 | <P>Да, существует несколько графических интерфейсов для PostgreSQL. |
556 | 559 | Это PgAccess (<Ahref="http://www.pgaccess.org/">http://www.pgaccess.org</A>), |
557 | 560 | PgAdmin III (<Ahref="http://www.pgadmin.org/">http://www.pgadmin.org</A>), |
558 | | - RHDB Admin (<Ahref="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/</A>) |
| 561 | + RHDB Admin (<Ahref="http://sources.redhat.com/rhdb/">http://sources.redhat.com/rhdb/</A>), |
| 562 | + TORA (<Ahref="http://www.globecom.net/tora/">http://www.globecom.net/tora/ |
| 563 | + (частично коммерческое ПО)</A> |
559 | 564 | и Rekall (<Ahref="http://www.thekompany.com/products/rekall/"> |
560 | 565 | http://www.thekompany.com/products/rekall/</A>, коммерческий). Также есть |
561 | 566 | PhpPgAdmin (<Ahref="http://phppgadmin.sourceforge.net/"> |
|
613 | 618 | с количеством буферов и процессов по умолчанию, необходимый минимум - |
614 | 619 | это около 1 мегабайта. Подробности о разделяемой памяти и семафорах |
615 | 620 | смотрите в<Ahref= |
616 | | - "http://www.postgresql.org/docs/viev.php?version=current&idoc=1&file=kernel-resources.html">Руководстве |
617 | | - администратора PostgreSQL</A>.</P> |
| 621 | + "http://www.postgresql.org/docs/current/static/kernel-resources.html">Руководстве |
| 622 | + администратора PostgreSQL.</A>.</P> |
618 | 623 |
|
619 | 624 | <H4><Aname="3.4">3.4</A>) Когда я пытаюсь запустить<I>postmaster</I>, я |
620 | 625 | получаю ошибки<I>IpcSemaphoreCreate</I>. Почему?</H4> |
|
662 | 667 | и пересозданием индексов, когда вы выполняете большие изменения |
663 | 668 | данных.</P> |
664 | 669 |
|
665 | | -<P>Существует несколько опций настройки. Вы можете запретить |
| 670 | +<P>Существует несколько опций настройки в |
| 671 | +<Ahref="http://www.postgresql.org/docs/current/static/runtime.html"> |
| 672 | + Руководстве Администратора PostgreSQL</A>. Вы можете запретить |
666 | 673 | <I>fsync()</I> при старте<I>postmaster</I> с опцией<I>-o -F</I>. |
667 | 674 | Это предотвратит вызовы<I>fsync()</I>, которые приводят к сбросу |
668 | 675 | данных на диск после каждой транзакции.</P> |
669 | 676 |
|
670 | | -<P>Вы можете также использоватьдля<I>postmaster</I> опцию<I>-B</I> |
| 677 | +<P>Вы можете также использоватьопцию<I>shared_buffers</I><I>-B</I> |
671 | 678 | для увеличения количества буферов разделяемой памяти, которая |
672 | 679 | используется backend процессами. Если вы сделаете значение этого параметра |
673 | 680 | слишком большим, то<I>postmaster</I> может не запустится потому что |
674 | 681 | вы исчерпаете ограничение ядра на объем разделяемой памяти. Каждый |
675 | | - буфер имеет размер в 8 килобайт и по умолчанию выделяется64 буфера.</P> |
| 682 | + буфер имеет размер в 8 килобайт и по умолчанию выделяется1000 буферов.</P> |
676 | 683 |
|
677 | | -<P>Вы можете также использовать backendопцию<I>-S</I>для увеличения |
678 | | - максимального количества памяти, которое используется backend процессом |
679 | | - для временных сортировок. Значениедля опции<I>-S</I> задается в |
680 | | -килобайтах и поумолчаниюравно 512 (т.е.512K).</P> |
| 684 | +<P>Вы можете также использовать backendопции<I>sort_mem</I>и |
| 685 | +<I>work_mem</I> для увеличениямаксимального количества памяти, которое |
| 686 | +используется backend процессомдля временных сортировок. Значениепо |
| 687 | + умолчаниюсоставляет 1024 (т.е.1MB).</P> |
681 | 688 |
|
682 | 689 | <P>Вы также можете использовать команду<SMALL>CLUSTER</SMALL> для |
683 | 690 | группировки данных в таблицах на совпадающий индекс. Подробности смотрите |
|
723 | 730 |
|
724 | 731 | <P>Если<I>postmaster</I> запущен, запустите<I>psql</I> в одном |
725 | 732 | окне, затем найдите<SMALL>PID</SMALL> процесса<I>postgres</I>, |
726 | | - используемый<I>psql</I>. Используйте отдадчик для подключения к |
727 | | -<I>postgres</I><SMALL>PID</SMALL>. Вы можете установить точки |
728 | | - прерывания в отладчике и запустить запрос из<I>psql</I>. Если |
| 733 | + используемый<I>psql</I>, используя</P> |
| 734 | + |
| 735 | +<PRE> |
| 736 | +SELECT pg_backend_pid() |
| 737 | +</PRE> |
| 738 | + |
| 739 | +<P>Используйте отдадчик для подключения к<I>postgres</I><SMALL>PID</SMALL>. |
| 740 | + Вы можете установить точки прерывания в отладчике и запустить запрос |
| 741 | + из<I>psql</I>. Если |
729 | 742 | вы производите отладку запуска<I>postgres</I>, вы можете установить |
730 | 743 | PGOPTIONS="-W n", и затем запустить<I>psql</I>. Эта опция приводит |
731 | 744 | к задержке процесса запуска на<I>n</I> секунд, в течение которых |
|
1014 | 1027 | <i>~*</i> не использует индексы. Вместо него, используйте функциональные |
1015 | 1028 | индексы, которые описываются в секции<Ahref="#4.12">4.12</A>.</LI> |
1016 | 1029 | <LI>Во время<i>initdb</i> должна использоваться локаль по умолчанию |
1017 | | -<i>C</i>. |
| 1030 | +<i>C</i>, потому что не существует возможности узнать next-greater |
| 1031 | + символ для не-C локали. Вы можете для таких случаев создать специальный |
| 1032 | + индекс |
| 1033 | +<PRE> |
| 1034 | +text_pattern_ops |
| 1035 | +</PRE> |
| 1036 | + который работает только для |
| 1037 | +<PRE> |
| 1038 | +LIKE |
| 1039 | +</PRE> |
| 1040 | + индексирования.</LI> |
1018 | 1041 | </UL> |
1019 | 1042 | </P> |
1020 | 1043 |
|
|
1432 | 1455 | таблицам в PL/PgSQL. Использование этого оператора заставит запрос |
1433 | 1456 | перегенерироваться каждый раз.</P> |
1434 | 1457 |
|
1435 | | -<H4><Aname="4.27">4.27</A>) Какие опции репликации существуют?</H4> |
1436 | | - |
1437 | | -<P>Есть несколько опций для репликации типа master/slave. Они допускают |
1438 | | - использование только master сервера для внесения изменений в базу данных, |
1439 | | - а slave серверы просто позволяют читать данные из базы. Об этом читайте |
1440 | | - здесь:<Ahref="http://gborg.postgresql.org/genpage?replication_research"> |
1441 | | - http://gborg.PostgreSQL.org/genpage?replication_research</A>. О репликации |
1442 | | - с несколькими master серверами читайте здесь: |
1443 | | -<ahref="http://gborg.postgresql.org/project/pgreplication/projdisplay.php">http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</A>.</P> |
1444 | | - |
1445 | | -<h4><aname="4.28">4.28</a>) Какие опции шифрования существуют? |
| 1458 | +<h4><aname="4.27">4.27</a>) Какие опции шифрования существуют? |
1446 | 1459 | </h4> |
1447 | 1460 | <ul> |
1448 | 1461 | <li><i>contrib/pgcrypto</i> содержит много функций шифрования для |
|