#topicpath Oracle Database には Database Control が付属してきまして Enterprise Manager が使えますが、Grid Control で管理することもできます。 Grid Control のための Agent をインストールして一括管理するための設定を行います。 * 環境 [#if368ca4] - em1 (192.168.1.224) -- CentOS 5.3 (64bit) -- Grid Control 10g 10.2.0.5.0 -- [[技術文書/Oracle/CentOS5.3(64bit)にGridControl10gR5をインストール]] - ora1 (192.168.1.221) -- CentOS 5.2 (64bit) -- Database 11g 11.1.0.6.0 -- [[技術文書/Oracle/11g/CentOS5.2(64bit)にOracle11gR1をインストール]] ora1 ではデータベースを作っておかなくても大丈夫ですが、 作った場合は Enterprise Manager の設定は入れないでください。 もし入れてしまった場合には emca で削除しましょう。 #pre{{ $ $ORACLE_HOME/bin/emca -deconfig dbcontrol db -repos drop }} この方法については詳しくは述べません。 * 必要なもの [#ic334855] [[Oracle Enterprise Manager 10g Grid Control Management Agent:http://www.oracle.com/technology/software/products/oem/htdocs/agentsoft.html]] からダウンロードしてきます。 - Agent Software for 64-bit Platforms -- Linux x86-64 --- Linux_x86_64_Grid_Control_agent_download_10_2_0_5_0.zip * ora1 に agent をインストール [#p320f100] ora1 で zip ファイルを展開しておきます。 /home/oracle/GCagent/ 以下に展開しました。 runInstaller を起動します。 外からログインして X を飛ばしていると フォントが化けるので、英語環境で起動しました。 #pre{{ [oracle@ora1 ~]$ export LANG=C [oracle@ora1 ~]$ cd GCagent/linux_x64/agent [oracle@ora1 agent]$ ./runInstaller }} &ref(1.png); &ref(2.png); &ref(3.png); &ref(4.png); &ref(5.png); &ref(6.png); &ref(7.png); &ref(8.png); &ref(9.png); &ref(10.png); #pre{{ [root@ora1 ~]# /u01/app/oracle/product/agent10g/root.sh Running Oracle10 root.sh script... The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/agent10g Enter the full pathname of the local bin directory: [/usr/local/bin]: The file "dbhome" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: The file "oraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: The file "coraenv" already exists in /usr/local/bin. Overwrite it? (y/n) [n]: Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root.sh script. Now product-specific root actions will be performed. Finished product-specific root actions. [root@ora1 ~]# }} &ref(11.png); &ref(12.png); * agent の動作確認 [#fb9de03f] agent から Grid Control へ放っておいても通信するようですが、 初回は登録という意味も込めて手動でやってみます。 #pre{{ [oracle@ora1 ~]$ export ORACLE_HOME=/u01/app/oracle/product/agent10g [oracle@ora1 ~]$ $ORACLE_HOME/bin/emctl upload agent Oracle Enterprise Manager 10g Release 5 Grid Control 10.2.0.5.0. Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved. --------------------------------------------------------------- EMD upload error: uploadXMLFiles skipped :: OMS version not checked yet.. }} うまくいきません。 [[http://forums.oracle.com/forums/thread.jspa?messageID=2453352]] http://forums.oracle.com/forums/thread.jspa?messageID=2453352 を参考にして、 一度初期化してやり直してみます。 #pre{{ [oracle@ora1 ~]$ $ORACLE_HOME/bin/emctl stop agent Oracle Enterprise Manager 10g Release 5 Grid Control 10.2.0.5.0. Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved. Stopping agent ... stopped. [oracle@ora1 ~]$ rm -rf $ORACLE_HOME/sysman/emd/upload/* [oracle@ora1 ~]$ rm -rf $ORACLE_HOME/sysman/emd/state/* [oracle@ora1 ~]$ $ORACLE_HOME/bin/emctl clearstate agent Oracle Enterprise Manager 10g Release 5 Grid Control 10.2.0.5.0. Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved. EMD clearstate completed successfully [oracle@ora1 ~]$ $ORACLE_HOME/bin/emctl secure agent Enter Agent Registration Password : Securing agent... Successful. [oracle@ora1 ~]$ $ORACLE_HOME/bin/emctl start agent Oracle Enterprise Manager 10g Release 5 Grid Control 10.2.0.5.0. Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved. Starting agent ...... started. }} これで再度 upload を試してみます。 #pre{{ [oracle@ora1 ~]$ $ORACLE_HOME/bin/emctl upload agent Oracle Enterprise Manager 10g Release 5 Grid Control 10.2.0.5.0. Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved. --------------------------------------------------------------- EMD upload completed successfully }} うまくいきました。status も見てみます。 #pre{{ [oracle@ora1 ~]$ $ORACLE_HOME/bin/emctl status agent Oracle Enterprise Manager 10g Release 5 Grid Control 10.2.0.5.0. Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved. --------------------------------------------------------------- Agent Version : 10.2.0.5.0 OMS Version : 10.2.0.5.0 Protocol Version : 10.2.0.5.0 Agent Home : /u01/app/oracle/product/agent10g Agent binaries : /u01/app/oracle/product/agent10g Agent Process ID : 19782 Parent Process ID : 19766 Agent URL : https://ora1.sugimura.homelinux.org:3872/emd/main/ Repository URL : https://em1.sugimura.homelinux.org:1159/em/upload Started at : 2009-08-12 19:33:01 Started by user : oracle Last Reload : 2009-08-12 19:34:01 Last successful upload : 2009-08-12 19:34:48 Total Megabytes of XML files uploaded so far : 11.97 Number of XML files pending upload : 0 Size of XML files pending upload(MB) : 0.00 Available disk space on upload filesystem : 6.29% Last successful heartbeat to OMS : 2009-08-12 19:34:07 --------------------------------------------------------------- Agent is Running and Ready }} これで ora1 の情報は em1 の Grid Control に伝わるようになりました。 * DB の登録 [#he65fda9] DB を Grid Control で管理できるようにします。 ここでは DBCA で DB を作りました。 途中で Grid Control を指定して管理するという画面が出てきます。 &ref(20.png,,70%); Grid Control から見てみます。 &ref(21.png,,70%); &ref(22.png,,70%); 「ターゲット」をクリックします。 &ref(23.png,,70%); 作ったインスタンスの orcl をクリックします。 &ref(24.png,,70%); DB の中身を見ようとしますと認証を求められます。 あとは慣れた EM と同じです。 &ref(25.png,,70%); * DB を後から追加する [#pc6c04d2] DBCA 以外で作った DB を追加する方法についてまとめてみました。 まず、DBSNMP ユーザで接続できるようにします。 状態を確認してみると次のようになっていました。 #pre{{ SQL> select username, account_status from dba_users 2 where username = 'DBSNMP'; USERNAME -------------------------------------------------------------------------------- ACCOUNT_STATUS -------------------------------------------------------------------------------- DBSNMP EXPIRED & LOCKED }} 直して使えるようにします。 #pre{{ SQL> alter user DBSNMP account unlock; ユーザーが変更されました。 SQL> alter user DBSNMP identified by xxxxxxxx; ユーザーが変更されました。 SQL> }} NetServices 経由で接続できることを確認します。 #pre{{ [oracle@ora1 ~]$ sqlplus dbsnmp/xxxxxxxx@orcl SQL*Plus: Release 11.1.0.6.0 - Production on 土 8月 15 14:54:13 2009 Copyright (c) 1982, 2007, Oracle. All rights reserved. Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options に接続されました。 SQL> quit Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing optionsと の接続が切断されました。 [oracle@ora1 ~]$ }} 必須なのかどうかはわかっていませんが、 あとは OMS 側で tnsnames.ora を書いておきます。 #pre{{ [oracle@em1 ~]$ export ORACLE_HOME=/u01/app/oracle/product/oms10g [oracle@em1 ~]$ cd $ORACLE_HOME/network/admin [oracle@em1 admin]$ cat tnsnames.ora orcl= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=ora1)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=orcl))) [oracle@em1 admin]$ }} tnsping して確認します。 OMS から対象のデータベースにつながるということです。 #pre{{ [oracle@em1 admin]$ $ORACLE_HOME/bin/tnsping orcl TNS Ping Utility for Linux: Version 10.1.0.5.0 - Production on 15-AUG-2009 15:04:02 Copyright (c) 1997, 2003, Oracle. All rights reserved. Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=ora1)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=orcl))) OK (0 msec) }} Grid Control の画面からアクセスしてみます。 &ref(31.png); 「ターゲット」をクリックします。 &ref(32.png); ora1 に DB インスタンスを追加しているのでそちらをクリック。 &ref(33.png,,70%); まずはサーバとしての ora1 の情報が出てきます。 中の「ターゲット」をクリックします。 &ref(34.png); 新しく作ったインスタンスは orcl です。 「可用性」のところを見ると認識されているようです。 DB に付属の Enterprise Manager と同じような画面になりました。 &ref(35.png,,70%); DB の情報を何か見ようとすると認証を求められます。 sys as sysdba でログインしてみます。 &ref(36.png,,70%); これは表領域を見た例です。 &ref(37.png,,70%); あとの使い方は同じです。 * 補足 [#f0c3041f] [[Jeff Hunterさんの解説:http://www.idevelopment.info/data/Oracle/DBA_tips/Enterprise_Manager/OEM_12.shtml]] だと インスタンスへに対して DBSNMP ユーザを使って接続して 構成する例があるんですが、うちの環境では接続しようとせずにエラーとなりました。 上記のように sys ユーザで接続して DB の中を管理するのは 普通にできるので、ここでは気にしないことにします。 ---- #comment