Ключи протоколирования работы ядра СУБД
-
/NOOUTFILE -
Запрещает печать сообщений в файл
linter.out(протокол работы СУБД).По умолчанию файл
linter.outсоздается.Примечание
Структура файла
linter.outописана в приложении 2. -
/NOOUTPUT -
Запрещает вывод в консольное окно информации о работе ядра СУБД.
-
/OUTFLIMIT=<размер> -
Задает размер файла сообщений ядра СУБД (
linter.out) в страницах по 4 Кбайт. По умолчанию размер файла не ограничен.Если в процессе работы размер файла
linter.outпревысит заданный размер, то он будет переименован в файлlinter.ou1. После этого информация будет записываться в пустой файлlinter.out. Т.е. в процессе работы СУБД могут существовать только два файла –linter.outиlinter.ou1.Примечание
Структура файла
linter.outописана в приложении 2. -
/LOGFLIMIT=<размер> -
-
/TRACEFLIMIT=<размер> -
Задают допустимые размеры файлов
LINTER.LOGиlintrace.logсоответственно. <Размер> задается в блоках по 4 Кб. Задание размеров файлов приводит к тому, что перед проверкой ограничений пользователей осуществляется проверка размера файловLINTER.LOGиlintrace.log. Если их размер превышает заданные границы, вся информация из текущих файловLINTER.LOGиlintrace.logкопируется в файлы с маскойLINTER_YYYYMMDDHH24MISS.LOGиlintrace_YYYYMMDDHH24MISS.log, где YYYY – год, MM – месяц, DD – день, HH24 – час, MI – минуты, SS – секунды.Вслед за этим открываются пустые файлы с именами
LINTER.LOGиlintrace.log, и работа продолжается в обычном режиме вплоть до очередной проверки.Примечания
-
Указанные ключами максимальные размеры файлов
LINTER.LOGиlintrace.logмогут быть несколько превышены, так как проверки выполняются через определенные промежутки времени. -
Если ОС не поддерживает размер файлов более 2 Гб, то максимальный размер файла
LINTER.LOG, если он не задан, автоматически устанавливается равным 1 Гб.
-
-
/[NO]LOG -
Ключ
/NOLOG– запрещает, ключ/LOG– разрешает вести протокол обработки SQL-запросов клиентских приложений (файлLINTER.LOG).Если при запуске ядра ЛИНТЕР задан ключ
/LOG, то ведется «краткий» протокол обработки запросов: текст SQL-запроса, количество ответов, код возврата.По умолчанию /NOLOG.
При перезапуске ядра с включенным протоколированием обработки SQL-запросов старый файл будет переименован в файл с маской
LINTER_YYYYMMDDHH24MISS.LOGи будет создан новый файлLINTER.LOG. -
/LOGQUERY -
Задает режим протоколирования обработки SQL-запросов клиентских приложений в файле
LINTER.LOG.При перезапуске ядра с включенным протоколированием обработки SQL-запросов старый файл будет переименован в файл с маской
LINTER_YYYYMMDDHH24MISS.LOGи будет создан новый файлLINTER.LOG.Примечание
Структура файла
LINTER.LOGописана в приложении 3. -
/LOGALL -
Задает режим полного протоколирования обработки SQL-запросов клиентских приложений в файле
LINTER.LOG. В этом режиме в файл протокола заносится дополнительная информация: время выполнения команды, сетевой адрес, идентификаторы процесса и нити, пославшие запрос, и др.При перезапуске ядра с включенным протоколированием обработки SQL-запросов старый файл будет переименован в файл с маской
LINTER_YYYYMMDDHH24MISS.LOGи будет создан новый файлLINTER.LOG. -
/TRACE=DECOMP{[=FULL]|=DELAY[=<тики>]|=SPPAG}
| CHTRAN[=NOFLUSH]
| KRB
| LOCK[=LEVEL={0|1|2|3}|[TIME]]
| LOGIO[=([DEF|COMMT|ABSADR|PREPADR|HEX|BLOCK
| REC|STRUCT|DATA=<значение>|LEVEL=<значение>][, …])]
| KANCHN
| SORT[=TIME]
| WRBL[=READ] -
Задает различные режимы трассировки обрабатываемых SQL-запросов в трассировочный файл
lintrace.log(размещается в каталоге БД).Конструкция
DECOMPзадает режим трассировки общей информации об обрабатываемом запросе. По умолчанию выполняется краткая трассировка.Для получения более полной информации надо указывать опцию
FULL.Трассировка содержит следующую информацию:
-
текст SQL-запроса, переданный на обработку ядру СУБД ЛИНТЕР (после его оптимизации SQL-транслятором);
-
какие массивы данных (бит-вектора) были задействованы при обработке SQL-запроса. Используемые массивы влияют на время выполнения запроса;
-
количество считанных/записанных блоков данных (физических/логических);
-
количество считанных/записанных блоков системного журнала.
Пример трассировочной информации
C#4 QUERY: SELECT T_0."MSG" FROM <TABLE "SYSTEM"."ERRORS" AS T_0> WHERE T_0."NMRERR" == 1503; C#4 DECOMP.C (Start_Cur_Dec): Now computing derived set #0. C#4 OBRSTRAT.C (OBRSTRAT): Start set: TABLE("SYSTEM"."ERRORS" AS T_0). Set included 1022 rows. List of predicates: Predicate [strategy #2(one index)]: T_0."NMRERR" == 1503 C#4 DECOMP.C (End_Dekart): Derived set #0 is computed, Rows count: 1. C#4 FORMOTW.C (FORMOTW): Read: 0 blocks, write: 0 blocks. C#4 FORMOTW.C (FORMOTW): Read logical: 4 blocks, write logical: 0 blocks. C#4 FORMOTW.C (FORMOTW): Journal read: 0 blocks, written: 0 blocks.Конструкция
DECOMP=DELAY=<тики>задает режим трассировки задержек длительности выполнения отдельных квантов ядра СУБД на время, не меньшее указанного в параметре<тики>. По умолчанию трассируются задержки не менее 100 тиков (0.1 секунды).Пример трассировочной информации
C#3 OBRSTRAT.C (OBRSTRAT): Start set: TABLE("SYSTEM"."LINEITEM" AS T_1). Set included 6001215 rows. List of predicates: Predicate [strategy #1(full scan)]: T_1."L_SHIPDATE" > '15.03.2013:00:00:00:00' C#3 PROZA.C (PROZA): Strategy: #1(full scan). C#3 Delay for 1.87 sec C#3 Delay for 0.35 sec C#3 RIDSTRAT.C (RIDSTRAT): Snap_Bv: 3241776 rows.Конструкция
CHTRANзадает режим трассировки информации об обрабатываемых транзакциях. В этом режиме выполняется трассирование операций open/ocur/clos/kill/ckil/comt/rbас интерфейса нижнего уровня, а также SQL-запросов COMMIT и ROLLBACK.Для повышения производительности СУБД предусмотрена опция
NOFLUSH. При ее задании трассировочная информация предварительно накапливается в оперативной памяти и записывается в файлlintrace.logв соответствии с настройками ОС (по мере вытеснения буфера файла на диск).Пример трассировочной информации
C#5 OPEN: E=0: M=MVCC_OO C#6 OCUR: E=0: M=MVCC_RC|MVCC_AUTOCOMMIT: EX=5 C#6 CLOS: E=0 C#5 COMT: E=0: M=MVCC_OO: S=JOURNAL_OPER_EXIST C#5 TRID: E=0: T=23.09.2014 15:13:51.44: ID=410: M=MVCC_OO: S=Open_exist|Tr_exist|WRT_OPTIMISTIC_EXIST C#5 COMT: E=0: T=23.09.2014 15:13:51.44: ID=410: M=MVCC_OO: S=Open_exist|JOURNAL_OPER_EXIST C#5 CLOS: E=0Конструкция KRB задает режим трассировки информации, формируемой Kerberos-сервером.
Пример трассировочной информации
Данный пример приведен для имени сервиса LINTER/srv.example.net, имени аутентифицирующегося пользователя test, домена EXAMPLE.NET и компьютера, на котором запущено ядро СУБД ЛИНТЕР, с именем srv.example.net.
security.dll was loaded Use service name LINTER/srv.example.net QuerySecurityPackageInfo status 0x0 AcceptSecurityContext status 0x0 User from ticket: 'test@EXAMPLE.NET' Service: 'LINTER/srv.example.net@EXAMPLE.NET' QuerySecurityContextToken status 0x0 KRB user name testНа клиенте был заранее получен тикет для пользователя test.
Mj и Mi – результат выполнения функции.
Конструкция
LOCKдобавляет вывод информации о заблокированных таблицах и запросах, вызвавших конфликты.Опция
LEVELзадает дополнительный уровень выдаваемой информации о блокировках. Поддерживаются следующие уровни выдаваемой информации о блокировках:-
LEVEL=0– выдает вlintrace.logинформацию об ошибках; -
LEVEL=1– дополнительно выдает вlintrace.logинформацию о блокировках таблиц (в том числе и тех, которые не вызывают конфликты блокировок); -
LEVEL=2– дополнительно выдает вlintrace.logинформацию о блокировках групп записей; -
LEVEL=3– дополнительно выдает вlintrace.logинформацию о блокировках отдельных записей.
Опция
TIMEвыводит время для каждого сообщения (по умолчанию не выводится).Пример трассировочной информации
TRACELOCK: PAUSE CHANNEL 6 by channel 8 Locked table: "T2" C#6 QUERY:. UPDATE. <TABLE "SYSTEM"."T2" AS T_0> SET. T_0."I" = {(T_0."I")(1) <+> }; TRACELOCK: Found DEADLOCK. Channel 6 tries to pause channel 8. Table to be locked: "T1" C#8 QUERY:. UPDATE. <TABLE "SYSTEM"."T1" AS T_0> SET. T_0."I" = {(T_0."I")(1) <+> }; TRACELOCK: UNLOCK CHANNEL 6 paused by channel 8Конструкция
LOGIO(опцииDEF,COMMT,ABSADR,PREPADR,HEX,BLOCK,REC,STRUCT,DATA,LEVEL) задает режим трассировки записи/чтения системного журнала.Опция
DEFзадает установки по умолчанию (действует также, если задано/TRACE=LOGIOбез опций).Опция
COMMTпо умолчанию отключена. Устаревшая опция, в текущей версии не используется.Опции
ABSADRиPREPADRпо умолчанию включены. Задают вывод журнальных адресов в дополнение к трассировке.Опция
HEXпо умолчанию отключена. Задает вывод журнального адреса в шестнадцатеричном виде, иначе в десятичном.Опция
BLOCKпо умолчанию включена. Задает вывод информации об операциях с журнальными блоками.Опция
RECпо умолчанию включена. Задает вывод информации на уровне записей в журнале.Опция
STRUCTпо умолчанию включена. Задает вывод информации о структуре журнальных записей.Опция
DATAпо умолчанию имеет значение 24. Задает вывод буферов данных (выводится не более указанного числа байт).Опция
LEVELпо умолчанию имеет значение 3. Задает начальный уровень трассировки, который влияет на вывод или подавление вывода той или иной журнальной информации, этот уровень увеличивается и уменьшается в процессе работы.Конструкция
KANCHNзадает режим трассировки изменения количества активных каналов.Конструкция
SORTзадает режим трассировки обмена с процессами сортировки, опцияTIMEвыводит время для каждого обмена (по умолчанию не выводится).Конструкция
WRBLзадает режим трассировки записи на диск/чтения с диска страниц пула, страниц ядра.Опция
READзадает режим трассировки чтения страниц (по умолчанию только запись страниц).Опция
SPPAGпредназначена для трассировки использования страниц файла1.01. Это файл индексов таблицы$$$SYSRL, но в нем также хранятся и разные страницы специальных типов. Типы страниц этого файла такие: страницы индексов, страницы ограничений целостности (integrity), страницы CHECK, страницы диапазонов значений AUTOINC, страницы длинных VIEW, страницы описания составных ключей, страницы расширенной информации о файлах. В трассировке отображаются: выделение страницы с определенным номером в файле, занятие страницы с определенным номером под определенный тип страницы, освобождение страницы с определенным номером из-под определенного типа страницы. Трассировка предназначена для поиска проблем, связанных со страницами файла1.01. -
-
/TRACELOG[=1] -
Задает вывод в файл
linter.outдиагностических сообщений об открытии и закрытии соединения с БД (с полной информацией об источнике команды) и ошибок выполнения запросов по соединениям.При задании параметра 1 информация о соединении выводится с каждым ошибочным запросом.
-
/PROCPRINT -
Разрешает хранимым процедурам выводить:
-
на консоль ядра СУБД ЛИНТЕР и в файл протоколирования
linter.outсообщения процедурной функции PRINT. Максимальный размер выводимого сообщения 980 символов.Сообщение выводится в виде:
«*** Message from Stored Procedure: <текст сообщения>»
По умолчанию выполнение функции PRINT игнорируется.
Примечание
Вывод сообщений в файл протоколирования
linter.outподдерживается со сборки 6.0.17.95. -
на консоль ядра СУБД ЛИНТЕР и в файл протоколирования
linter.outинформацию об исключениях. Если хранимая процедура оттранслирована с отладкой, то выдается номер ошибочной строки в процедуре.Примеры вывода.
Exception DIVZERO caught in procedure "TEST" line 2, processed Exception 903 caught in procedure "AAA" line 8, processed Exception CUSTOM (1) caught in procedure "TEST", processed Exception 905 caught in procedure "Trigger # 47#" line 3, processed Exception BADPARAM caught in procedure "TEST3" line 2, resignaled Exception DIVZERO caught in procedure "TEST", ignored
Не протоколируются те исключения, которые игнорируются автоматически (без явной конструкции IGNORE).
-
Функционал аналогичен подаче SQL-команды "SET PROCEDURE TRACE ON;", но не требуется перезапуск ядра.
-
-
/NOERRDIALOG -
Запрещает отображать диалоговые окна с диагностическими сообщениями об ошибках запуска ядра СУБД, направляя эти сообщения на консоль ядра СУБД.
-
/PIDFILE=<файл> -
Задает имя файла, в который будет записан Pid ядра СУБД. В случае корректного завершения работы СУБД этот файл удаляется.