вторник, 22 мая 2012 г.

ORA-28000: the account is locked

Веселая ошибка, дорогие джентльмены. И очень "содержательная" в плане "что делать и кто виноват".

Немного контекста. Ошибка возникает в OEM/Grid Control. Обычно после некоторых рукопашных действий - типа сменить пароль SYSMAN/DBSNMP в SQL*Plus, переконфигурировать консоль гуя, и тому подобных действий.

После чего - паника, гуй ругается, аккаунт лочится хронически.

Кто виноват?

Виноват, конечно же, Оракл. Индопрограммисты оракла нежно любят XML, и правится эта пакость обычно из какого-нибудь одного места, что в ряде случаев требует рукопашного вмешательства (это очень сильно достает и администраторов iAS/Fusion Middleware, где до черта конфигов в XML, рассованных в самые разные дыры, которые от православного OCP требуется помнить наизусть).

Что делать?

Самый внятный траблшутинг я нашел здесь. Хотя Дон носит дурацкую шляпу и выглядит как классический реднек, как специалист по ораклу он весьма вменяем (поболе многих джентльменов с sql.ru) и дает рабочие решения, а не руками разводит.

Несколько комментариев. Обычно блокируется аккаунт DBSNMP, но в ряде случаев следом блокируется и SYSMAN. Переустановка гуя не помогает, потому что сохраняется файл targets.xml.

Симптоматика - гуй не может нормально запуститься. Очень долгий таймаут запуска, и в конце - failed. Хотя консоль запускается, агент не может законнектиться к репозиторию.

Подсказка: тут можно как раз все же войти (не во всех случаях - у меня была ситуация, когда консоль не пускала SYSа. Лечится переконфигурированием с удалением и пересозданием репозитория), и через host->targets подправить мониторинговую конфигурацию.

Замечание: Пересоздание репозитория выносит большинство настроек консоли/OEM. Многие настройки придется делать заново.

И еще. Я бы посоветовал, перед сменой пароля DBSNMP посредством консоли, все же сделать то, что описано в статье Дона:

CREATE PROFILE MONITORING_PROFILE LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED; 
ALTER USER DBSNMP PROFILE MONITORING_PROFILE;

Это сильно облегчит работу с не полностью функциональным гуем.