OPTIMIZER-4
Название программы читается, как "оптимайзер" или, сокращенно, "опт". Никакого мизера в названии нет!Настоятельно рекомендую прочитать всю ветку до конца
Обращаться с вопросами по оптимизатору ко мне лично ЗАПРЕЩАЕТСЯ. Для этого есть эта тема.
Регистрация оптимизатора тут за Яндекс-деньги или по кредитке или тут бесплатно
для регистрации необходимо, чтобы оптимизатор хотя бы раз полностью отработал с -c=o!
при смене сервера программу необходимо перерегистрировать!
Для чего это нужно:
В определенный момент времени я понял, несмотря на то, что квалификационные возможности позволяют следить за набором подведомственных мне баз, я чисто физически не успеваю следить за необходимым набором параметров или трачу на это неоправдано большое количество времени. Я великолепно осведомлен о средствах администрирования самого Oracle, но они либо сильно глючнопадучие (dbconsole), либо долго ставятся и дорого стоят (grid). И, используя чужое средство мониторинга, не всегда удается заточить его под собственные нужды настолько хорошо, как хочется.
Оптимайзер позволяет, закинув мизерный по нынешним меркам файлик на сервер, держать на прицеле практически неограниченное количество баз, получать сообщения об ошибках в AlertLog, EventLog и некоторые системные ошибки на jabber или почту. Есть возможность уведомлять об изменении "просроченных" документов менеджера (отдельный jabber). Оптимайзер так же следит за свободным местом на диске и предупредит о проблеме администратора. Контролируется свободное место в табличных пространствах, в случае его нехватки добавляется новый файл. В выделенное время проводятся оптимизационные мероприятия, быстродействие поддерживается на должном уровне. Достаточно вчитаться в лог-файл и вы поймете, как много работы спадает с плеч при использовании оптимизатора. А программа развивается дальше...
Ежедневный отчет, высылаемый оптимизатором на почту по каждой БД, включает в себя:
а) время последней резервной копии
б) сбойные задания
в) время последнего переноса и расчета
г) незагруженные кассы по отношению к предыдущему дню
д) неправильные штрихкоды
е) некорректные Z-отчеты
ж) неправильные наименования карточек
з) пакеты почтового модуля, старше суток, с указанием даты самого старого
и) ошибки почтового модуля, с указанием самой старой
к) незакрытые документы старше определенной даты
л) отчет по изменению документов сотрудниками (количественный)
м) лидеры по максимальным и минимальным остаткам в сети
н) выручка за сутки
о) лидеры продаж за месяц (минимум и максимум)
Установка:
Необходимо скачать первоначальный дистрибутив
тут. Первоначальным он называется, потому, что внутри лежит полный комплект из библиотечки java для Oracle и сам оптимизатор. Как правило, в этом дистрибутиве лежит уже устаревшая версия оптимизатора, которая обновится при первом же запуске, что займет несколько килобайт вашего траффика. Помимо этого необходимо установить JRE или убедиться, что у вас уже установлена версия не ниже 1.6. Под Windows это выясняется простым запуском cmd и java -version в нем.
Запуск:
В составе дистрибутива есть примеры батников запуска под разные OS, рекомендую поправить их под свои нужды, указав полный путь к java. По умолчанию вписана команда -c=h, что выведет справку с перечнем команд, из которых вы сможете выбрать нужную. На первый раз рекомендую запустить команду -c=r, что создаст в вашей базе необходимый набор конфигурационных таблиц (обратите внимание, что программа должна действительно выполниться, а не пытаться обновиться). Все они имеют префикс olegon. Необходимо и обязательно просмотреть список параметров, чтобы исправить под свои нужды. Все команды, кроме -c=o вторичны, рекомендую установить регулярный и круглосуточный запуск оптимизатора с интервалом в 20 минут, с командой -c=o. В отличие от своих предшественников, оптимизатор расчитан именно на регулярное использование и имеет ряд функций мониторинга и оповещения.
Графический интерфейс: Пишет konst.
https://olegon.ru/showthread.php?t=10751
Что необходимо знать:
1. Новый оптимизатор - сетевой продукт. Для его работы необходимо подключение
от сервера к моему серверу по шифрованному соединению на порт 7654. Входящие порты в целях безопасности открывать не надо. Извините, но прокси не поддерживается и в скором времени не планируется поддерживать. Есть масса программ для проброса траффика через прокси без его поддержки, так же очень просто этот порт пробросить наружу через NAT.
2. Рекомендую запускать его в некратное количество минут, т.е. раз в 22, 23 или 24 минуты, а не раз в 20 минут. Продукт достаточно популярный, подключаются многие, а количество одновременных подключений ограничено. По этой же причине не рекомендую "долбиться", например, раз в 5 минут на автомате, это бессмысленно. Заядлые дятлы будут забанены.
3. Оптимизатор бесплатен в основной части и может быть расширен в функционале путем регистрации. В настоящее время
(16.03.10) с его помощью мониторится 44 (25.08.11) с его помощью мониторится 155 баз. Я это делаю для себя (
занимаюсь аутсорсом), вы пользуетесь моими наработками.
4. Оптимизатор не модифицирует структуру supermag каким-либо образом. Он работает с Oracle.
5. Необходимо и обязательно указывать свои Jabber и Email контакты, просто жест уважения, спамить я вас не собираюсь, а связаться иногда в случае каких-то косяков необходимо.
6. Журнал оптимизатора лучше периодически почитывать и чистить. Он достаточно болтлив.
7. Поддерживаемые версии Oracle на (16.03.10) - 10gR2 полностью, все ниже до 9iR2 - частично. Oracle 8i не поддерживается в связи с ее специфичностью и отсутствием возможностей и желания это делать. Планов по 8i нет и, скорее всего, не будет.
8. Не рекомендую использовать названия таблиц и табличных пространств с "_" (underscore, подчеркиванием) в 9i. Известный баг оптимизатора, который пока не исправлен и вряд ли будет исправлен.
9. Оптимизатор работает не только на базах Супермага. Полностью поддерживаются версии Супермага от 1.024.6.
10. Время MaintenanceTime задается по московскому времени!
Таблицы параметров:
olegon_params - основная таблица параметров
olegon_sync - таблица, в которой можно перечислить базу, номера магазинов в ней, после чего раз в сутки оптимизатор будет генерировать в своей директории текстовик с перечислением расхождений между базами по карточкам и документам. Естественно, с сервера, где запускается оптимизатор, должны быть видны те базы, которые перечисляются
olegon_summary - таблица собственных мониторов, указывается имя монитора и строка его запроса. Мониторы выводятся в summary-части лога
Параметры:
AddBarcodes - при отсутствии на активном товаре ш/к, он будет добавлен в соответствии с правилами Супермага (по умолчанию "no")
AdminEmail - емейл администратора базы, Если не будет подтвержден параметром AdmEmailConfirm, то игнорируется: будет только отправлен один раз код подтверждения. На этот адрес высылаются ежедневные отчеты. Отчеты администратора не полностью пересекаются с отчетами менеджера. Они ориентированы на работоспособность базы. Если установлен UseReminder, но не установлен ManagerEmail, то на этот адрес высылаются уведомления при отсутствии подключений оптимайзера более 4х часов.
AdminJabber - jabber администратора базы. Если не будет подтвержден параметром AdmJabberConfirm, то игнорируется: будет только отправлен один раз код подтверждения. Если в jabber адрес забить что-то содержащее @mail.ru - разрыв соединения.
AdmEmailConfirm - код подтверждения AdminEmail. По умолчанию "no". Первого числа каждого месяца в 02:30мск код меняется. Пока код подтверждения в базе и в центре оптимизатора не совпадают - указанный адрес исключается из всех алгоритмов и на него больше ничего не отправляется. Для повторной отсылки кода подтверждения установить ""no"". Если в сутки уходит более 20 сообщений почты или более 20 сообщений jabber на одну базу, код подтверждения меняется.
AdmJabberConfirm - код подтверждения AdminJabber. По умолчанию "no". Первого числа каждого месяца в 02:30мск код меняется. Пока код подтверждения в базе и в центре оптимизатора не совпадают - указанный адрес исключается из всех алгоритмов и на него больше ничего не отправляется. Для повторной отсылки кода подтверждения установить ""no"". Если в сутки уходит более 20 сообщений почты или более 20 сообщений jabber на одну базу, код подтверждения меняется.
ArchiveLogs - архивировать ли логи в течение дня (по умолчанию - yes).
AutoImport - импорт карточек. Используется только разработчиком. Категорически запрещено изменять этот параметр самостоятельно.
CheckSystem - проверка табличного пространства System на посторонние сегменты
CleanDir - очистка директорий adump/bdump/udump в MaintenanceTime (yes)
ContrAddGoods - импорт данных в контракты (более подробное описание см. далее в этой теме)
ContrByBarcode - опция импорта данных в контракты, при которой распознавание товара осуществляется по штрихкоду. Весовые ШК не разбираются (должны быть как в базе).
DeleteOldAC - удалять акты переоценок старше указанного срока в днях. По умолчанию "no". Записи в истории цен сохраняются.
DeleteOldORBlob - если не "no", то все привязанные к заказам данные (в первую очередь это нацелено на информацию по генерации заказов) будут удаляться, если документ старше количества дней в этом параметре. Таблицы не только очищаются, но и высвобождают освободившееся от lob место. По умолчанию "no".
DisableCompile - отключить компиляцию инвалидных объектов
DisableCompute - отключить compute в сборе статистики
DisableSysStats - отключить сбор системной статистики (на 9i системная не собирается в принципе)
DontUseFFMAPREP - не оптимизировать FFMAPREP
DumpFTP - основной ftp-сервер, куда должен заливаться дамп базы. Заливка осуществляется кроссплатформенной программой wput, которую заблаговременно надо распаковать (с библиотечками) в /System32 или другую директорию %PATH%. Проверка доступности wput: Пуск - Выполнить - cmd - wput . Она должна выполниться.
DumpFTP2 - вторичный ftp-сервер, куда должен заливаться дамп базы
DumpNoArch - не архивировать дамп базы. При yes дамп не архивируется, а переименовывается в имя, аналогичное архиву. Архивация дампа не производится.
DumpPwd - пароль на дамп базы. Дамп сжимается архиватором 7zip, который должен быть в %PATH% (добавить путь к архиватору, вроде C:\Program files\7zip в переменных окружения). Проверка доступности 7zip: Пуск - Выполнить - cmd - 7z . Должен выполниться.
FFIndexes - табличное пространство для FF-индексов. Если не задан, то считается равным FFTables. Работает только в паре с FFTables: без переноса таблиц индексы не переносятся. Поэтому рекомендуется сначала задавать FFIndexes, а уже затем FFTables. После установки FFTables, FF-таблицы и FF-индексы будут переноситься в указанные ТП. Табличное пространство должно быть создано заранее.
FFTables - табличное пространство для FF-таблиц. Рекомендуется сначала устанавливать FFIndexes, если индексы должны быть в другом ТП. После установки FFTables, FF-таблицы и FF-индексы будут переноситься в указанные ТП. Индексы без таблиц не переносятся. Табличное пространство должно быть создано заранее.
IgnoreLongUser- список пользователей, которые однозначно генерят LongOps (смотри параметр LongOp). По умолчанию игнорируются SUPERMAG и SYS.
KillLongUsers - прибивать сессии, пребывающие активными (выполняющие запрос) более LongOp*2 времени (смотри параметр LongOp). По умолчанию - yes . IgnoreLongUsers так же учитываются. Т.е. алгоритм прост, в первый проход приходит уведомление о проблеме пользователя, во второй проход, если пользователь не успокоился и LongOp*2 уже отработал - сессия прибивается. Прибивается именно длинная сессия. Т.е. если пользователь запустил что-то зверское, а сам параллельно в чем-то ковыряется, то прибьется зверское. Прошу обратить внимание тех, кто мучает административный модуль не из под supermag.
LastAlertLog - номер последней учтенной строки в alert.log
LastDocLog - номер последней учтенной строки в журнале документов Супермага
LastEventLog - номер последней учтенной строки в журнале событий Супермага
LastRMAN - дата, на которую RMAN уже запускался. Если необходим внеочередной бэкап, параметр следует удалить и оптимизатор запустит RMAN при очередном проходе
LastReport - дата за которую не будет генерироваться ежедневный отчет-сводка на почту админу и менеджеру. После выполнения отчета выставляется в текущую.
LongOp - если пользователь превышает запросом это значение, администратор уведомляется об ошибке с указанием пользователя и компьютера. По умолчанию - 600 секунд. Пользователи, указанные в IgnoreLongUser не учитываются. Удвоенное значение LongOp используется для отбора сессий, которые будут "убиты" при включенном KillLongUsers. На 9i параметр игнорируется.
LowDiskSpace - размер свободного места (в Мб) на дисках, где располагается база (и все связанные с ней файлы, в том числе архивлоги и журналы), меньше которого будет выведено предупреждение
MaintenanceTime - время, когда программа расчитывает находиться без пользователей и будет заниматься общей оптимизацией базы. До запятой - время начала, после - продолжительность в часах. Указывать по МОСКОВСКОМУ времени.
ManagerEmail - емейл менеджера базы
ManagerEmail2 - емейл второго менеджера базы. Если не будет подтвержден параметром ManEmailConfirm, то игнорируется: будет только отправлен один раз код подтверждения. Отчеты менеджера не включают ошибки базы и подобную админскую информацию.
ManagerJabber - (по умолчанию = "-" и сообщения не отсылаются), жаббер менеджера по Супермагу. Т.е. ему будут идти сообщения о событиях, связанных с самим СМ (например, при создании отчета по синхронизации)
ManJabberConfirm - код подтверждения ManagerJabber. По умолчанию "no". Первого числа каждого месяца в 02:30мск код меняется. Пока коды в базе и в центре оптимайзера не совпадают, адрес не используется. Для повторной отсылки кода подтверждения установить "no". Если в сутки уходит более 20 сообщений почты или более 20 сообщений jabber на одну базу, код подтверждения меняется.
MaxDocDiff - максимальный возраст (в днях) документа, который можно редактировать. При превышении уведомляется менеджер. Рекомендуется устанавливать значение больше ShiftClosed. Этот же параметр влияет на отбор для отчета "Забытых документов": Приходы,Расходы,Заказы,Перемещение,Кассовые приходы и расходы,Расход и выход из производства,Сличительная и инвентаризационная ведомости,Акт переоценки,Маркетинговая акция выбираются по второму статусу (красная галка), из периода старше определенного в MaxDocDiff.
MaxFreeTablespace - минимум свободного места в табличном пространстве, включая возможное расширение файлов табличного пространства. Следите за местом на дисках самостоятельно, пожалуйста. Добавлять диски программа не умеет. Файлы добавляются в ту же директорию, куда был добавлен последний файл этого табличного пространства.
NoTabLimit - обычно при оптимизации таблицы перебираются по 20 штук. Этот параметр отключает такое ограничение. Обращаю внимание, что штатное ограничение вполне рационально.
ORAIgnore - список игнорируемых ORA-ошибок. Перечисляются в формате ":номер:". По умолчанию равен :06512:00054:08115:20032:
OnlyGoodsInRep - в отчете по остаткам выдавать только карточки с типом "товар"
OptimizeOrders - ускорение заказов (работает только на Oracle Enterprise edition), по умолчанию включена. При оптимизации заказов, если обнаруживается неоптимизированный план запроса, shared pool сбрасывается
OrdersLimit - определяет, будет ли оптимизация заказов запускаться дважды в день или с каждым запуском оптимизатора
ParallelUpload - запускает архивацию и загрузку дампа в параллельной задаче, через Scheduler (в случае Windows). Включен по умолчанию, поскольку у многих из-за обрывов связи оптимизатор никак не мог проконтролировать завершение загрузки и запускал экспорт еще раз. Сервис Task Scheduler ("Планировщик заданий") должен быть запущен. В Линуксе для ParallelUpload должен работать сервис atd (команда at)
PerformTransfer - проценты от суток, через которые необходимо производить перенос товародвижения. 0 - отключает перенос вообще. Перенос производится только в MaintenanceTime. Алгоритм простой, если MaintenanceTime, то идет проверка отработанных процентов, если разница больше PerformTransfer, то запускается перенос. Программа самостоятельно пытается отключить всех пользователей, а так же почтовый и кассовый модули на уровне базы.
Postman (yes) - выставлять ли параметры почтовика в 10 минут отправки приема, 100 объектов в пакете и 1 поток приема.
RunRMAN - запускать ли RMAN. Для корректного создания резервных копий необходимо, чтобы работала авторизация на уровне ОС, т.е. пользователь, из под которого запускается оптимизатор, должен находиться в группе ora_dba. Должна быть включена авторизация NTS: SQLNET.AUTHENTICATION_SERVICES= (NTS). Для unix-подобных OS, соответственно, пользователь должен быть в группе dba.
SaveDump - использовать ли дамп (exp) в дополнение к бекапу. Можно выставить SaveDump в skipit, чтобы экспорт не производился никогда. Если дамп по своему размеру выполняется раз в неделю, то он выполняется в субботу. Для ежедневного дампа независимо от размера, установить DumpNoLimit.
SecurityMode - категорически запрещается изменять. Для внутреннего использования.
ShiftClosed - на сколько суток от текущей даты максимум должен быть закрыт для редактирования период
TopCount - количество Top и Lowest товаров, отображаемых в ежедневном отчете. По умолчанию равен 5.
UseReminder - если yes (по умолчанию), то при отсутствии подключений более 4х часов оптимизатор пришлет уведомление на ManagerEmail, а в случае незаданного ManagerEmail - на AdminEmail. Уведомления будут приходить около 10 раз с интервалом в 3 часа. Шлет их параллельная сессия оптимизатора, запущенная другим клиентом, т.е. если все отвалится, то спама не будет.
UseReport - включает и выключает ежедневный отчет. По умолчанию – yes
UseXMLAudit - вывод аудита в XML, не забивая системный журнал. Следите за содержимым каталога adump, если включен XML-аудит, там xml копится, неплохо бы чистить иногда. У этого параметра нет обратного хода, т.е. если не стоит yes, то XML просто не будет включаться, но выключаться при no он тоже не будет, потому, что есть различные варианты неXML-хранения.
Разница между зарегистрированной и бесплатной версиями оптимизатора
Статистика и количество подключенных баз