mirror of
https://github.com/php/doc-ru.git
synced 2025-08-16 18:22:04 +00:00
400 lines
20 KiB
XML
400 lines
20 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 5e41012cfdf8f2eff5fa56de446c7656afac536c Maintainer: rjhdby Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<section xml:id="oci8.configuration" xmlns="http://docbook.org/ns/docbook">
|
||
&reftitle.runtime;
|
||
&extension.runtime;
|
||
<para>
|
||
<table>
|
||
<title>Параметры конфигурации OCI8</title>
|
||
<tgroup cols="4">
|
||
<thead>
|
||
<row>
|
||
<entry>&Name;</entry>
|
||
<entry>&Default;</entry>
|
||
<entry>&Changeable;</entry>
|
||
<entry>&Changelog;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody xml:id="oci8.configuration.list">
|
||
<row>
|
||
<entry><link linkend="ini.oci8.connection-class">oci8.connection_class</link></entry>
|
||
<entry>""</entry>
|
||
<entry><constant>INI_ALL</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.oci8.default-prefetch">oci8.default_prefetch</link></entry>
|
||
<entry>"100"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.oci8.events">oci8.events</link></entry>
|
||
<entry>Off</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.oci8.max-persistent">oci8.max_persistent</link></entry>
|
||
<entry>"-1"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry>Объявлена устаревшей, начиная с PHP 8.1.0.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.oci8.old-oci-close-semantics">oci8.old_oci_close_semantics</link></entry>
|
||
<entry>Off</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.oci8.persistent-timeout">oci8.persistent_timeout</link></entry>
|
||
<entry>"-1"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.oci8.ping-interval">oci8.ping_interval</link></entry>
|
||
<entry>"60"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.oci8.prefetch-lob-size">oci8.prefetch_lob_size</link></entry>
|
||
<entry>"0"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry>Доступна начиная с версии PECL OCI8 3.2.</entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.oci8.privileged-connect">oci8.privileged_connect</link></entry>
|
||
<entry>Off</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
<row>
|
||
<entry><link linkend="ini.oci8.statement-cache-size">oci8.statement_cache_size</link></entry>
|
||
<entry>"20"</entry>
|
||
<entry><constant>INI_SYSTEM</constant></entry>
|
||
<entry></entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</para>
|
||
|
||
&ini.descriptions.title;
|
||
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry xml:id="ini.oci8.connection-class">
|
||
<term>
|
||
<parameter>oci8.connection_class</parameter>
|
||
<type>string</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Этот определяемый пользователем текст обязательно должен быть задан
|
||
при использовании резидентного пула соединений базы данных Oracle
|
||
(Database Resident Connection Pooling (DRCP)). Это позволяет
|
||
суб-партиционирование пула соединений DRCP, что позволяет
|
||
постоянным соединениям OCI8 из приложения заново использовать
|
||
сессии базы данных от предыдущего PHP-скрипта, улучшая
|
||
масштабируемость. Если приложение использует процесс из пула
|
||
базы данных, ранее используемый с другим классом соединений,
|
||
настройки сессии, такие как формат даты Oracle, будут сброшены.
|
||
Это предотвращает случайный обмен информацией между
|
||
различными приложениями.
|
||
</para>
|
||
<para>
|
||
Значение может быть установлено во время выполнения скрипта
|
||
с помощью <function>ini_set</function> до установки соединения.
|
||
</para>
|
||
<para>
|
||
Для использования DRCP, OCI8 должна быть собрана с библиотеками
|
||
Oracle 11<emphasis>g</emphasis> или новее и база данных должна
|
||
быть Oracle 11<emphasis>g</emphasis> или новее.
|
||
Пул соединений DRCP в базе данных должен быть включён,
|
||
<literal>oci8.connection_class</literal> должно быть установлено
|
||
в одно и то же строковое значение для всех веб-серверов,
|
||
выполняющих одно и то же приложение, а строка соединения OCI8
|
||
должна указывать на сервер из пула. Приложение должно
|
||
использовать постоянные соединения.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.oci8.default-prefetch">
|
||
<term>
|
||
<parameter>oci8.default_prefetch</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Эта опция устанавливает значение по умолчанию для
|
||
количества экстра рядов, которые будут возвращены и
|
||
автоматически закешированы при низкоуровневом запросе
|
||
данных из базы данных.
|
||
Установка значения в <literal>0</literal> выключает
|
||
предварительную выборку (prefetching).
|
||
</para>
|
||
<para>
|
||
Значение предварительной выборки не меняет количество
|
||
возвращаемых пользователю рядов такими функциями как
|
||
<function>oci_fetch_array</function>;
|
||
OCI8 внутренне обрабатывает предварительную выборку
|
||
и кеширование рядов.
|
||
</para>
|
||
<para>
|
||
Значение может быть установлено отдельно для каждого выражения
|
||
(per-statement) с помощью <function>oci_set_prefetch</function>
|
||
до выполнения самого выражения.
|
||
</para>
|
||
<para>
|
||
При использовании Oracle Database 12<emphasis>c</emphasis> или новее, предварительное
|
||
значение, заданное PHP, может быть переопределено
|
||
клиентским конфигурационным файлом Oracle <literal>oraaccess.xml</literal>.
|
||
Обратитесь к документации Oracle.
|
||
</para>
|
||
<note>
|
||
<simpara>
|
||
Большая предварительная выборка может улучшить производительность
|
||
за счёт некоторого увеличенного использования памяти.
|
||
Для запросов, возвращающих большие массивы данных, выгода
|
||
в производительности будет значительной.
|
||
</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.oci8.events">
|
||
<term>
|
||
<parameter>oci8.events</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Включение (<literal>On</literal>) позволяет уведомить PHP
|
||
о событиях Быстрого Уведомления Приложений базы данных
|
||
(Fast Application Notification (FAN)).
|
||
</para>
|
||
<para>
|
||
Без FAN, если экземпляр базы данных или узел машины
|
||
неожиданно даст сбой, PHP приложения могут быть заблокированы,
|
||
ожидая ответа от базы данных до превышения времени ожидания TCP.
|
||
С помощью событий FAN PHP приложения быстро будут уведомлены
|
||
о сбоях, которые влияют на установленные ими соединения к
|
||
базе данных. Модуль OCI8 подчистит неиспользуемые соединения
|
||
в кеше постоянных соединений.
|
||
</para>
|
||
<para>
|
||
При использовании директивы (<literal>On</literal>),
|
||
база данных также должна быть настроена на отправку
|
||
FAN событий.
|
||
</para>
|
||
<para>
|
||
Поддержка FAN доступна, если OCI8 была слинкована с библиотеками
|
||
Oracle 10<emphasis>g</emphasis>R2 (или более поздними) и соединение было осуществлено к
|
||
Oracle Database 10<emphasis>g</emphasis>R2 (или более поздней версии).
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.oci8.max-persistent">
|
||
<term>
|
||
<parameter>oci8.max_persistent</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Максимальное количество постоянных соединений OCI8
|
||
на один PHP процесс. Установка этой опции в -1 означает
|
||
отсутствие лимита.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.oci8.old-oci-close-semantics">
|
||
<term>
|
||
<parameter>oci8.old_oci_close_semantics</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Эта опция контролирует поведение функции <function>oci_close</function>.
|
||
Её включение означает, что <function>oci_close</function> не делает
|
||
ничего; соединение не будет закрыто, пока не закончится
|
||
выполнение скрипта. Это сделано только в целях обратной
|
||
совместимости. Если вы ощущаете потребность в этой настройке,
|
||
<emphasis>строго рекомендуется</emphasis> настроить вызовы
|
||
<function>oci_close</function> в ваших скриптах вместо включения
|
||
этой опции.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.oci8.persistent-timeout">
|
||
<term>
|
||
<parameter>oci8.persistent_timeout</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Максимальное количество секунд, которое разрешается
|
||
PHP-процессу держать неиспользуемое постоянное соединение
|
||
открытым. Установка этой опции в -1 означает, что
|
||
неиспользуемые соединения будут удержаны, пока PHP-процесс
|
||
не завершит своё выполнение или соединение не будет
|
||
принудительно закрыто с помощью функции <function>oci_close</function>.
|
||
</para>
|
||
<note>
|
||
<simpara>
|
||
В PHP истечение срока действия неиспользуемых ресурсов не основано
|
||
на уведомлениях. Оно случается когда PHP завершает обработку
|
||
скрипта и проверяет отметку времени последних использованных
|
||
ресурсов. Отсюда возникает следующий парадокс: неиспользуемые
|
||
соединения могут быть закрыты только когда есть некоторая
|
||
активность (хотя и не обязательно связанная с OCI8) в PHP-процессе.
|
||
Если присутствует более одного PHP-процесса, то каждый из них в отдельности должен
|
||
быть приведён в действие для того, чтобы инициировать истечение
|
||
срока действия простаивающих ресурсов.
|
||
Введение резидентного пула соединений базы данных (DRCP) в Oracle 11<emphasis>g</emphasis>
|
||
разрешает проблемы с памятью и ресурсами, которые
|
||
ранее пытались решить <literal>oci8.max_persistent</literal>
|
||
и <literal>oci8.persistent_timeout</literal>.
|
||
</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.oci8.ping-interval">
|
||
<term>
|
||
<parameter>oci8.ping_interval</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Количество секунд, которое должно пройти до совершения пинга
|
||
в течение выполнения <function>oci_pconnect</function>. Пинг
|
||
обеспечивает корректность соединения базы данных.
|
||
Если установлена в 0, постоянные соединения будут пинговаться
|
||
при каждом вызове <function>oci_pconnect</function>. Для полного
|
||
отключения пингов установите эту опцию в -1.
|
||
</para>
|
||
<note>
|
||
<simpara>
|
||
Отключение пингов позволяет <function>oci_pconnect</function>
|
||
действовать с максимальной эффективностью, но PHP может быть
|
||
неспособен определить непригодные соединения, например, при
|
||
обрыве сети или при отключении базы данных Oracle после того,
|
||
как PHP установил соединение, пока соединение вновь не будет
|
||
использовано в скрипте. Проконсультируйтесь с документацией
|
||
функции <function>oci_pconnect</function> для более подробной
|
||
информации.
|
||
</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.oci8.prefetch-lob-size">
|
||
<term>
|
||
<parameter>oci8.prefetch_lob_size</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Параметр настройки, влияющий на внутреннюю буферизацию данных LOB.
|
||
Увеличение этого значения может улучшить производительность выборки меньших LOB за счёт сокращения круговых обходов между PHP и базой данных.
|
||
Использование памяти изменится.
|
||
</para>
|
||
<para>
|
||
Значение влияет на LOB, возвращаемые как экземпляры OCILob, а также на те, которые возвращаются с использованием <constant>OCI_RETURN_LOBS</constant>.
|
||
</para>
|
||
<para>
|
||
Значение может быть установлено для каждого оператора
|
||
с помощью функции <function>oci_set_prefetch_lob</function> до выполнения оператора.
|
||
</para>
|
||
<note>
|
||
<simpara>
|
||
Используйте с Oracle Database 12.2 или новее.
|
||
</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.oci8.privileged-connect">
|
||
<term>
|
||
<parameter>oci8.privileged_connect</parameter>
|
||
<type>bool</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Эта опция позволяет соединениям использовать привилегированные
|
||
внешние учётные записи
|
||
<constant>OCI_SYSOPER</constant> или <constant>OCI_SYSDBA</constant>.
|
||
</para>
|
||
<note>
|
||
<simpara>
|
||
Установка этой директивы в <literal>On</literal> позволит
|
||
скриптам, запущенных с соответствующими пользовательскими
|
||
привилегиями операционной системы, соединяться с базой данных
|
||
в качестве привилегированных пользователей базы данных
|
||
без требования пароля. Это может быть брешью системы безопасности.
|
||
</simpara>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry xml:id="ini.oci8.statement-cache-size">
|
||
<term>
|
||
<parameter>oci8.statement_cache_size</parameter>
|
||
<type>int</type>
|
||
</term>
|
||
<listitem>
|
||
<para>
|
||
Эта опция включает кеширование выражений, а также указывает
|
||
сколько выражений необходимо кешировать. Для отключения
|
||
кеширования выражений просто установите значение этой опции
|
||
в 0.
|
||
</para>
|
||
<para>
|
||
Кэширование выражений убирает необходимость передавать текст
|
||
выражения к базе данных, а также обратную передачу различных
|
||
метаданных об этом выражении обратно к PHP.
|
||
Это может значительно улучшить общую производительность
|
||
системы в приложениях, повторно использующих выражения в
|
||
течение жизни одного соединения. Некоторые дополнительные
|
||
"курсоры" баз данных могут остаться открытыми,
|
||
подразумевая, что данные выражения будут использованы повторно.
|
||
</para>
|
||
<para>
|
||
Установите это значение размером рабочего набора выражений,
|
||
используемых вашим приложением. Установка слишком малого значения
|
||
может повлечь выброс выражений из кеша до их повторного использования.
|
||
</para>
|
||
<para>
|
||
Эта опция чаще всего используется с постоянными соединениями.
|
||
</para>
|
||
<para>
|
||
При использовании Oracle Database 12<emphasis>c</emphasis> или выше,
|
||
предварительное
|
||
значение, заданное PHP, может быть переопределено
|
||
клиентским конфигурационным файлом Oracle <literal>oraaccess.xml</literal>.
|
||
Обратитесь к документации Oracle.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</section>
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|