Установка Enterprise Manager Database Control

THE HOLY BIBLE - King James Version - БИБЛИЯ в Синодальном переводе
"Нас Атакуют!" Изобличи козни лукавого, запрети диаволу

Установка Enterprise Manager Database Control

База данных Oracle имеет все необходимое для управления и мониторинга в виде "V$*" или "DBA_*" dictionary views, доступ к которым может быть получен через командную строку (SqlPlus) или через графический интерфейс (Enterprise Manager), так популярный в среде "ДБА v2.0". Сам по себе EM как продукт оставляет желать лучшего, но уже достиг того уровня стабильности, на котором EM может быть полезным и использоваться в реальной жизни.

Очень часто возникает ситуация, когда сам по себе Enterprise Manager не работает - в этом случае "ДБА v2.0" начинает чувствовать свою бесполезность. Решение очевидно - надо знать и уметь использовать средства командной строки. К сожалению (или к счастью?) это требует некоего понимания архитектуры и реализации Oracle RDBMS, а также наличия базовых навыков работы с UNIX.

Менее очевидное, но более заманчивое решение кроется в восстановлении работоспособности EM.

Надо также признать, что во многих случаях EM может быть хорошим средством для просмотра графиков производительности, быстрого поверхностного анализа истории работы системы. обнаружения очевидных дефектов в SQL запросах и прочей черновой работы. Особенно полезен EM может быть для разработчиков под Oracle, которым необходимо быстро установить тестовую систему, поддерживать и настраивать ее самостоятельно.

Опыт показывает, что "поломанный" EM достаточно трудно привести в рабочее состояние. Особенно в ситуации "одно пользовательской" системы, полностью поддерживаемой разработчиком или даже бизнес-пользователем.

В этой заметке мы попробуем наиболее простой способ восстановления работоспособности ЕМ - его полную переустановку. Естественно, вся "история" работы системы при этом будет утеряна - но графики и прочие ценные для разработчика средства будут восстановлены. По затратам времени этот подход куда более эффективен, чем попытки устранения неполадок в Enterprise Manager. Также эта заметка может быть использована желающими "включить" EM в не имеющей его, но уже работающей базе данных.

Прежде чем мы продолжим, я хотел бы привести строки из Евангелия:



................... == От Луки святое благовествование ==  ......................
=== Глава 21, Стих 8 ===
8 Он сказал: берегитесь, чтобы вас не  ввели в заблуждение, ибо многие придут
 под именем Моим, говоря, что  это Я; и это время близко: не  ходите вслед их.
9 Когда же услышите о войнах и  смятениях, не ужасайтесь, ибо этому надлежит
 быть прежде; но не тотчас конец.
10 Тогда сказал им: восстанет  народ на народ, и  царство на царство;
11 будут большие землетрясения  по местам, и глады, и  моры, и ужасные
 явления, и великие знамения с неба.

Лично для вас благая весть - Единородный Сын Божий Иисус Христос любит вас, Он взошел на крест за ваши грехи, был распят и на третий день воскрес, сел одесную Бога и открыл нам дорогу в Царствие Небесное.

Никто из нас не знает, когда наступит конец всему - но мы живем, отгоняя мысли о нашем предназначении в этом мире и нашей христианской ответственности перед Богом. Грешим и не каемся, совершаем преступления и остаемся безнаказанными до поры до времени, думая что так будет всегда.

Покайтесь, примите Иисуса как вашего Спасителя, ибо наступают последние времена и время близко - стоит Судья у ворот.

Храните себя от идолов и ложных учений, ищите ответы на все вопросы в Библии, молитесь Богу о ваших нуждах - и ожидайте Спасителя нашего Иисуса Христа. Внимайте тому, что Бог говорит вам через Духа Святого, не слушайте лжеучителей и лжепророков, коих много уже сейчас и будет все больше, нам с вами во искушение.

На главной странице этого сайта вы найдете программу для чтения Библии в командной строке - буду очень рад если программа окажется полезной. Пожалуйста, читайте Библию, на экране или в печатном виде - вы будете искренне удивлены как много там сказано лично про вас и ваши обстоятельства.


