2013年1月2日水曜日

Oracle Enterprise ManagerでリスナーがOracleインスタンスを認識しない

久しぶりにOracleを起動したらORA-28001が出たので、Oracle11gからの機能であるパスワード有効期限に引っかかった。
以下のとおり、修正した。
====================================================================
bash-3.2$ sqlplus /nolog
SQL> connect /as sysdba
SQL> alter profile default limit password_life_time unlimited;
ユーザーが変更されました。
SQL> alter user sys identified by password;
ユーザーが変更されました。
SQL> alter user system identified by password;
ユーザーが変更されました。
SQL> alter user sysman identified by password;
ユーザーが変更されました。
SQL> alter user dbsnmp identified by password;
ユーザーが変更されました。
SQL> alter user sys account unlock;
ユーザーが変更されました。
SQL> alter user system account unlock;
ユーザーが変更されました。
SQL> alter user sysman account unlock;
ユーザーが変更されました。
SQL> alter user dbsnmp account unlock;
ユーザーが変更されました。
SQL> quit
====================================================================

しかし、それでもEMから繋がらなかった。EM上でORA-12505が発生する。
TNSpingは通る。
====================================================================
bash-3.2$ tnsping orcl 1
TNS Ping Utility for Solaris: Version 11.2.0.1.0 - Production on 02-1月 -2013 06:09:22
Copyright (c) 1997, 2009, Oracle.  All rights reserved.
パラメータ・ファイルを使用しました:

エイリアスを解決するためにTNSNAMESアダプタを使用しました。
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = sol10-oracle)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))に接続の試行中
OK (10ミリ秒)
====================================================================

リスナーを調べたところ、接続先サービス名を認識していないようだ。
====================================================================
bash-3.2$ lsnrctl
LSNRCTL for Solaris: Version 11.2.0.1.0 - Production on 02-1月 -2013 06:09:32
Copyright (c) 1991, 2009, Oracle.  All rights reserved.
LSNRCTLへようこそ。詳細は"help"と入力してください。
LSNRCTL> status
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sol10-oracle)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名                      LISTENER
バージョン                TNSLSNR for Solaris: Version 11.2.0.1.0 - Production
開始日                    02-1月 -2013 06:05:21
稼働時間                  0 日 0 時間 4 分 12 秒
トレース・レベル          off
セキュリティ              ON: Local OS Authentication
SNMP                      OFF
パラメータ・ファイル      /oracle/product/11.2.0/OraHome1/network/admin/listener.ora
ログ・ファイル            /oracle/product/11.2.0/diag/tnslsnr/sol10-oracle/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sol10-oracle)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
リスナーはサービスをサポートしていません。
コマンドは正常に終了しました。
LSNRCTL> exit
====================================================================

リスナー定義ファイルを以下のとおり変更した。(11gR2インストール後にリスナー定義を行わなかったためかも)
====================================================================
bash-3.2$ vi listener.ora
<変更前>
# listener.ora Network Configuration File: /oracle/product/11.2.0/OraHome1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = sol10-oracle)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
ADR_BASE_LISTENER = /oracle/product/11.2.0

<変更後>
# listener.ora Network Configuration File: /oracle/product/11.2.0/OraHome1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = sol10-oracle)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
ADR_BASE_LISTENER = /oracle/product/11.2.0
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (ORACLE_HOME = (PROTOCOL = TCP)(HOST = sol10-oracle)(PORT = 1521))
      (SID_NAME = orcl)
    )
  )
====================================================================

リスナーを再起動した結果、接続先サービス名を認識した。
====================================================================
bash-3.2$ lsnrctl start
LSNRCTL for Solaris: Version 11.2.0.1.0 - Production on 02-1月 -2013 06:14:43
Copyright (c) 1991, 2009, Oracle.  All rights reserved.
/oracle/product/11.2.0/OraHome1/bin/tnslsnrを起動しています。お待ちください...
TNSLSNR for Solaris: Version 11.2.0.1.0 - Production
システム・パラメータ・ファイルは/oracle/product/11.2.0/OraHome1/network/admin/listener.oraです。
ログ・メッセージを/oracle/product/11.2.0/diag/tnslsnr/sol10-oracle/listener/alert/log.xmlに書き込みました。
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sol10-oracle)(PORT=1521)))
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sol10-oracle)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名                      LISTENER
バージョン                TNSLSNR for Solaris: Version 11.2.0.1.0 - Production
開始日                    02-1月 -2013 06:14:43
稼働時間                  0 日 0 時間 0 分 0 秒
トレース・レベル          off
セキュリティ              ON: Local OS Authentication
SNMP                      OFF
パラメータ・ファイル      /oracle/product/11.2.0/OraHome1/network/admin/listener.ora
ログ・ファイル            /oracle/product/11.2.0/diag/tnslsnr/sol10-oracle/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sol10-oracle)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
サービスのサマリー...
サービス"orcl"には、1件のインスタンスがあります。
  インスタンス"orcl"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。
bash-3.2$ lsnrctl
LSNRCTL for Solaris: Version 11.2.0.1.0 - Production on 02-1月 -2013 06:14:53
Copyright (c) 1991, 2009, Oracle.  All rights reserved.
LSNRCTLへようこそ。詳細は"help"と入力してください。
LSNRCTL> status
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=sol10-oracle)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名                      LISTENER
バージョン                TNSLSNR for Solaris: Version 11.2.0.1.0 - Production
開始日                    02-1月 -2013 06:14:43
稼働時間                  0 日 0 時間 0 分 11 秒
トレース・レベル          off
セキュリティ              ON: Local OS Authentication
SNMP                      OFF
パラメータ・ファイル      /oracle/product/11.2.0/OraHome1/network/admin/listener.ora
ログ・ファイル            /oracle/product/11.2.0/diag/tnslsnr/sol10-oracle/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sol10-oracle)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
サービスのサマリー...
サービス"orcl"には、1件のインスタンスがあります。
  インスタンス"orcl"、状態UNKNOWNには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。
LSNRCTL> exit
====================================================================

0 件のコメント:

コメントを投稿