mirror of
https://github.com/postgres/postgres.git
synced 2025-04-21 12:05:57 +03:00
Update russian FAQ, from Viktor Vislobokov.
This commit is contained in:
parent
3590e9fac8
commit
f28dc57750
1768
doc/FAQ_russian
1768
doc/FAQ_russian
File diff suppressed because it is too large
Load Diff
@ -2,11 +2,10 @@
|
|||||||
|
|
||||||
<HTML>
|
<HTML>
|
||||||
<!-- DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN" -->
|
<!-- DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN" -->
|
||||||
<!-- HTML -->
|
|
||||||
|
|
||||||
<HEAD>
|
<HEAD>
|
||||||
<META name="generator" content="HTML Tidy, see www.w3.org">
|
<META name="generator" content="HTML Tidy, see www.w3.org">
|
||||||
|
<META http-equiv="Content-Type" content="text/html; charset=koi8-r">
|
||||||
<TITLE>PostgreSQL FAQ</TITLE>
|
<TITLE>PostgreSQL FAQ</TITLE>
|
||||||
</HEAD>
|
</HEAD>
|
||||||
|
|
||||||
@ -14,7 +13,7 @@
|
|||||||
alink="#0000ff">
|
alink="#0000ff">
|
||||||
<H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1>
|
<H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1>
|
||||||
|
|
||||||
<P>Дата последнего обновления: Среда 9 Октября 23:14:53 EDT 2002</P>
|
<P>Дата последнего обновления: Воскресенье 20 Октября 20:47:14 EDT 2002</P>
|
||||||
|
|
||||||
<P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<A href=
|
<P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<A href=
|
||||||
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
|
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR>
|
||||||
@ -32,8 +31,7 @@
|
|||||||
<HR>
|
<HR>
|
||||||
|
|
||||||
<H2 align="center">Общие вопросы</H2>
|
<H2 align="center">Общие вопросы</H2>
|
||||||
<A href="#1.1">1.1</A>) Что такое PostgreSQL? Как произносится это
|
<A href="#1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название?<BR>
|
||||||
название?<BR>
|
|
||||||
<A href="#1.2">1.2</A>) Каковы авторские права на PostgreSQL?<BR>
|
<A href="#1.2">1.2</A>) Каковы авторские права на PostgreSQL?<BR>
|
||||||
<A href="#1.3">1.3</A>) На каких Unix платформах работает PostgreSQL?<BR>
|
<A href="#1.3">1.3</A>) На каких Unix платформах работает PostgreSQL?<BR>
|
||||||
<A href="#1.4">1.4</A>) Существуют ли версии портированные не на Unix системы?<BR>
|
<A href="#1.4">1.4</A>) Существуют ли версии портированные не на Unix системы?<BR>
|
||||||
@ -80,8 +78,7 @@
|
|||||||
<A href="#3.7">3.7</A>) Какие возможности для отладки есть в наличии?<BR>
|
<A href="#3.7">3.7</A>) Какие возможности для отладки есть в наличии?<BR>
|
||||||
<A href="#3.8">3.8</A>) Почему я получаю сообщение <I>"Sorry, too many
|
<A href="#3.8">3.8</A>) Почему я получаю сообщение <I>"Sorry, too many
|
||||||
clients"</I> когда пытаюсь подключиться к базе?<BR>
|
clients"</I> когда пытаюсь подключиться к базе?<BR>
|
||||||
<A href="#3.9">3.9</A>) Что это за файлы <I>pg_sorttempNNN.NN</I>
|
<A href="#3.9">3.9</A>) Что находится в каталоге <I>pgsql_tmp</I>?<BR>
|
||||||
в моем каталоге с базой данных?<BR>
|
|
||||||
<A href="#3.10">3.10</A>) Почему необходимо делать dump и restore при
|
<A href="#3.10">3.10</A>) Почему необходимо делать dump и restore при
|
||||||
обновлении выпусков PostgreSQL?<BR>
|
обновлении выпусков PostgreSQL?<BR>
|
||||||
|
|
||||||
@ -143,6 +140,7 @@
|
|||||||
<A href="#4.26">4.26</A>) Почему я не могу надежно создавать/удалять
|
<A href="#4.26">4.26</A>) Почему я не могу надежно создавать/удалять
|
||||||
временные таблицы в функциях PL/PgSQL?<BR>
|
временные таблицы в функциях PL/PgSQL?<BR>
|
||||||
<A href="#4.27">4.27</A>) Какие опции репликации существуют?<BR>
|
<A href="#4.27">4.27</A>) Какие опции репликации существуют?<BR>
|
||||||
|
<A href="#4.28">4.28</A>) Какие опции шифрования существуют?<BR>
|
||||||
|
|
||||||
<H2 align="center">Расширения PostgreSQL</H2>
|
<H2 align="center">Расширения PostgreSQL</H2>
|
||||||
<A href="#5.1">5.1</A>) Я написал функцию определяемую пользователем.
|
<A href="#5.1">5.1</A>) Я написал функцию определяемую пользователем.
|
||||||
@ -158,7 +156,7 @@
|
|||||||
|
|
||||||
<H2 align="center">Общие вопросы</H2>
|
<H2 align="center">Общие вопросы</H2>
|
||||||
|
|
||||||
<H4><A name="1.1">1.1</A>) Что такое PostgreSQL?</H4>
|
<H4><A name="1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название?</H4>
|
||||||
|
|
||||||
<P>PostgreSQL произносится <I>Post-Gres-Q-L (Пост-Грес-Кью-Эл)</I>.</P>
|
<P>PostgreSQL произносится <I>Post-Gres-Q-L (Пост-Грес-Кью-Эл)</I>.</P>
|
||||||
|
|
||||||
@ -169,13 +167,12 @@
|
|||||||
расширенное подмножество <SMALL>SQL</SMALL>. PostgreSQL - это
|
расширенное подмножество <SMALL>SQL</SMALL>. PostgreSQL - это
|
||||||
свободное и полностью открытое программное обеспечение.</P>
|
свободное и полностью открытое программное обеспечение.</P>
|
||||||
|
|
||||||
<P>Разработку PostgreSQL выполняет команда,
|
<P>Разработку PostgreSQL выполняет команда разработчиков, все участники
|
||||||
связанная через Internet, все участники которой подписаны на список
|
которой подписаны на список рассылки разработчиков. В настоящее время,
|
||||||
рассылки разработчиков. В настоящее время, их координатором
|
их координатором является Марк Форнай (Marc G. Fournier) (<A href=
|
||||||
является Марк Форнай (Marc G. Fournier) (<A href=
|
|
||||||
"mailto:scrappy@PostgreSQL.org">scrappy@PostgreSQL.org</A>). (См.
|
"mailto:scrappy@PostgreSQL.org">scrappy@PostgreSQL.org</A>). (См.
|
||||||
ниже о том, как подключиться к разработке). Эта команда теперь
|
секцию <A href="#1.6">1.6</A> о том, как подключиться к разработке).
|
||||||
отвечает за всю разработку PostgreSQL.</P>
|
Эта команда теперь отвечает за всю разработку PostgreSQL.</P>
|
||||||
|
|
||||||
<P>Авторами PostgreSQL 1.01 являются Эндрю Ю (Andrew Yu) и Джоли Чен
|
<P>Авторами PostgreSQL 1.01 являются Эндрю Ю (Andrew Yu) и Джоли Чен
|
||||||
(Jolly Chen). Многие другие внесли свой вклад в перенос на другие
|
(Jolly Chen). Многие другие внесли свой вклад в перенос на другие
|
||||||
@ -240,10 +237,10 @@
|
|||||||
<P><STRONG>Клиент</STRONG></P>
|
<P><STRONG>Клиент</STRONG></P>
|
||||||
|
|
||||||
<P>Для запуска на платформах MS Windows возможна компиляция C
|
<P>Для запуска на платформах MS Windows возможна компиляция C
|
||||||
библиотеки <I>libpq</I>, psql и других интерфесов и бинарных файлов.
|
библиотеки <I>libpq</I>, psql, других интерфесов и клиентских приложений.
|
||||||
В этом случае, клиент запускается на MS Windows и связывается по
|
В этом случае, клиент запускается на MS Windows и связывается по
|
||||||
TCP/IP с сервером, запущенным на одной из поддерживаемых Unix
|
TCP/IP с сервером, запущенным на одной из поддерживаемых Unix
|
||||||
платформ. В дистрибутив включается файл <I>win31.mak</I> для того,
|
платформ. В дистрибутив включается файл <I>win32.mak</I> для того,
|
||||||
чтобы можно было провести сборку библиотеки <I>libpq</I> и
|
чтобы можно было провести сборку библиотеки <I>libpq</I> и
|
||||||
<I>psql</I> для Win32. PostgreSQL также работает через
|
<I>psql</I> для Win32. PostgreSQL также работает через
|
||||||
<SMALL>ODBC</SMALL>.</P>
|
<SMALL>ODBC</SMALL>.</P>
|
||||||
@ -252,10 +249,12 @@
|
|||||||
|
|
||||||
<P>Сервер БД может быть запущен на Windows NT и Win2k, используя
|
<P>Сервер БД может быть запущен на Windows NT и Win2k, используя
|
||||||
библиотеку Cygwin, разработанную для переноса программного обеспечения Unix
|
библиотеку Cygwin, разработанную для переноса программного обеспечения Unix
|
||||||
в NT. Смотрите <I>pgsql/doc/FAQ_MSWIN</I> в дистрибутиве или <A href=
|
в NT. Смотрите <I>pgsql/doc/FAQ_MSWIN</I> в дистрибутиве или
|
||||||
"http://www.postgresql.org/docs/faq-mswin.html">MS Windows FAQ</A>
|
MS Windows FAQ на <A href="http://www.postgresql.org/docs/faq-mswin.html">
|
||||||
на нашем сайте. Мы не планируем специально переносить PostgreSQL
|
http://www.PostgreSQL.org/docs/faq-mswin.html</A>.</P>
|
||||||
на какую-либо платформу Microsoft.</P>
|
|
||||||
|
<P>PostgreSQL, спортированный специально для MS Win NT/2000/XP в
|
||||||
|
настоящий момент начал работать.</P>
|
||||||
|
|
||||||
<H4><A name="1.5">1.5</A>) Где можно взять PostgreSQL?</H4>
|
<H4><A name="1.5">1.5</A>) Где можно взять PostgreSQL?</H4>
|
||||||
|
|
||||||
@ -321,7 +320,7 @@
|
|||||||
|
|
||||||
<P>Список коммерческой поддержки компаний доступен на
|
<P>Список коммерческой поддержки компаний доступен на
|
||||||
<A href=
|
<A href=
|
||||||
"http://www.postgresql.org/users-lounge/commercial-support.html">http://www.postgresql.org/users-lounge/commercial-support.html</A>.</P>
|
"http://www.postgresql.org/users-lounge/commercial-support.html">http://www.PostgreSQL.org/users-lounge/commercial-support.html</A>.</P>
|
||||||
|
|
||||||
<H4><A name="1.7">1.7</A>) Какая последняя версия?</H4>
|
<H4><A name="1.7">1.7</A>) Какая последняя версия?</H4>
|
||||||
|
|
||||||
@ -341,8 +340,8 @@
|
|||||||
"http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</A>
|
"http://www.PostgreSQL.org/docs/awbook.html">http://www.PostgreSQL.org/docs/awbook.html</A>
|
||||||
и <a href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a>.
|
и <a href="http://www.commandprompt.com/ppbook/">http://www.commandprompt.com/ppbook/</a>.
|
||||||
Список книг по PostgreSQL, которые можно купить доступен по адресу
|
Список книг по PostgreSQL, которые можно купить доступен по адресу
|
||||||
<a href="http://www.postgresql.org/books/">http://www.postgresql.org/books/</a>.
|
<a href="http://www.ca.postgresql.org/books/">http://www.ca.PostgreSQL.org/books/</a>.
|
||||||
Кроме того, по адресу <a href="http://techdocs.postgresql.org">http://techdocs.postgresql.org/</a>
|
Кроме того, по адресу <a href="http://techdocs.postgresql.org">http://techdocs.PostgreSQL.org/</a>
|
||||||
вы можете найти коллекцию технических статей посвященных PostgreSQL.</p>
|
вы можете найти коллекцию технических статей посвященных PostgreSQL.</p>
|
||||||
|
|
||||||
|
|
||||||
@ -405,8 +404,8 @@
|
|||||||
|
|
||||||
<H4><A name="1.13">1.13</A>) Как отравить сообщение об ошибке??</H4>
|
<H4><A name="1.13">1.13</A>) Как отравить сообщение об ошибке??</H4>
|
||||||
|
|
||||||
<P>Пожалуйста посетите страничку <A href=
|
<P>Пожалуйста посетите страничку PostgreSQL BugTool на <A href=
|
||||||
"http://www.postgresql.org/bugs/bugs.php">PostgreSQL BugTool</A>,
|
"http://www.postgresql.org/bugs/bugs.php">http://www.PostgreSQL.org/bugs/bugs.php</A>,
|
||||||
на которой предоставлены детальные инструкции о том как отправить
|
на которой предоставлены детальные инструкции о том как отправить
|
||||||
сообщение об ошибке.</P>
|
сообщение об ошибке.</P>
|
||||||
|
|
||||||
@ -445,9 +444,8 @@
|
|||||||
Мы делаем упор на надежность и расширенные возможности, но мы также
|
Мы делаем упор на надежность и расширенные возможности, но мы также
|
||||||
продолжаем увеличивать производительность с каждым выпуском. Существует
|
продолжаем увеличивать производительность с каждым выпуском. Существует
|
||||||
интересная страничка в Интернет, сравнивающая PostgreSQL и MySQL на
|
интересная страничка в Интернет, сравнивающая PostgreSQL и MySQL на
|
||||||
<A href="http://openacs.org/why-not-mysql.html">
|
<A href="http://openacs.org/philosophy/why-not-mysql.html">
|
||||||
|
http://openacs.org/philosophy/why-not-mysql.html</A><BR>
|
||||||
http://openacs.org/why-not-mysql.html</A><BR>
|
|
||||||
|
|
||||||
<BR>
|
<BR>
|
||||||
</DD>
|
</DD>
|
||||||
@ -467,15 +465,15 @@
|
|||||||
|
|
||||||
<DT><B>Поддержка</B></DT>
|
<DT><B>Поддержка</B></DT>
|
||||||
|
|
||||||
<DD>Наш список рассылки представлен большой группой разработчиков
|
<DD>Наш список рассылки предоставляет возможможность общения с
|
||||||
и пользователей, которые могут помочь решить любые возникшие
|
большой группой разработчиков и пользователей, которые могут помочь решить
|
||||||
проблемы. В то же время, мы не гарантируем какие-либо исправления,
|
любые возникшие проблемы. В то же время, мы не гарантируем какие-либо
|
||||||
но и разработчики коммерческих <SMALL>СУБД</SMALL> не всегда делают
|
исправления, но и разработчики коммерческих <SMALL>СУБД</SMALL> не всегда
|
||||||
исправления. Прямой доступ к разработчикам, сообществу пользователей,
|
делают исправления. Прямой доступ к разработчикам, сообществу
|
||||||
руководствам и исходным текстам часто делают поддержку PostgreSQL
|
пользователей, руководствам и исходным текстам часто делают поддержку
|
||||||
превосходящей другие <SMALL>СУБД</SMALL>. Существует коммерческая
|
PostgreSQL превосходящей другие <SMALL>СУБД</SMALL>. Существует
|
||||||
поддержка по результам возникших инцидентов, которая доступна для
|
коммерческая поддержка по результам возникших инцидентов, которая
|
||||||
тех кому она нужна. (Смотрите <A href="#1.6">Как получить поддержку?</A>.)<BR>
|
доступна для тех кому она нужна. (Смотрите <A href="#1.6">Секцию 1.6</A>.)<BR>
|
||||||
<BR>
|
<BR>
|
||||||
</DD>
|
</DD>
|
||||||
|
|
||||||
@ -493,7 +491,7 @@
|
|||||||
PostgreSQL?</H4>
|
PostgreSQL?</H4>
|
||||||
|
|
||||||
<P>PostgreSQL имеет одноранговую инфраструктуру с того самого времени
|
<P>PostgreSQL имеет одноранговую инфраструктуру с того самого времени
|
||||||
как мы начали разработку 6 лет назад. Мы должны благодарить за
|
как мы начали разработку в 1996 году. Мы должны благодарить за
|
||||||
это Марка Фоная (Marc Fournier), который создал эту инфраструктуру и
|
это Марка Фоная (Marc Fournier), который создал эту инфраструктуру и
|
||||||
управляет ей на протяжении этих лет.</P>
|
управляет ей на протяжении этих лет.</P>
|
||||||
|
|
||||||
@ -505,8 +503,8 @@
|
|||||||
некоторое количество ежемесячных и одноразовых расходов, которые
|
некоторое количество ежемесячных и одноразовых расходов, которые
|
||||||
требуют денег. Если вы или ваша компания имеет деньги, которые
|
требуют денег. Если вы или ваша компания имеет деньги, которые
|
||||||
можно передать в помощь нашим усилиям, пожалуйста посетите страничку
|
можно передать в помощь нашим усилиям, пожалуйста посетите страничку
|
||||||
<A href="https://store.pgsql.com/shopping/index.php?id=1">
|
<A href="https://store.pgsql.com/shopping/">
|
||||||
https://store.pgsql.com/shopping/index.php?id=1</A>
|
https://store.pgsql.com/shopping/</A>
|
||||||
и сделайте свой вклад.</P>
|
и сделайте свой вклад.</P>
|
||||||
|
|
||||||
<P>Хотя на страничке говорится о PostgreSQL, Inc, пункт
|
<P>Хотя на страничке говорится о PostgreSQL, Inc, пункт
|
||||||
@ -549,29 +547,23 @@
|
|||||||
<P>Прекрасное введение во взаимодействие баз данных и Web можно найти на:
|
<P>Прекрасное введение во взаимодействие баз данных и Web можно найти на:
|
||||||
<A href="http://www.webreview.com">http://www.webreview.com</A></P>
|
<A href="http://www.webreview.com">http://www.webreview.com</A></P>
|
||||||
|
|
||||||
<P>Также загляните на <A href=
|
|
||||||
"http://www.phone.net/home/mwm/hotlist/">http://www.phone.net/home/mwm/hotlist/.</A></P>
|
|
||||||
|
|
||||||
<P>Для интеграции с Web, одним из превосходных инструментов является PHP.
|
<P>Для интеграции с Web, одним из превосходных инструментов является PHP.
|
||||||
Домашняя станичка <A
|
Домашняя станичка <A href="http://www.php.net">http://www.php.net</A>.</P>
|
||||||
href="http://www.php.net">http://www.php.net</A>.</P>
|
|
||||||
|
|
||||||
<P>Для комплексных решений, многие пользуются Perl интерфейсом и CGI.pm.</P>
|
<P>Для комплексных решений, многие пользуются Perl интерфейсом и CGI.pm или mod_perl.</P>
|
||||||
|
|
||||||
<H4><A name="2.3">2.3</A>) Есть ли у PostgreSQL графический интерфейс
|
<H4><A name="2.3">2.3</A>) Есть ли у PostgreSQL графический интерфейс
|
||||||
пользователя? Генератор отчетов? Встроенный интерфейс для языка
|
пользователя? Генератор отчетов? Встроенный интерфейс для языка
|
||||||
запросов?</H4>
|
запросов?</H4>
|
||||||
|
|
||||||
<P>У нас есть прекрасный горафический интерфейс, называемый
|
<P>У нас есть прекрасный горафический интерфейс, называемый
|
||||||
<I>pgaccess</I>, который является частью дистрибутива. <I>pgaccess</I>
|
PgAccess, который также можно использовать как генератор отчетов.
|
||||||
также емеет генератор отчетов. Его страничка <A href=
|
Его страничка <A href="http://www.pgaccess.org">http://www.pgaccess.org/</A></P>
|
||||||
"http://www.flex.ro/pgaccess">http://www.flex.ro/pgaccess</A></P>
|
|
||||||
|
|
||||||
<P>Мы также включаем <I>ecpg</I>, который предоставляет встроенный
|
<P>Мы также включаем <I>ecpg</I>, который предоставляет встроенный
|
||||||
интерфейс к языку запросов SQL из C.</P>
|
интерфейс к языку запросов SQL из C.</P>
|
||||||
|
|
||||||
<H4><A name="2.4">2.4</A>) Какие языки могут взаимодействовать с
|
<H4><A name="2.4">2.4</A>) Какие языки могут взаимодействовать с PostgreSQL?</H4>
|
||||||
PostgreSQL?</H4>
|
|
||||||
|
|
||||||
<P>Вот эти:</P>
|
<P>Вот эти:</P>
|
||||||
|
|
||||||
@ -584,7 +576,7 @@
|
|||||||
|
|
||||||
<LI>Java (jdbc)</LI>
|
<LI>Java (jdbc)</LI>
|
||||||
|
|
||||||
<LI>Perl (perl5)</LI>
|
<LI>Perl (DBD::Pg и perl5)</LI>
|
||||||
|
|
||||||
<LI>ODBC (odbc)</LI>
|
<LI>ODBC (odbc)</LI>
|
||||||
|
|
||||||
@ -594,11 +586,12 @@
|
|||||||
|
|
||||||
<LI>C Easy API (libpgeasy)</LI>
|
<LI>C Easy API (libpgeasy)</LI>
|
||||||
|
|
||||||
<LI>Embedded <SMALL>HTML</SMALL> (<A href=
|
<LI>PHP ('pg_' functions, Pear::DB)</LI>
|
||||||
"http://www.php.net">PHP from http://www.php.net</A>)</LI>
|
|
||||||
</UL>
|
</UL>
|
||||||
<P>Дополнительные интерфейсы доступны по адресу <A href="http://www.postgresql.org/interfaces.html">
|
<P>Дополнительные интерфейсы доступны по адресу
|
||||||
http://www.postgresql.org/interfaces.html.</A>
|
<A href="http://www.postgresql.org/interfaces.html">http://www.PostgreSQL.org/interfaces.html.</A>
|
||||||
|
и
|
||||||
|
<A href="http://gborg.postgresql.org/">http://gborg.PostgreSQL.org</a>.
|
||||||
</P>
|
</P>
|
||||||
<HR>
|
<HR>
|
||||||
|
|
||||||
@ -671,7 +664,7 @@
|
|||||||
<P>Если вы выполняете много операторов <SMALL>INSERT</SMALL>,
|
<P>Если вы выполняете много операторов <SMALL>INSERT</SMALL>,
|
||||||
рассмотрите возможность выполнять их в большой пачке, используя
|
рассмотрите возможность выполнять их в большой пачке, используя
|
||||||
команду <SMALL>COPY</SMALL>. Это значительно быстрее, чем отдельные
|
команду <SMALL>COPY</SMALL>. Это значительно быстрее, чем отдельные
|
||||||
<SMALL>INSERT.</SMALL> Во-вторых, операторы вне блока транзакции
|
<SMALL>INSERT</SMALL>. Во-вторых, операторы вне блока транзакции
|
||||||
<SMALL>BEGIN WORK/COMMIT</SMALL> сами выполняют транзакцию. Подумайте
|
<SMALL>BEGIN WORK/COMMIT</SMALL> сами выполняют транзакцию. Подумайте
|
||||||
над выполнением нескольких операторов в одном блоке транзакции.
|
над выполнением нескольких операторов в одном блоке транзакции.
|
||||||
Это уменьшит количество транзакций. Также, задумайтесь над удалением
|
Это уменьшит количество транзакций. Также, задумайтесь над удалением
|
||||||
@ -740,7 +733,7 @@
|
|||||||
<P>Если <I>postmaster</I> запущен, запустите <I>psql</I> в одном
|
<P>Если <I>postmaster</I> запущен, запустите <I>psql</I> в одном
|
||||||
окне, затем найдите <SMALL>PID</SMALL> процесса <I>postgres</I>,
|
окне, затем найдите <SMALL>PID</SMALL> процесса <I>postgres</I>,
|
||||||
используемый <I>psql</I>. Используйте отдадчик для подключения к
|
используемый <I>psql</I>. Используйте отдадчик для подключения к
|
||||||
<I>postgres</I> <SMALL>PID.</SMALL> Вы можете установить точки
|
<I>postgres</I> <SMALL>PID</SMALL>. Вы можете установить точки
|
||||||
прерывания в отладчике и запустить запрос из <I>psql</I>. Если
|
прерывания в отладчике и запустить запрос из <I>psql</I>. Если
|
||||||
вы производите отладку запуска <I>postgres</I>, вы можете установить
|
вы производите отладку запуска <I>postgres</I>, вы можете установить
|
||||||
PGOPTIONS="-W n", и затем запустить <I>psql</I>. Эта опция приводит
|
PGOPTIONS="-W n", и затем запустить <I>psql</I>. Эта опция приводит
|
||||||
@ -781,7 +774,7 @@
|
|||||||
семафоров, <SMALL>SEMMNS</SMALL> и <SMALL>SEMMNI;</SMALL> максимальное
|
семафоров, <SMALL>SEMMNS</SMALL> и <SMALL>SEMMNI;</SMALL> максимальное
|
||||||
количество процессов, <SMALL>NPROC;</SMALL> максимальное количество
|
количество процессов, <SMALL>NPROC;</SMALL> максимальное количество
|
||||||
процессов на пользователя, <SMALL>MAXUPRC;</SMALL> и максимальное
|
процессов на пользователя, <SMALL>MAXUPRC;</SMALL> и максимальное
|
||||||
количество открытых файлов, <SMALL>NFILE</SMALL> и <SMALL>NINODE.</SMALL>
|
количество открытых файлов, <SMALL>NFILE</SMALL> и <SMALL>NINODE</SMALL>.
|
||||||
Причина создания ограничения на количество backend процессов как
|
Причина создания ограничения на количество backend процессов как
|
||||||
раз и состоит в том, чтобы вашей системе хватило ресурсов.</P>
|
раз и состоит в том, чтобы вашей системе хватило ресурсов.</P>
|
||||||
|
|
||||||
@ -789,38 +782,35 @@
|
|||||||
было 64, и изменение этого количества требовало перекомпиляции после
|
было 64, и изменение этого количества требовало перекомпиляции после
|
||||||
установки константы MaxBackendId в <I>include/storage/sinvaladt.h</I>.</P>
|
установки константы MaxBackendId в <I>include/storage/sinvaladt.h</I>.</P>
|
||||||
|
|
||||||
<H4><A name="3.9">3.9</A>) Что это за файлы <I>pg_sorttempNNN.NN</I>
|
<H4><A name="3.9">3.9</A>) Что находится в каталоге <I>pgsql_tmp</I>?</H4>
|
||||||
в моем каталоге с базой данных?</H4>
|
|
||||||
|
|
||||||
<P>Это временные файлы, генерируемые во время выполнения запроса.
|
<P>Данный каталог содержит временные файлы, генерируемые обработчиком
|
||||||
Например, если для оператора <SMALL>ORDER BY</SMALL> должна быть
|
запроса. Например, если для выполнения <small>ORDER BY</small> нужна
|
||||||
выполнена сортировка, которая требует больше места чем выделенно
|
сортировка и эта сортировка требует памяти больше, чем допускает параметр <i>-S</i>
|
||||||
для backend процесса в опции <I>-S</I>, то создается временный файл для
|
у backend'а, то для хранения дополнительных данных создаются временные
|
||||||
хранения дополнительных данных.</P>
|
файлы.</P>
|
||||||
|
|
||||||
<P>Временные файлы должны удаляться автоматически, но этого может
|
<P>Эти временные файлы должны удаляться автоматически, но этого может не
|
||||||
не происходить, если backend процесс падает во время сортировки.
|
произойти, если backend рухнул во время сортировки. Останов и запуск
|
||||||
Если у вас не запущено ни одного backend процесса, то вы можете
|
серверного процесса обеспечит их удаление из каталога.</P>
|
||||||
спокойно удалить файлы pg_tempNNN.NN.</P>
|
|
||||||
|
|
||||||
<A name="3.10">3.10</A>) Почему необходимо делать dump и restore при
|
<H4><A name="3.10">3.10</A>) Почему необходимо делать dump и restore при
|
||||||
обновлении выпусков PostgreSQL?<BR>
|
обновлении выпусков PostgreSQL?</H4>
|
||||||
|
|
||||||
<P>Разработчики PostgreSQL делают только небольшие изменения между
|
<P>Разработчики PostgreSQL делают только небольшие изменения между
|
||||||
подвыпусками. Таким образом обновление с версии 7.2 до 7.2.1 не требует
|
подвыпусками. Таким образом обновление с версии 7.2 до 7.2.1 не требует
|
||||||
выполнения dump и restore. Однако при выходе очередного выпуска часто
|
выполнения dump и restore. Однако при выходе очередного выпуска
|
||||||
меняется внутренний формат системных таблиц и файлов данных. Эти
|
(т.е. при обновлении например, с 7.2 на 7.3) часто меняется внутренний
|
||||||
изменения часто носят комплексный характер, так что нет возможности
|
формат системных таблиц и файлов данных. Эти изменения часто носят
|
||||||
обеспечить обратную совместимость файлов данных. Выполение dump
|
комплексный характер, так что нет возможности обеспечить обратную
|
||||||
позволяет получить данные в общем формате, который затем может быть
|
совместимость файлов данных. Выполение dump позволяет получить данные
|
||||||
загружен при использовании нового внутреннего формата.</P>
|
в общем формате, который затем может быть загружен при использовании
|
||||||
|
нового внутреннего формата.</P>
|
||||||
|
|
||||||
<P>
|
<P>В тех выпусках, где формат данных на диске не меняется, для проведения
|
||||||
В тех выпусках, где формат данных на диске не меняется, для проведения
|
|
||||||
обновления может быть использован сценарий <i>pg_upgrade</i> без
|
обновления может быть использован сценарий <i>pg_upgrade</i> без
|
||||||
использования dump/restore. Комментарии к выпуску говорит когда можно
|
использования dump/restore. Комментарии к выпуску говорит когда можно
|
||||||
использовать <i>pg_upgrade</i> для этого выпуска.
|
использовать <i>pg_upgrade</i> для этого выпуска.</P>
|
||||||
</P>
|
|
||||||
<HR>
|
<HR>
|
||||||
|
|
||||||
<H2 align="center">Вопросы эксплуатации</H2>
|
<H2 align="center">Вопросы эксплуатации</H2>
|
||||||
@ -857,7 +847,8 @@
|
|||||||
|
|
||||||
<H4><A name="4.4">4.4</A>) Как удалить колонку из таблицы?</H4>
|
<H4><A name="4.4">4.4</A>) Как удалить колонку из таблицы?</H4>
|
||||||
|
|
||||||
<P>Мы не поддерживаем <SMALL>ALTER TABLE DROP COLUMN,</SMALL> но
|
<P>Эта функциональность была добавлена в выпуск 7.3 с оператором
|
||||||
|
<small>ALTER TABLE DROP COLUMN</small>. В ранних версиях,
|
||||||
можно сделать так:</P>
|
можно сделать так:</P>
|
||||||
<PRE>
|
<PRE>
|
||||||
BEGIN;
|
BEGIN;
|
||||||
@ -981,21 +972,21 @@
|
|||||||
SELECT col
|
SELECT col
|
||||||
FROM tab
|
FROM tab
|
||||||
ORDER BY col [ DESC ]
|
ORDER BY col [ DESC ]
|
||||||
LIMIT 1
|
LIMIT 1;
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<P>Когда используются операции с шаблонами, например <SMALL>LIKE</SMALL>
|
<P>Когда используются операции с шаблонами, например <SMALL>LIKE</SMALL>
|
||||||
или <I>~</I>, индексы могут быть использованы в следующих случаях:
|
или <I>~</I>, индексы могут быть использованы в следующих случаях:</P>
|
||||||
</P><UL>
|
|
||||||
<LI>Начало строки поиска должно совпадать с началом искомой строки, т.е.:</LI>
|
|
||||||
<UL>
|
<UL>
|
||||||
<LI><small>LIKE</small> шаблоны не должны начинаться с <i>%.</i><LI>
|
<LI>Начало строки поиска должно совпадать с началом искомой строки, т.е.:
|
||||||
<LI><i>~</i> шаблоны регулярных выражений должна начинаться на <i>^.</i><LI>
|
<UL>
|
||||||
</UL>
|
<LI><small>LIKE</small> шаблоны не должны начинаться с <i>%.</i>.</LI>
|
||||||
|
<LI><i>~</i> шаблоны регулярных выражений должна начинаться на <i>^</i>.</LI>
|
||||||
|
</UL></LI>
|
||||||
<LI>Строка поиска не должна начинаться с символа класса, т.е. [a-e].</LI>
|
<LI>Строка поиска не должна начинаться с символа класса, т.е. [a-e].</LI>
|
||||||
<LI>Не должен использоваться поиск независимый от регистра такой как
|
<LI>Поиск независимый от регистра, такой как <small>ILIKE</small> и
|
||||||
<small>ILIKE</small> и <i>~</i>. Вместо него используйте функциональные
|
<i>~*</i> не использует индексы. Вместо него, используйте функциональные
|
||||||
индексы, которые описаны в этом FAQ ниже.</LI>
|
индексы, которые описываются в секции <A href="#4.12">4.12</A>.</LI>
|
||||||
<LI>Во время <i>initdb</i> должна использоваться локаль по умолчанию
|
<LI>Во время <i>initdb</i> должна использоваться локаль по умолчанию
|
||||||
<i>C</i>.
|
<i>C</i>.
|
||||||
</UL>
|
</UL>
|
||||||
@ -1053,13 +1044,13 @@
|
|||||||
<PRE>
|
<PRE>
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM tab
|
FROM tab
|
||||||
WHERE lower(col) = 'abc'
|
WHERE lower(col) = 'abc';
|
||||||
</PRE>
|
</PRE>
|
||||||
|
|
||||||
Эта конструкция не будет использовать стандартный индекс. Однако, если
|
Эта конструкция не будет использовать стандартный индекс. Однако, если
|
||||||
вы создадите функциональный индекс, он будет использован:
|
вы создадите функциональный индекс, он будет использован:
|
||||||
<PRE>
|
<PRE>
|
||||||
CREATE INDEX tabindex on tab (lower(col));
|
CREATE INDEX tabindex ON tab (lower(col));
|
||||||
</PRE>
|
</PRE>
|
||||||
|
|
||||||
<H4><A name="4.13">4.13</A>) Как я могу определить, что значение поля
|
<H4><A name="4.13">4.13</A>) Как я могу определить, что значение поля
|
||||||
@ -1074,8 +1065,8 @@
|
|||||||
Тип Внутреннее имя Замечания
|
Тип Внутреннее имя Замечания
|
||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
"char" char 1 символ
|
"char" char 1 символ
|
||||||
CHAR(#) bpchar заполняется пустотой до фиксированной длины
|
CHAR(n) bpchar заполняется пустотой до фиксированной длины
|
||||||
VARCHAR(#) varchar размер задает максимальную длину, нет заполнения
|
VARCHAR(n) varchar размер задает максимальную длину, нет заполнения
|
||||||
TEXT text нет задаваемого верхнего ограничения или длины
|
TEXT text нет задаваемого верхнего ограничения или длины
|
||||||
BYTEA bytea массив байт переменной длины (можно использовать null-байт без опаски)
|
BYTEA bytea массив байт переменной длины (можно использовать null-байт без опаски)
|
||||||
</PRE>
|
</PRE>
|
||||||
@ -1091,13 +1082,14 @@ BYTEA bytea
|
|||||||
так что занимаемое дисковое пространство может также быть и меньше,
|
так что занимаемое дисковое пространство может также быть и меньше,
|
||||||
чем ожидалось.</P>
|
чем ожидалось.</P>
|
||||||
|
|
||||||
<P><SMALL>CHAR()</SMALL> - это лучшее решение для хранения строк, которые
|
<P><SMALL>CHAR(n)</SMALL> - это лучшее решение для хранения строк, которые
|
||||||
обычно имеют одинаковую длину. <SMALL>VARCHAR()</SMALL> - это лучшее
|
обычно имеют одинаковую длину. <SMALL>VARCHAR(n)</SMALL> - это лучшее
|
||||||
решение, когда нужно хранить строки переменной длины, но не превышающие
|
решение, когда нужно хранить строки переменной длины, но не превышающие
|
||||||
определенного размера. <SMALL>TEXT</SMALL> - это лучшее решение для строк
|
определенного размера. <SMALL>TEXT</SMALL> - это лучшее решение для строк
|
||||||
неограниченной длины, с максимально допустимой длиной в 1 гигабайт.
|
неограниченной длины, с максимально допустимой длиной в 1 гигабайт.
|
||||||
<SMALL>BYTEA</SMALL> для хранения бинарных данных, значения которых
|
<SMALL>BYTEA</SMALL> для хранения бинарных данных, значения которых
|
||||||
могут включать <SMALL>NULL</SMALL> байты.</P>
|
могут включать <SMALL>NULL</SMALL> байты. Эти типы имеют сходные
|
||||||
|
характеристики производительности.</P>
|
||||||
|
|
||||||
<H4><A name="4.15.1">4.15.1</A>) Как мне создать поле
|
<H4><A name="4.15.1">4.15.1</A>) Как мне создать поле
|
||||||
serial/с-авто-увеличением?</H4>
|
serial/с-авто-увеличением?</H4>
|
||||||
@ -1136,11 +1128,11 @@ BYTEA bytea
|
|||||||
<P>Один из способов состоит в получении следующего значения
|
<P>Один из способов состоит в получении следующего значения
|
||||||
<SMALL>SERIAL</SMALL> из объекта sequence с помощью функции
|
<SMALL>SERIAL</SMALL> из объекта sequence с помощью функции
|
||||||
<I>nextval()</I> <I>перед</I> вставкой и затем вставлять это значение
|
<I>nextval()</I> <I>перед</I> вставкой и затем вставлять это значение
|
||||||
явно. Используйте таблицу-пример в <A href="#4.15.1">4.15.1</A>, чтобы
|
явно. Используйте таблицу-пример в <A href="#4.15.1">4.15.1</A>, пример
|
||||||
увидеть как это делается в Perl:</P>
|
в псевдоязыке покажет как это делается:</P>
|
||||||
<PRE>
|
<PRE>
|
||||||
new_id = output of "SELECT nextval('person_id_seq')"
|
new_id = execute("SELECT nextval('person_id_seq')");
|
||||||
INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal');
|
execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");
|
||||||
</PRE>
|
</PRE>
|
||||||
|
|
||||||
Затем вы должны также сохранить новое значение в переменной
|
Затем вы должны также сохранить новое значение в переменной
|
||||||
@ -1152,11 +1144,11 @@ BYTEA bytea
|
|||||||
именами вашей таблицы и вашей колонки <SMALL>SERIAL</SMALL>.
|
именами вашей таблицы и вашей колонки <SMALL>SERIAL</SMALL>.
|
||||||
|
|
||||||
<P>В качестве альтернативы, вы можете получить назначенное значение
|
<P>В качестве альтернативы, вы можете получить назначенное значение
|
||||||
<SMALL>SERIAL</SMALL> с помощью функции <I>currval</I>()
|
<SMALL>SERIAL</SMALL> с помощью функции <I>currval()</I>
|
||||||
<I>после</I> проведения обычной операции вставки, например</P>
|
<I>после</I> проведения обычной операции вставки, например</P>
|
||||||
<PRE>
|
<PRE>
|
||||||
INSERT INTO person (name) VALUES ('Blaise Pascal');
|
execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
|
||||||
new_id = output of "SELECT currval('person_id_seq')";
|
new_id = execute("SELECT currval('person_id_seq')");
|
||||||
</PRE>
|
</PRE>
|
||||||
|
|
||||||
И наконец, вы можете использовать значение
|
И наконец, вы можете использовать значение
|
||||||
@ -1171,7 +1163,7 @@ BYTEA bytea
|
|||||||
использование <I>currval()</I> и <I>nextval()</I> приведет к
|
использование <I>currval()</I> и <I>nextval()</I> приведет к
|
||||||
зациклированию с другими пользователями?</H4>
|
зациклированию с другими пользователями?</H4>
|
||||||
|
|
||||||
<P>Нет. Currval() возвращает текущее значение, назначенное вашем
|
<P>Нет. <i>currval()</i> возвращает текущее значение, назначенное вашем
|
||||||
backend'ом, а не другими пользователями.</P>
|
backend'ом, а не другими пользователями.</P>
|
||||||
|
|
||||||
<H4><A name="4.15.4">4.15.4</A>) Почему числа из моей последовательности
|
<H4><A name="4.15.4">4.15.4</A>) Почему числа из моей последовательности
|
||||||
@ -1191,7 +1183,7 @@ BYTEA bytea
|
|||||||
в PostgreSQL. Каждая запись, которая создаётся в PostgreSQL получает
|
в PostgreSQL. Каждая запись, которая создаётся в PostgreSQL получает
|
||||||
уникальный <SMALL>OID</SMALL>. Все значения <SMALL>OID</SMALL>
|
уникальный <SMALL>OID</SMALL>. Все значения <SMALL>OID</SMALL>
|
||||||
генерируемые во время <I>initdb</I> имеют значения меньше 16384 (из
|
генерируемые во время <I>initdb</I> имеют значения меньше 16384 (из
|
||||||
<I>backend/access/transam.h</I>). Все созданные пользователем
|
<I>include/access/transam.h</I>). Все созданные пользователем
|
||||||
<SMALL>OID</SMALL> имеют бОльшие значение. По умолчанию, все эти
|
<SMALL>OID</SMALL> имеют бОльшие значение. По умолчанию, все эти
|
||||||
<SMALL>OID</SMALL> являются уникальными не только внутри какой-либо
|
<SMALL>OID</SMALL> являются уникальными не только внутри какой-либо
|
||||||
таблицы или базы данных, но и внутри всей СУБД PostgreSQL.</P>
|
таблицы или базы данных, но и внутри всей СУБД PostgreSQL.</P>
|
||||||
@ -1215,13 +1207,12 @@ BYTEA bytea
|
|||||||
COPY new TO '/tmp/pgtable';
|
COPY new TO '/tmp/pgtable';
|
||||||
DELETE FROM new;
|
DELETE FROM new;
|
||||||
COPY new WITH OIDS FROM '/tmp/pgtable';
|
COPY new WITH OIDS FROM '/tmp/pgtable';
|
||||||
|
</PRE>
|
||||||
<!--
|
<!--
|
||||||
CREATE TABLE new_table (mycol int);
|
CREATE TABLE new_table (mycol int);
|
||||||
INSERT INTO new_table (oid, mycol) SELECT oid, mycol FROM old_table;
|
INSERT INTO new_table (oid, mycol) SELECT oid, mycol FROM old_table;
|
||||||
-->
|
-->
|
||||||
</PRE>
|
<P>O<SMALL>ID</SMALL> хранится как 4-х байтное целое и не может превышать
|
||||||
|
|
||||||
<P><SMALL>OID</SMALL> хранится как 4-х байтное целое и не может превышать
|
|
||||||
значение в 4 миллиарда. Однако, еще никто не сообщил о том, что такое
|
значение в 4 миллиарда. Однако, еще никто не сообщил о том, что такое
|
||||||
произошло, но мы планируем до того как это случиться избавится от
|
произошло, но мы планируем до того как это случиться избавится от
|
||||||
этого ограничения.</P>
|
этого ограничения.</P>
|
||||||
@ -1258,8 +1249,7 @@ BYTEA bytea
|
|||||||
<LI>range variable, table name, table alias</LI>
|
<LI>range variable, table name, table alias</LI>
|
||||||
</UL>
|
</UL>
|
||||||
|
|
||||||
<P>Список общих терминов по базам данных можно найти на <A href=
|
<P>Список общих терминов по базам данных можно найти на <A href="http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html">http://hea-www.harvard.edu/MST/simul/software/docs/pkgs/pgsql/glossary/glossary.html</A></P>
|
||||||
"http://www.comptechnews.com/~reaster/dbdesign.html">http://www.comptechnews.com/~reaster/dbdesign.html</A></P>
|
|
||||||
|
|
||||||
<H4><A name="4.18">4.18</A>) Почему я получаю ошибку <I>"ERROR: Memory
|
<H4><A name="4.18">4.18</A>) Почему я получаю ошибку <I>"ERROR: Memory
|
||||||
exhausted in AllocSetAlloc()"</I>?</H4>
|
exhausted in AllocSetAlloc()"</I>?</H4>
|
||||||
@ -1284,7 +1274,7 @@ BYTEA bytea
|
|||||||
<H4><A name="4.19">4.19</A>) Как мне узнать, какая версия PostgreSQL
|
<H4><A name="4.19">4.19</A>) Как мне узнать, какая версия PostgreSQL
|
||||||
запущена?</H4>
|
запущена?</H4>
|
||||||
|
|
||||||
<P>Из <I>psql</I>, наберите <CODE>select version();</CODE></P>
|
<P>Из <I>psql</I>, наберите <CODE>SELECT version();</CODE></P>
|
||||||
|
|
||||||
<H4><A name="4.20">4.20</A>) Почему при работе с моим большим объектом
|
<H4><A name="4.20">4.20</A>) Почему при работе с моим большим объектом
|
||||||
я получаю ошибку <I>"invalid large obj descriptor"</I>?</H4>
|
я получаю ошибку <I>"invalid large obj descriptor"</I>?</H4>
|
||||||
@ -1324,18 +1314,16 @@ BYTEA bytea
|
|||||||
увеличить скорость в других запросах, замените <CODE>IN</CODE> на
|
увеличить скорость в других запросах, замените <CODE>IN</CODE> на
|
||||||
<CODE>EXISTS</CODE>:</P>
|
<CODE>EXISTS</CODE>:</P>
|
||||||
<PRE>
|
<PRE>
|
||||||
<CODE>SELECT *
|
SELECT *
|
||||||
FROM tab
|
FROM tab
|
||||||
WHERE col IN (SELECT subcol FROM subtab)
|
WHERE col IN (SELECT subcol FROM subtab);
|
||||||
</CODE>
|
|
||||||
</PRE>
|
</PRE>
|
||||||
|
|
||||||
на:
|
на:
|
||||||
<PRE>
|
<PRE>
|
||||||
<CODE>SELECT *
|
SELECT *
|
||||||
FROM tab
|
FROM tab
|
||||||
WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col)
|
WHERE EXISTS (SELECT subcol FROM subtab WHERE subcol = col);
|
||||||
</CODE>
|
|
||||||
</PRE>
|
</PRE>
|
||||||
|
|
||||||
Чтобы такая конструкция работала быстро, колонка <CODE>subcol</CODE>
|
Чтобы такая конструкция работала быстро, колонка <CODE>subcol</CODE>
|
||||||
@ -1390,7 +1378,7 @@ BYTEA bytea
|
|||||||
Поскольку PostgreSQL загружает системные каталоги специфичные для базы
|
Поскольку PostgreSQL загружает системные каталоги специфичные для базы
|
||||||
данных, непонятно даже, как должен себя вести такой межбазовый запрос.</P>
|
данных, непонятно даже, как должен себя вести такой межбазовый запрос.</P>
|
||||||
|
|
||||||
<P><I>/contrib/dblink</I> позволяет запросы между базами, используя
|
<P><I>contrib/dblink</I> позволяет запросы между базами, используя
|
||||||
вызовы функций. Разумеется, клиент может одновременно устанавливать
|
вызовы функций. Разумеется, клиент может одновременно устанавливать
|
||||||
соедиенения с различными базами данных и таких образом объединять
|
соедиенения с различными базами данных и таких образом объединять
|
||||||
информацию из них.</P>
|
информацию из них.</P>
|
||||||
@ -1399,8 +1387,8 @@ BYTEA bytea
|
|||||||
|
|
||||||
<P>Вы можете возвращать из функций PL/pgSQL списки результатов, используя
|
<P>Вы можете возвращать из функций PL/pgSQL списки результатов, используя
|
||||||
<i>refcursors</i>. Смотрите <A
|
<i>refcursors</i>. Смотрите <A
|
||||||
href="http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html">
|
href="http://www.postgresql.org/idocs/index.php?plpgsql-cursors.html">
|
||||||
http://developer.postgresql.org/docs/postgres/plpgsql-cursors.html,</a>
|
http://www.PostgreSQL.org/idocs/index.php?plpgsql-cursors.html</a>,
|
||||||
секцию 23.7.3.3.</P>
|
секцию 23.7.3.3.</P>
|
||||||
|
|
||||||
<H4><A name="4.26">4.26</A>) Почему я не могу надежно создавать/удалять
|
<H4><A name="4.26">4.26</A>) Почему я не могу надежно создавать/удалять
|
||||||
@ -1416,10 +1404,26 @@ BYTEA bytea
|
|||||||
|
|
||||||
<H4><A name="4.27">4.27</A>) Какие опции репликации существуют?</H4>
|
<H4><A name="4.27">4.27</A>) Какие опции репликации существуют?</H4>
|
||||||
|
|
||||||
<P>Есть несколько решений для репликации типа master/slave. Они допускают
|
<P>Есть несколько опций для репликации типа master/slave. Они допускают
|
||||||
использование только одного сервера для внесения изменений в базу данных,
|
использование только master сервера для внесения изменений в базу данных,
|
||||||
а slave серверы просто позволяют читать данные из базы.</P>
|
а slave серверы просто позволяют читать данные из базы. Об этом читайте
|
||||||
|
здесь: <A href="http://gborg.postgresql.org/genpage?replication_research">
|
||||||
|
http://gborg.PostgreSQL.org/genpage?replication_research</A>. О репликации
|
||||||
|
с несколькими master серверами читайте здесь:
|
||||||
|
<a href="http://gborg.postgresql.org/project/pgreplication/projdisplay.php">http://gborg.PostgreSQL.org/project/pgreplication/projdisplay.php</A>.</P>
|
||||||
|
|
||||||
|
<h4><a name="4.28">4.28</a>) Какие опции шифрования существуют?
|
||||||
|
</h4>
|
||||||
|
<ul>
|
||||||
|
<li><i>contrib/pgcrypto</i> содержит много функций шифрования для
|
||||||
|
использования в <small>SQL</small> запросах.</li>
|
||||||
|
<li>Есть только один способ шифрования данных, передаваемых от клиента
|
||||||
|
к серверу, через использование <i>hostssl</i> в <i>pg_hba.conf</i>.</li>
|
||||||
|
<li>Пароли пользователей к базе данных автоматически шифруются, при
|
||||||
|
сохранении в версии 7.3. В предыдущих версиях, вы должны разрешить
|
||||||
|
опцию <i>PASSWORD_ENCRYPTION</i> в <i>postgresql.conf</i>.</li>
|
||||||
|
<li>Сервер можно запустить, используя шифрованную файловую систему.</li>
|
||||||
|
</ul>
|
||||||
<HR>
|
<HR>
|
||||||
|
|
||||||
<H2 align="center">Расширения PostgreSQL</H2>
|
<H2 align="center">Расширения PostgreSQL</H2>
|
||||||
@ -1439,8 +1443,10 @@ BYTEA bytea
|
|||||||
<H4><A name="5.3">5.3</A>) Как мне написать C функцию, возвращающую
|
<H4><A name="5.3">5.3</A>) Как мне написать C функцию, возвращающую
|
||||||
запись?</H4>
|
запись?</H4>
|
||||||
|
|
||||||
<P>Это требует некоего шаманства так как авторы никогда не пробовали
|
<P>В версиях PostgreSQL, начиная с 7.3, функции, возвращающие таблицы
|
||||||
делать это, хотя в приницпе это возможно.</P>
|
полностью поддерживаются в C, PL/PgSQL и SQL. Подробности смотрите в
|
||||||
|
Руководстве Программиста. Пример возвращающей таблицу функции,
|
||||||
|
написанной на C, можно найти в <i>contrib/tablefunc</i>.</P>
|
||||||
|
|
||||||
<H4><A name="5.4">5.4</A>) Я изменил исходный файл. Почему после
|
<H4><A name="5.4">5.4</A>) Я изменил исходный файл. Почему после
|
||||||
перекомпиляции я не вижу изменений?</H4>
|
перекомпиляции я не вижу изменений?</H4>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user