LoadBalance - недокументированные параметры

Как я и обещал: сегодня мы рассмотрим недокументированные параметры утилиты LoadBalance.
В конце также будет небольшой FAQ, то есть ответы на вопросы, которые я получаю от пользователей.

Итак, чтобы получить список всех возможных параметров включая недокументированные, нужно запустить утилиту с ключом _HELP=y. По традиции, все недокументированные параметры начинаются с символа подчеркивания ! :-)


C:\RAC\Utils\LoadBalance>LoadBalance.exe _help=y

LoadBalance: Release 11.2.0.1.0 - Beta on 03.01.2010 16:19:12
Utility for check of Oracle RAC load balancing mode

Copyright (c) 2004,2009, Igor Melnikov. All rights reserved.

Build label: for HighLoad++ 2009
Format: LoadBalance.exe parameter1=value1 [parameterN=valueN]

Example: LoadBalance.exe userid=system/manager@rac count=20
LoadBalance.exe userid=rscott/rtiger@racdb count=400 keep_connect=N
LoadBalance.exe parfile=loadbalance.ini

Keyword Description (Default)
--------------------------------------------------
COUNT Session count, MAX - for maximum available sessions
HELP print this message: Y/N (N)
TIMEOUT Timeout between connections, in sec. (0)
RND_TIMEOUT Random timeouts between connections: min,max; in sec. (0,0)
ORACLEHOME Using "OracleHome" name for connection (default home)
OCIDLL Using this oci.dll for connection (from default home)
SHOWTIME Show connection average times to nodes (N)
LOGFILE Save output to this
KEEP_CONNECT Keep sessions during LoadBalance execution: Y/N (Y)
PARFILE Parameter filename
DETAIL Detail info about service attributes: Y/N (N)
IGNORE Ignore Oracle errors Y/N (N)
THREADS Session creation by parallel degree (for sessions storm) (1)
START_SCRIPT Execute this sql-file before test
WORK_SCRIPT Execute this sql-file in each session
STOP_SCRIPT Execute this sql-file after test
_HELP Show also undocumented parameters (N)
_TAF_TEST Testing TAF functionality (N)
_DBA_USERID DBA conn string for TAF test (kill session)
_SHOW_LBA Show messages from LBA (N)
_TRC_FILENAME Trace file name
_TRC_LEVEL Trace level: NONE,COMMON,SUPPORT (NONE)

USERID Connection string


1) Параметр _TAF_TEST (имеет два значения: Y или N) позволяет протестировать Transparent Application Failover [TAF].
Тестирование производится следующим образом: открываются соединения, после открытия соединений, производится их принудительое завершение командной KILL SESSION, далее в соединении производится операция с СУБД (select * from dual), после этого: отрабатывает TAF.
При этом утилита LoadBalance выводит распределение сессий по узлам до и после TAF, а также выводит среднее время выполнения переключения соединения при отработке TAF.
Все это позволяет оценить правильность настройки балансировки и время, необходимое на переключение при гибели текущего экземпляра.

2) Параметр _DBA_USERID позволяет указать строку соединения привилегированного пользователя, который будет выполнять оператор KILL SESSION при тестировании TAF. Уничтожение сессий происходит в отдельном потоке.

3)Параметр _SHOW_LBA (имеет два значения: Y или N) управляет выводом сообщений от Load Balancing Advisor [LBA]. Сообщения от LBA будут выводится в выходной поток (stdout) утилиты. Сообщения выводятся в отформатированном виде (утилита предварительно парсит оригинальное сообщение от LBA).
Для того чтобы получать сообщения LBA, нужно явно подписаться на очередь SYS$SERVICE_METRICS, для этого нужно предварительно выполнить вот такой скрипт:
declare
v_xSubscriber sys.aq$_agent;
begin
dbms_aqadm.grant_queue_privilege('DEQUEUE',
'SYS.SYS$SERVICE_METRICS',
'&USERNAME');

v_xSubscriber := new sys.aq$_agent('LOADBALANCE', null, null);

dbms_aqadm.add_subscriber(queue_name => 'SYS.SYS$SERVICE_METRICS',
subscriber => v_xSubscriber);

commit;
end;
где &USERNAME - имя пользователя, который будет указан в параметре USERID.

Анализируя сообщения от LBA вы можете контролировать: соответствует ли распределение сессий по узлам полученным рекомендациям !

4) Параметры _TRC_FILENAME и _TRC_LEVEL позволяют задать имя файла трассировки и ее уровень соответственно. В трассировочный файл выводятся все выполняемые OCI-вызовы и время их выполнения.


Напоминаю ссылку для скачивания: loadbalance.zip

И, в заключение, небольшой FAQ:

1) Существует ли версия LoadBalance для Linux ?
Ответ: К сожалению, LoadBalance полностью поддерживает только 32-х разрядные версии MS Windows.

2) Я запускаю LoadBalance на 64-х битной Windows x64 и получаю ошибку "Invalid load OCI".
Ответ: LoadBalance является 32-х битным приложением, и для его работы необходим именно 32-х разрядный Oracle Client (рекомендуется Instant Client 11.1.0.7 for Win32).
Просто установите на вашем сервере MS Windows x64 клиентское ПО Oracle в отдельный каталог, и далее укажите этот каталог утилите с помощью параметра OCIDLL или ORACLEHOME.

3) Утилита замечательно работает под Windows x64 в однопоточном режиме, но при переключении в многопоточный режим (параметр THREADS), она нестабильно работает - идут ошибки от ядра Windows.
Ответ: К сожалению, многопоточный режим под Win x64 НЕ поддерживается.

4) На каких условиях распространяется LoadBalance? Как мне получить поддержку?
Ответ: Утилита распространяется с материалами семинара RAC DD4D на условиях Freeware.

5) На каком языке программирования написана loadbalance ?
Ответ: Утилита разработа на языке программирования Object Pascal в среде разработки Delphi 2009 for Win32. Объем исходного кода составляет ~5000 cтрок.


Если у Вас есть истории по использовании этой утилиты: пожалуйста, поделитесь ими с мной!
:-)

Комментариев нет:

Отправить комментарий