Вернемся к нашим техническим деталям.

Я предполагаю что уважаемый читатель владеет необходимыми знаниями и навыками использования Linux и Oracle, поэтому я буду очень краток. Цель этой заметки изложить самый простой подход к переустановке EM и прояснить некоторые детали.

Для начала уясним для себя, что же такое Oracle Enterprise Manager.
Продукт имеет две версии:

  • Enterprise Manager Grid Control
  • Enterprise Manager Database Control

  • В том или ином виде, EM всегда незримо присутствует - он устанавливается автоматически в ORACLE HOME любой базы данных, в директории "sysman", где содержатся необходимые java классы, perl и SQL скрипты и все прочее необходимое для работы самого приложения. Но любая база должна быть "зарегистрирована" для управления EM. По умолчанию, Database Configuration Assistant регистрирует новую базу для EM, но эта опция может быть отключена. Также, если ваша база была создана скриптом (через SQL команду CREATE DATABASE) - ЕМ не будет знать о вашей базе ничего.

    EM Grid Control используется для управления большим количеством продуктов Oracle, установлен в единственном экземпляре централизованно на отдельном сервере и поддерживается администраторами баз данных вашей компании. Эту версию системы трогать не нужно, эта статья не про нее. Если в вашей компании есть централизованный EM Grid Control - обращайтесь за помощью к ДБА.

    EM Database Control используется для одиночных баз данных, с одним instance или кластерных. Если вы - владелец и администратор такой базы, установленной в виртуальной машине или на отдельно стоящем сервере - Database Control это ваш выбор и эта заметка для вас.

    Удаление старой неработающей версии EM

    Предположим, что вы получили доступ к серверу, на котором когда-то был Oracle 9, в процессе разработки одна существующая база была обновлена до версий 10.1, 10.2. 11.1 и наконец 11.2. С базой работает только несколько человек из вашей команды разработчиков и используется она только для тестирования. Ваш администратор перегружен работой и не хочет ничего слышать о EM Grid Control и советует вам использовать Toad. Но, как настоящий специалист, вы хотите воспользоваться новыми средствами мониторинга, предлагаемыми в EM 11g. Также мы предположим, что вопрос лицензирования Oracle решен в вашей компании и у вас есть лицензии на использование EM Option packs.

    Определим переменную ORACLE_UNQNAME (в моем случае она такая же, как ORACLE_SID - "DB11G") и проверим, какие компоненты установлены:

    02:47:18 SQL> ;
    1  select comp_id, comp_name, version, status
    2* from dba_registry
    02:47:23 SQL> /
    
    COMP_ID 		       COMP_NAME			   VERSION			  STATUS
    ------------------------------ ----------------------------------- ------------------------------ -----------
    OWB			       OWB				   11.2.0.2.0			  VALID
    APEX			       Oracle Application Express	   3.2.1.00.12			  VALID
    EM			       Oracle Enterprise Manager	   11.2.0.2.0			  VALID
    AMD			       OLAP Catalog			   11.2.0.2.0			  VALID
    SDO			       Spatial				   11.2.0.2.0			  VALID
    ORDIM			       Oracle Multimedia		   11.2.0.2.0			  VALID
    XDB			       Oracle XML Database		   11.2.0.2.0			  VALID
    CONTEXT 		       Oracle Text			   11.2.0.2.0			  VALID
    EXF			       Oracle Expression Filter 	   11.2.0.2.0			  VALID
    RUL			       Oracle Rules Manager		   11.2.0.2.0			  VALID
    OWM			       Oracle Workspace Manager 	   11.2.0.2.0			  VALID
    CATALOG 		       Oracle Database Catalog Views	   11.2.0.2.0			  VALID
    CATPROC 		       Oracle Database Packages and Types  11.2.0.2.0			  VALID
    JAVAVM			       JServer JAVA Virtual Machine	   11.2.0.2.0			  VALID
    XML			       Oracle XDK			   11.2.0.2.0			  VALID
    CATJAVA 		       Oracle Database Java Packages	   11.2.0.2.0			  VALID
    APS			       OLAP Analytic Workspace		   11.2.0.2.0			  VALID
    XOQ			       Oracle OLAP API			   11.2.0.2.0			  VALID
    
    18 rows selected.
    
    Elapsed: 00:00:00.04
    02:47:27 SQL>
    

    Мы видим, что элемент "ЕМ" присутствует в списке, также мы видим пользователя с именем "SYSMAN" в DBA_USERS. Удостоверимся, что существующий EM действительно не работает:

    u@x > ssh oul5a
    ..................... == Вторая книга Паралипоменон == .........................
    === Глава 33, Стих 12 ===
    12 И в тесноте своей  он  стал  умолять  лице  Господа  Бога  своего  и  глубоко
    смирился пред Богом отцов своих.
    
    (b+/b-, c+/c-, +/-, *) >
    [oracle@OUL5A ~]$ emctl status dbconsole
    OC4J Configuration issue. /u01/app/oracle/product/11.2.0/db_2/oc4j/j2ee/OC4J_DBConsole_OUL5A_DB11G not found.
    [oracle@OUL5A ~]$ emctl status agent
    EM Configuration issue. /u01/app/oracle/product/11.2.0/db_2/OUL5A_DB11G not found.
    [oracle@OUL5A ~]
    

    Как видно, Enterprise Manager имеется, но в нашем случае совершенно не функционален. Убедитесь, что Oracle Listener запущен и ожидает подключения:

    u@x > ssh oul5a
    .............................. == Псалтирь == ..................................
    === Глава 75, Стих 10 ===
    9 С    небес    Ты    возвестил    суд;    земля    убоялась    и        утихла,
    10 когда  восстал  Бог  на   суд,   чтобы   спасти   всех   угнетенных    земли.
    
    (b+/b-, c+/c-, +/-, *) >
    [oracle@OUL5A ~]$ lsnrctl status
    
    LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 12-FEB-2011 03:20:19
    
    Copyright (c) 1991, 2010, Oracle.  All rights reserved.
    
    Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER
    Version                   TNSLSNR for Linux: Version 11.2.0.2.0 - Production
    Start Date                12-FEB-2011 03:18:40
    Uptime                    0 days 0 hr. 1 min. 38 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Log File         /u01/app/oracle/diag/tnslsnr/OUL5A/listener/alert/log.xml
    Listening Endpoints Summary...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=OUL5A)(PORT=1521)))
    Services Summary...
    Service "DB11G" has 1 instance(s).
    Instance "DB11G", status READY, has 1 handler(s) for this service...
    Service "DB11GXDB" has 1 instance(s).
    Instance "DB11G", status READY, has 1 handler(s) for this service...
    The command completed successfully
    [oracle@OUL5A ~]$
    

    Удаляем необходимые части EM. Я не хочу использовать команду "emca -deconfig dbcontrol db -repos drop", поскольку она переводит базу данных в quiesce mode. Вместо этого:

    [oracle@OUL5A ~]$ $ORACLE_HOME/sysman/admin/emdrep/bin/RepManager OUL5A 1521 DB11G -sys_password 1 -action drop
    Enter repository user name : sysman
    Getting temporary tablespace from database...
    Found temporary tablespace: TEMP
    Checking SYS Credentials ... rem error switch
    OK.
    rem error switch
    Dropping the repository..
    Checking for Repos User ... Exists.
    Repos User exists..
    Clearing EM Contexts ... OK.
    Dropping EM users ...
    Done.
    Dropping Repos User ... Done.
    Dropping Roles/Synonymns/Tablespaces ... Done.
    Dropped Repository Successfully.
    [oracle@OUL5A ~]$
    
    03:27:59 SQL> select comp_id, comp_name, version, status
    03:28:12   2  from dba_registry where comp_id = 'EM';
    
    no rows selected
    
    Elapsed: 00:00:00.08
    03:28:23 SQL>
    

    Убедитесь. что пользователь "SYSMAN" более не существует в DBA_USERS. Если это не так - используйте команду "DROP USER SYSMAN CASCADE;"

    Установка EM Database Control

    Теперь самое время "перерегистрировать" вашу базу данных для ЕМ. Сейчас нам надо доделать кое-какую работу за разработчиков из Oracle - откроем файл "$ORACLE_HOME/sysman/admin/scripts/emca/emcaDbUtil.pl", найдем строку #107 и изменим ее таким образом:

    $lda = DBI->connect('dbi:Oracle:', "SYS", "$dbPwd",
    

    это необходимо для устранения ошибки "CONFIG: Failed to unlock mgmt_view account". Для регистрации базы данных в EM Database Control 11g используется утилита "emca":

    [oracle@OUL5A ~]$ emca -config dbcontrol db -repos create -SYS_PWD 1
    STARTED EMCA at Feb 12, 2011 5:48:38 AM
    EM Configuration Assistant, Version 11.2.0.0.2 Production
    Copyright (c) 2003, 2005, Oracle.  All rights reserved.
    
    Enter the following information:
    Database SID: DB11G
    Listener port number: 1521
    Listener ORACLE_HOME [ /u01/app/oracle/product/11.2.0/db_2 ]:
    Password for DBSNMP user:
    Password for SYSMAN user:
    Email address for notifications (optional):
    Outgoing Mail (SMTP) server for notifications (optional):
    -----------------------------------------------------------------
    
    You have specified the following settings
    
    Database ORACLE_HOME ................ /u01/app/oracle/product/11.2.0/db_2
    
    Local hostname ................ OUL5A
    Listener ORACLE_HOME ................ /u01/app/oracle/product/11.2.0/db_2
    Listener port number ................ 1521
    Database SID ................ DB11G
    Email address for notifications ...............
    Outgoing Mail (SMTP) server for notifications ...............
    
    -----------------------------------------------------------------
    Do you wish to continue? [yes(Y)/no(N)]: Y
    Feb 12, 2011 5:50:05 AM oracle.sysman.emcp.EMConfig perform
    INFO: This operation is being logged at /u01/app/oracle/cfgtoollogs/emca/DB11G/emca_2011_02_12_05_48_38.log.
    Feb 12, 2011 5:50:11 AM oracle.sysman.emcp.EMReposConfig createRepository
    INFO: Creating the EM repository (this may take a while) ...
    
    ... tail the logfile
    
    Feb 12, 2011 6:09:57 AM oracle.sysman.emcp.EMReposConfig invoke
    INFO: Repository successfully created
    Feb 12, 2011 6:10:14 AM oracle.sysman.emcp.EMReposConfig uploadConfigDataToRepository
    INFO: Uploading configuration data to EM repository (this may take a while) ...
    Feb 12, 2011 6:11:25 AM oracle.sysman.emcp.EMReposConfig invoke
    INFO: Uploaded configuration data successfully
    Feb 12, 2011 6:11:28 AM oracle.sysman.emcp.ParamsManager getLocalListener
    WARNING: Error retrieving listener for OUL5A
    Feb 12, 2011 6:11:37 AM oracle.sysman.emcp.util.DBControlUtil secureDBConsole
    INFO: Securing Database Control (this may take a while) ...
    Feb 12, 2011 6:12:01 AM oracle.sysman.emcp.util.DBControlUtil secureDBConsole
    INFO: Database Control secured successfully.
    Feb 12, 2011 6:12:01 AM oracle.sysman.emcp.util.DBControlUtil startOMS
    INFO: Starting Database Control (this may take a while) ...
    Feb 12, 2011 6:14:06 AM oracle.sysman.emcp.EMDBPostConfig performConfiguration
    INFO: Database Control started successfully
    Feb 12, 2011 6:14:07 AM oracle.sysman.emcp.EMDBPostConfig performConfiguration
    INFO: >>>>>>>>>>> The Database Control URL is https://OUL5A:1158/em <<<<<<<<<<<
    Feb 12, 2011 6:15:03 AM oracle.sysman.emcp.EMDBPostConfig invoke
    WARNING:
    ************************  WARNING  ************************
    
    Management Repository has been placed in secure mode wherein Enterprise Manager data will be encrypted.
    The encryption key has been placed in the file:
    /u01/app/oracle/product/11.2.0/db_2/OUL5A_DB11G/sysman/config/emkey.ora.
    Ensure this file is backed up as the encrypted data will become unusable if this file is lost.
    
    ***********************************************************
    Enterprise Manager configuration completed successfully
    FINISHED EMCA at Feb 12, 2011 6:15:03 AM
    [oracle@OUL5A ~]$
    

    Проверим, запущены ли DBConsole и agent, он используется даже в локальной конфигурации:

    [oracle@OUL5A ~]$ emctl status dbconsole
    Oracle Enterprise Manager 11g Database Control Release 11.2.0.2.0
    Copyright (c) 1996, 2010 Oracle Corporation.  All rights reserved.
    https://OUL5A:1158/em/console/aboutApplication
    Oracle Enterprise Manager 11g is running.
    ------------------------------------------------------------------
    Logs are generated in directory /u01/app/oracle/product/11.2.0/db_2/OUL5A_DB11G/sysman/log
    [oracle@OUL5A ~]$ emctl status agent
    Oracle Enterprise Manager 11g Database Control Release 11.2.0.2.0
    Copyright (c) 1996, 2010 Oracle Corporation.  All rights reserved.
    ---------------------------------------------------------------
    Agent Version     : 10.2.0.4.3
    OMS Version       : 10.2.0.4.3
    Protocol Version  : 10.2.0.4.3
    Agent Home        : /u01/app/oracle/product/11.2.0/db_2/OUL5A_DB11G
    Agent binaries    : /u01/app/oracle/product/11.2.0/db_2
    Agent Process ID  : 4617
    Parent Process ID : 4575
    Agent URL         : https://OUL5A:3938/emd/main
    Repository URL    : https://OUL5A:1158/em/upload/
    Started at        : 2011-02-12 06:12:11
    Started by user   : oracle
    Last Reload       : 2011-02-12 06:12:11
    Last successful upload                       : 2011-02-12 06:20:06
    Total Megabytes of XML files uploaded so far :    10.17
    Number of XML files pending upload           :        0
    Size of XML files pending upload(MB)         :     0.00
    Available disk space on upload filesystem    :    19.30%
    Data channel upload directory                : /u01/app/oracle/product/11.2.0/db_2/OUL5A_DB11G/sysman/recv
    Last successful heartbeat to OMS             : 2011-02-12 06:19:52
    ---------------------------------------------------------------
    Agent is Running and Ready
    [oracle@OUL5A ~]$
    

    Не знаю как вам, а мне ни капельки не удивительно что ЕМ 11g использует агента версии 10g. Проигнорируем эту деталь и откроем в броузере страничку "https://OUL5A:1158/em", в моем примере логин "sysman", пароль "1" или из командной строки:

    u@x > ssh oul5a
    ............. == Послание к Ефесянам святого апостола Павла == .................
    === Глава 5, Стих 7 ===
    6 Никто да не обольщает вас пустыми словами, ибо  за  это  приходит  гнев  Божий
    на сынов противления;
    7 итак, не будьте сообщниками их.
    
    (b+/b-, c+/c-, +/-, *) >
    [oracle@OUL5A ~]$ telnet OUL5A 1158
    Trying 192.168.56.10...
    Connected to OUL5A (192.168.56.10).
    Escape character is '^]'.
    GET
    .... нечитаемые символы - открытие SSL сессии ....
    Connection closed by foreign host.
    [oracle@OUL5A ~]$
    

    Вот и все - наша база данных зарегистрирована в ЕМ, все странички работают и показывают наши привычные графики. Не забудьте прописать имя хоста (в моем примере, OUL5A) в "/etc/hosts" файле вашей рабочей станции - иначе некоторые страницы ЕМ не будут работать.

    Спасибо что зашли,

    Будьте благословенны!
    Денис