Многопользовательские базы геоданных используют таблицы файлов журнала для обслуживания списков выбранных записей. Записи вносятся в таблицы файла журнала для последующего использования приложением в следующих ситуациях:
- Вы (или инструмент, или запущенный вами процесс) создаете набор выборки определенного размера —100 записей или более в ArcMap; 1000 записей или более в ArcGIS Pro; 1000 записей или более, если значения ObjectID запрашиваются из сервиса объектов).
- Вы согласовываете или отправляете сообщения в версионную базу геоданных.
- Клиентское приложение проверяет данные для автономного редактирования.
Таблицы файла журнала хранят идентификаторы выбранных объектов, что позволяет повторно отображать эти объекты. Это позволяет быстрее анализировать и обрабатывать данные.
Существуют три опции файла журнала: совместно используемый, сеансовый, а также пулы сеансовых файлов журнала. Каждый описан в отдельных разделах данной темы.
В базах геоданных в Oracle по умолчанию используются общие таблицы файлов журнала. Если подключающийся пользователь не обладает достаточными привилегиями для создания или последовательностей в базе данных, таблица файла журнала будет создана как глобальная временная таблица, принадлежащая администратору базы геоданных. Это подходит для большинства развертываний, но вы можете изменить настройки таблицы файла журнала, используя инструмент геообработки Настроить таблицы файла журнала.
Совместно используемые файлы журнала
Общие файлы журнала являются общими для всех сеансов подключения одного пользователя. При подключении нескольких пользователей с использованием одной учетной записи, все такие сеансы добавляют и удаляют записи из одной таблицы данных файла журнала.
В каких случаях нужны совместно используемые файлы журнала
Используйте совместные файлы журнала, если каждый клиент и пользователь подключается с отличной учетной записью пользователя базы данных.
В каких случаях совместное использование файлов журнала нецелесообразно
Вы можете не захотеть использовать совместные файлы журналов в том случае, если у вас имеется множество подключений с одним именем пользователя, например, при публикации сервисов объектов, которые будут генерировать множественные подключения с одним именем пользователя. Если многие из ваших пользователей будут запускать атрибутивные запросы к одному и тому же сервису объектов, то это может привести к конкуренции и увеличению времени ожидания для таблицы SDE_LOGFILE_DATA. В этом случае вы можете использовать файлы журналов на основании сеансов.
Таблицы, созданные для совместных файлов журнала
Таблицами файла журнала, используемыми для данной опции, являются SDE_LOGFILES и SDE_LOGFILE_DATA. Они создаются в схеме подключения пользователя при его первом превосходящем порог выборе.
В SDE_LOGFILES хранится информация о каждой создаваемой выборке (файле журнала). Столбцы logfile_name и logfile_id в данной таблице уникальным образом идентифицируют имя файла журнала, а столбец logfile_id связывает запись файла журнала с таблицей SDE_LOGFILE_DATA. Таблица SDE_LOGFILE_DATA содержит logfile_data_id и идентификатор объекта для выбранных записей.
Все записи удаляются, как только происходит очистка выборки с целью недопущения чрезмерного роста таблицы SDE_LOGFILE_DATA. Таблица SDE_LOGFILES усекается после окончания сеанса. Таблицы SDE_LOGFILE_DATA и SDE_LOGFILES остаются в схеме пользователя.
Права доступа, необходимые для совместных файлов журнала
Так как таблицы файла журнала принадлежат подключающемуся пользователю, то пользователи должны иметь права доступа, позволяющие им создавать необходимые данных, например, таблицы. Это необходимо даже тогда, когда пользователь обладает доступом только для чтения базы геоданных. Если данные права доступа не назначены, то пользователь получит сообщение об ошибке при первой попытке создания выборки, размер которой превосходит пороговый размер для конкретного клиентского приложения. Однако после того, как для пользователя будут созданы таблицы SDE_LOGFILES и SDE_LOGFILE_DATA, администратор базы геоданных может отменить данные права доступа.
Например, архитектор Ян может только выбрать данные из базы геоданных для выполнения анализов, относящихся к его задаче. Таким образом, он будет пользователем с правами "только для чтения". Однако, если Ян захочет создать таблицы SDE_LOGFILES и SDE_LOGFILE_DATA в многопользовательской базе геоданных города, то ему потребуется возможность создания таблиц в базе геоданных.
Вместо того чтобы выдавать пользователю Яну разрешение на неограниченное создание таблиц, администратор базы геоданных просит Яна войти в базу геоданных и сделать выборку, размер которой превосходит порог. Администратор базы геоданных затем отменяет права Яна на создание таблиц.
Для работы с совместно используемыми файлами журнала в Oracle необходимы следующие разрешения:
- CREATE SESSION
- CREATE TABLE
- CREATE SEQUENCE
Дополнительные параметры управления хранением общих файлов журнала
Для Oracle следующие параметры управляют хранением таблиц совместных файлов журнала и индексов:
- LD_INDEX_DATA_ID
- LD_INDEX_ROW_ID
- LD _STORAGE
- LF_INDEXES
- LF_STORAGE
Описание данных параметров см. в Параметры конфигурации Oracle.
Сеансовые файлы журнала
Таблицы файлов журнала на основании сеанса предназначены для отдельного сеанса и могут содержать множество выборок (файлов журнала). Каждый сеанс, для которого выполняется вход, требует набора таблиц для выборок.
В каких случаях используются сеансовые файлы журнала
Вы можете использовать файлы журналов, основанные на сеансе, в том случае, если у вас имеется множество одновременных подключений к базе геоданных с одним именем пользователя. Например, если многие сервисы ссылаются на данные в вашей базе геоданных, вы можете использовать сеансовые файлы журнала.
В каких случаях использование сеансовых файлов журнала нецелесообразно
Вы не можете использовать файлы журналов на основании сеанса в том случае, если у вас имеются пользователи с правами "только для чтения", подключающиеся к базе данных.
Таблица сеанса удаляется из схемы пользователя после окончания сеанса. Это означает, что ее необходимо повторно создать при необходимости; таким образом, для использования таблиц файла журнала на основании сеанса, пользователю необходимы права доступа для создания таблиц.
Таблицы, создаваемые для сеансовых файлов журнала
Создаются три таблицы: SDE_LOGFILES, SDE_LOGFILE_DATA и SDE_SESSION<SDE_ID>. SDE_LOGFILE_DATA на самом деле не используется, но создается автоматически. В таблице SDE_LOGFILES хранится информация о выборке плюс тег сеанса <SDE_ID>, добавляемый к имени таблицы SDE_SESSION. В таблице SDE_SESSION хранятся идентификатор объекта для выбранного набора и идентификатор файла журнала.
Таблицы SDE_LOGFILES и SDE_LOGFILE_DATA остаются в базе геоданных. Таблица SDE_LOGFILES усекается при отключении приложения. Таблица SDE_SESSION<SDE_ID> усекается, когда подключенное приложение удаляет файлы журнала, и удаляется в конце сеанса.
Права доступа, необходимые для файлов журнала на основании сеанса
Файлы журнала на основании сеанса принадлежат пользователю, начинающему сеанс подключения. Это означает, что пользователю необходимы права доступа для создания требуемых объектов базы данных.
Для использования таблиц файла журнала на основании сеанса всем пользователям в Oracle необходимы следующие права доступа:
- CREATE SESSION
- CREATE TABLE
- CREATE SEQUENCE
Дополнительный контроль хранения данных для таблиц и индексов сеансового файла журнала
Существует несколько параметров под ключевым словом LOGFILE_DEFAULTS таблицы DBTUNE , управляющих способом или местом хранения таблиц файла журнала в базе данных Чтобы использовать файлы журналов по сеансам, параметры задавать не нужно, но их можно задать, если вы хотите изменить способ хранения таблиц SDE_LOGFILES, SDE_LOGFILE_DATA и SDE_SESSION и индексов в базе данных.
Для Oracle, следующие параметры управляют хранением таблиц файлов журнала на основании сеансов и индексов:
- LD_INDEX_DATA_ID
- LD_INDEX_ROW_ID
- LD_STORAGE
- LF_INDEXES
- LF_STORAGE
- SESSION_INDEX
- SESSION_STORAGE
Описание этих параметров см. в Параметры конфигурации Oracle.
Пулы файлов журнала, принадлежащие администратору базы геоданных.
Администратор базы геоданных может создать пул сеансовых файлов журнала, который может быть откреплен и использован другими пользователями. Совместные файлы журнала не могут быть откреплены от пула файла журнала.
Использование пула файлов журнала необходимо для того, чтобы избежать необходимости наделения пользователей правами доступа, необходимыми для создания объектов в базе данных.
В каких случаях следует использовать пулы файлов журнала
Вы будете использовать пулы фалов журнала в том случае, если не можете дать пользователям возможность создания таблиц файлов журнала в их собственных схемах. При этом пользователям все еще нужны права доступа для создания сеансов или подключения к базе данных.
В каких случаях использование пулов файлов журнала нецелесообразно
В общем случае использование пулов файлов журналов требует больших затрат на обслуживание, так как вам требуется оценить количество необходимых таблиц файла журнала, выполнять изменение размера пула или количества используемых пулов. Помните, что большой пул файла журнала или большое количество пулов файлов журнала может негативно отразится на производительности.
Таблицы, созданные для пулов файлов журнала
Вы задаете количество таблиц SDE_LOGPOOL_<table_ID>, которые создает инструмент Настроить таблицы файла журнала базы геоданных в схеме администратора базы геоданных. Например, если вы укажете 5 таблиц, то в схеме администратора базы геоданных будут созданы следующие таблицы:
- SDE_LOGPOOL_1
- SDE_LOGPOOL_2
- SDE_LOGPOOL_3
- SDE_LOGPOOL_4
- SDE_LOGPOOL_5
В дополнительную таблицу схемы администратора базы геоданных, SDE_LOGFILE_POOL, записывается SDE_ID для сеанса и идентификационный номер таблицы ID. <table_ID> в имени таблицы SDE_LOGPOOL соответствует значению столбца table_ID таблицы SDE_LOGFILE_POOL.
Каждый сеанс, требующий таблицу файла журнала, добавляет одну новую запись в таблицу SDE_LOGFILE_POOL, а сеанс распределяется в одну из таблиц SDE_LOGPOOL_<table_ID>. Если дополнительные файлы журнала создаются в одном сеансе, например, вторая выборка из 300 записей создается в одном сеансе ArcMap, то в таблицу SDE_LOGPOOL добавляются новые файлы журнала (набор выборки).
Когда файлы журнала очищаются, происходит усечение таблицы SDE_LOGPOOL, открепляемой для сеанса. Например, при очистке второго набора выборки в сеансе ArcMap, из таблицы SDE_LOGPOOL удаляются 300 записей, но записи первого набора выборки остаются. Когда файлы первой выборки очищаются, данные записи удаляются из таблицы SDE_LOGPOOL.
Когда файл журнал (выборка) очищается, происходит усечение соответствующей таблицы SDE_LOGPOOL.
Права доступа, необходимые для пулов файла журнала
Для использования таблиц файла журнала в пуле пользователям необходима только возможность подключения к базе данных и использования объектов в схеме администратора базы геоданных. Таким образом, единственным необходимым правом доступа для использования пулов таблиц файла журнала является право CREATE SESSION.
Право CREATE SESSION назначается по умолчанию всем пользователям; поэтому, предоставлять это право необходимо только в том случае, если вы отозвали его у группы PUBLIC.
Дополнительный контроль хранения данных для пулов файла журнала
Ключевое слово LOGFILE_DEFAULTS имеет всего несколько параметров, которые управляют способом хранения таблиц SDE_LOGPOOL<SDE_ID> и их индексами.
В базах геоданных в Oracle параметры LD_STORAGE, LD_INDEX_ROWID и LD_INDEX_DATA_ID DBTUNE используются для настройки хранения таблиц SDE_LOGPOOL<SDE_ID> и их индексов. Эти три параметра также управляют хранением таблиц SDE_LOGFILE_DATA и индексов. Описание этих параметров см. в Параметры конфигурации Oracle.
Вам не нужно задавать их для использования пулов таблиц файла журнала, но вы можете задавать их в том случае, если желаете изменить способ хранения таблиц SDE_LOGPOOL<SDE_ID> и индексов в базе данных.