You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/src/xml/ru/backup.xml
+7-7Lines changed: 7 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@
17
17
<title>Выгрузка в <acronym>SQL</acronym></title>
18
18
19
19
<para>Идея, стоящая за этим методом, заключается в генерации текстового файла с командами SQL, которые при выполнении на сервере пересоздадут базу данных в том же самом состоянии, в котором она была на момент выгрузки. <productname>&project;</productname> предоставляет для этой цели вспомогательную программу <xreflinkend="app-pgdump"/>. Простейшее применение этой программы выглядит так: <synopsis>
</synopsis> Как видите, <application>pg_dump</application> записывает результаты своей работы в устройство стандартного вывода. Далее будет рассмотрено, чем это может быть полезно. В то время как вышеупомянутая команда создаёт текстовый файл, <application>pg_dump</application> может создать файлы и в других форматах, которые допускают параллельную обработку и более гибкое управление восстановлением объектов.</para>
22
22
23
23
<para>Программа <application>pg_dump</application> является для <productname>&project;</productname> обычным клиентским приложением (хотя и весьма умным). Это означает, что вы можете выполнять процедуру резервного копирования с любого удалённого компьютера, если имеете доступ к нужной базе данных. Но помните, что <application>pg_dump</application> не использует для своей работы какие-то специальные привилегии. В частности, ей обычно требуется доступ на чтение всех таблиц, которые вы хотите выгрузить, так что для копирования всей базы данных практически всегда её нужно запускать с правами суперпользователя СУБД. (Если у вас нет достаточных прав для резервного копирования всей базы данных, вы, тем не менее, можете сделать резервную копию той части базы, доступ к которой у вас есть, используя такие параметры, как <option>-n <replaceable>схема</replaceable></option> или <option>-t <replaceable>таблица</replaceable></option>.)</para>
<para>Текстовые файлы, созданные <application>pg_dump</application>, предназначаются для последующего чтения программой <application>psql</application>. Общий вид команды для восстановления дампа: <synopsis>
</synopsis> где <replaceable class="parameter">входной_файл</replaceable> — это файл, содержащий вывод команды <application>pg_dump</application>. База данных, заданная параметром <replaceable class="parameter">имя_базы</replaceable>, не будет создана данной командой, так что вы должны создать её сами из базы <literal>template0</literal> перед запуском <application>psql</application> (например, с помощью команды <literal>createdb -T template0 <replaceable class="parameter">имя_базы</replaceable></literal>). Программа <application>psql</application> принимает параметры, указывающие сервер, к которому осуществляется подключение, и имя пользователя, подобно <application>pg_dump</application>. За дополнительными сведениями обратитесь к справке по <xref linkend="app-psql"/>. Копии не текстовые восстанавливаются утилитой <xref linkend="app-pgrestore"/>.</para>
</synopsis> где <replaceable class="parameter">файл_дампа</replaceable> — это файл, содержащий вывод команды <application>pg_dump</application>. База данных, заданная параметром <replaceable class="parameter">имя_базы</replaceable>, не будет создана данной командой, так что вы должны создать её сами из базы <literal>template0</literal> перед запуском <application>psql</application> (например, с помощью команды <literal>createdb -T template0 <replaceable class="parameter">имя_базы</replaceable></literal>). Программа <application>psql</application> принимает параметры, указывающие сервер, к которому осуществляется подключение, и имя пользователя, подобно <application>pg_dump</application>. За дополнительными сведениями обратитесь к справке по <xref linkend="app-psql"/>. Дампы, выгруженные не в текстовом формате, восстанавливаются утилитой <xref linkend="app-pgrestore"/>.</para>
39
39
40
40
<para>Перед восстановлением SQL-дампа все пользователи, которые владели объектами или имели права на объекты в выгруженной базе данных, должны уже существовать. Если их нет, при восстановлении будут ошибки пересоздания объектов с изначальными владельцами и/или правами. (Иногда это желаемый результат, но обычно нет).</para>
41
41
42
-
<para>По умолчанию, если происходит ошибка SQL, программа <application>psql</application> продолжает выполнение. Если же запустить <application>psql</application> с установленной переменной <literal>ON_ERROR_STOP</literal>, это поведение поменяется и <application>psql</application> завершится с кодом 3 в случае возникновения ошибки SQL: <programlisting>psql --set ON_ERROR_STOP=on имя_базы < входной_файл</programlisting> В любом случае, вы получите только частично восстановленную базу данных. В качестве альтернативы можно указать, что весь дамп должен быть восстановлен в одной транзакции, так что восстановление либо полностью выполнится, либо полностью отменится. Включить данный режим можно, передав <application>psql</application> аргумент <option>-1</option> или <option>--single-transaction</option>. Выбирая этот режим, учтите, что даже незначительная ошибка может привести к откату восстановления, которое могло продолжаться несколько часов. Однако, это всё же может быть предпочтительней, чем вручную вычищать сложную базу данных после частично восстановленного дампа.</para>
42
+
<para>По умолчанию, если происходит ошибка SQL, программа <application>psql</application> продолжает выполнение. Если же запустить <application>psql</application> с установленной переменной <literal>ON_ERROR_STOP</literal>, это поведение поменяется и <application>psql</application> завершится с кодом 3 в случае возникновения ошибки SQL: <programlisting>psql --set ON_ERROR_STOP=on имя_базы < файл_дампа</programlisting> В любом случае, вы получите только частично восстановленную базу данных. В качестве альтернативы можно указать, что весь дамп должен быть восстановлен в одной транзакции, так что восстановление либо полностью выполнится, либо полностью отменится. Включить данный режим можно, передав <application>psql</application> аргумент <option>-1</option> или <option>--single-transaction</option>. Выбирая этот режим, учтите, что даже незначительная ошибка может привести к откату восстановления, которое могло продолжаться несколько часов. Однако, это всё же может быть предпочтительней, чем вручную вычищать сложную базу данных после частично восстановленного дампа.</para>
43
43
44
44
<para>Благодаря способности <application>pg_dump</application> и <application>psql</application> писать и читать каналы ввода/вывода, можно скопировать базу данных непосредственно с одного сервера на другой, например: <programlisting>pg_dump -h <replaceable>host1</replaceable> <replaceable>имя_базы</replaceable> | psql -h <replaceable>host2</replaceable> <replaceable>имя_базы</replaceable></programlisting></para>
<para>Программа <application>pg_dump</application> выгружает только одну базу данных в один момент времени и не включает в дамп информацию о ролях и табличных пространствах (так как это информация уровня кластера, а не самой базы данных). Для удобства создания дампа всего содержимого кластера баз данных предоставляется программа <xreflinkend="app-pg-dumpall"/>, которая делает резервную копию всех баз данных кластера, а также сохраняет данные уровня кластера, такие как роли и определения табличных пространств. Простое использование этой команды: <synopsis>
</synopsis> (В принципе, здесь в качестве начальной базы данных можно указать имя любой существующей базы, но если вы загружаете копию в пустой кластер, обычно нужно использовать <literal>postgres</literal>). Восстанавливать дамп, который выдала <application>pg_dumpall</application>, всегда необходимо с правами суперпользователя, так как они требуются для восстановления информации о ролях и табличных пространствах. Если вы используете табличные пространства, убедитесь, что пути к табличным пространствам в дампе соответствуют новой среде.</para>
</synopsis> (В принципе, здесь в качестве начальной базы данных можно указать имя любой существующей базы, но если вы загружаете дамп в пустой кластер, обычно нужно использовать <literal>postgres</literal>). Восстанавливать дамп, который выдала <application>pg_dumpall</application>, всегда необходимо с правами суперпользователя, так как они требуются для восстановления информации о ролях и табличных пространствах. Если вы используете табличные пространства, убедитесь, что пути к табличным пространствам в дампе соответствуют новой среде.</para>
61
61
62
62
<para><application>pg_dumpall</application> выдаёт команды, которые заново создают роли, табличные пространства и пустые базы данных, а затем вызывает для каждой базы <application>pg_dump</application>. Таким образом, хотя каждая база данных будет внутренне согласованной, состояние разных баз не будет синхронным.</para>
Copy file name to clipboardExpand all lines: doc/src/xml/ru/brin.xml
+4-1Lines changed: 4 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,9 @@
21
21
22
22
<para>Во время создания индекса сканируются все существующие страницы, и в результате в индексе создаётся сводный кортеж для каждой зоны, в том числе, возможно неполной зоны в конце. По мере того, как данными наполняются новые страницы, если они оказываются в зонах, для которых уже есть сводная информация, она будет обновлена с учётом данных из новых кортежей. Если же создаётся новая страница, которая не попадает в последнюю зону, для новой зоны автоматически не рассчитывается сводная запись; кортежи на таких страницах остаются неучтёнными, пока позже не будет проведён расчёт сводных данных. Эта процедура может быть вызвана вручную, с помощью функции <function>brin_summarize_new_values(regclass)</function>, или автоматически, когда таблицу будет обрабатывать <command>VACUUM</command> или при автоочистке по мере добавления записей. (Последний метод отключён по умолчанию и может быть включён параметром <literal>autosummarize</literal>.) И наоборот, можно удалить сводное значение для зоны, вызвав функцию <function>brin_desummarize_range(regclass, bigint)</function>, что может быть полезно, когда этот кортеж в индексе становится не очень хорошим представлением соответствующих данных, так как они изменились.</para>
23
23
24
+
<para>Когда включён режим автопересчёта сводки, при каждом заполнении зоны страниц механизму автоочистки передаётся запрос для пересчёта сводки только по этой зоне, и он будет выполнен в конце следующего прохода обработки той же базы данных. Если очередь запросов переполнена, запрос в неё не записывается и в журнал сервера выводится соответствующее сообщение: <screen>
25
+
LOG: request for BRIN range summarization for index "brin_wi_idx" page 128 was not recorded
26
+
</screen> В этой ситуации сводка для данной зоны будет пересчитана при выполнении следующей обычной очистки таблицы.</para>
24
27
</sect2>
25
28
</sect1>
26
29
@@ -421,7 +424,7 @@
421
424
/* Число полей, хранящихся в столбце индекса этого класса операторов */
422
425
uint16 oi_nstored;
423
426
424
-
/* Прозрачный указатель для частного использования классом операторов */
427
+
/* Непрозрачный указатель для внутреннего использования классом операторов */
425
428
void *oi_opaque;
426
429
427
430
/* Элементы кеша типов для сохранённых столбцов */
<para>Для увеличения производительности также можно использовать технологию <acronym>RAID</acronym>, применяя <acronym>RAID</acronym>-контроллеры с энергонезависимым кешем и бесперебойным блоком питания (<acronym>UPS</acronym>). Так как эта технология обеспечивает согласованность данных при отказе оборудования, вы можете ускорить запись на диск, отключив параметр <varname>fsync</varname>. Но даже с включённым <varname>fsync</varname> производительность может увеличиться с увеличением объёма кеша <acronym>RAID</acronym>-контроллера и количества дисков в <acronym>RAID</acronym>-массиве.</para>
0 commit comments