ablog

不器用で落着きのない技術者のメモ

データベース作成中に postDBCreation.sql で ORA-12514 が発生

現象

  • dbca で生成したスクリプトを実行してデータベースを作成すると、emConfig.log に ORA-12514 が出力される。
2011/05/06 16:29:38 oracle.sysman.emcp.ParamsManager checkListenerStatusForDBControl
設定: ORA-12514: TNS: リスナーは接続記述子でリクエストされたサービスを現在認識していません

oracle.sysman.assistants.util.sqlEngine.SQLFatalErrorException: ORA-12514: TNS: リスナーは接続記述子でリクエストされたサービスを現在認識していません

	at oracle.sysman.assistants.util.sqlEngine.SQLEngine.executeImpl(SQLEngine.java:1530)
	at oracle.sysman.assistants.util.sqlEngine.SQLEngine.executeSql(SQLEngine.java:1771)
	at oracle.sysman.emcp.ParamsManager.checkListenerStatusForDBControl(ParamsManager.java:2682)
	at oracle.sysman.emcp.EMReposConfig.invoke(EMReposConfig.java:368)
	at oracle.sysman.emcp.EMReposConfig.invoke(EMReposConfig.java:147)
	at oracle.sysman.emcp.EMConfig.perform(EMConfig.java:222)
	at oracle.sysman.emcp.EMConfigAssistant.invokeEMCA(EMConfigAssistant.java:535)
	at oracle.sysman.emcp.EMConfigAssistant.performConfiguration(EMConfigAssistant.java:1215)
	at oracle.sysman.emcp.EMConfigAssistant.statusMain(EMConfigAssistant.java:519)
	at oracle.sysman.emcp.EMConfigAssistant.main(EMConfigAssistant.java:468)
2011/05/06 16:29:38 oracle.sysman.emcp.EMConfig perform
致命的: リスナーが起動していません。リスナーを起動して、EM Configuration Assistantを再度実行してください。
詳細は、C:\app\Administrator\admin\\scripts\emConfig.logにあるログ・ファイルを参照してください。
2011/05/06 16:29:38 oracle.sysman.emcp.EMConfig perform
設定: Stack Trace: 
oracle.sysman.emcp.exception.EMConfigException: リスナーが起動していません。リスナーを起動して、EM Configuration Assistantを再度実行してください。
	at oracle.sysman.emcp.ParamsManager.checkListenerStatusForDBControl(ParamsManager.java:2689)
	at oracle.sysman.emcp.EMReposConfig.invoke(EMReposConfig.java:368)
	at oracle.sysman.emcp.EMReposConfig.invoke(EMReposConfig.java:147)
	at oracle.sysman.emcp.EMConfig.perform(EMConfig.java:222)
	at oracle.sysman.emcp.EMConfigAssistant.invokeEMCA(EMConfigAssistant.java:535)
	at oracle.sysman.emcp.EMConfigAssistant.performConfiguration(EMConfigAssistant.java:1215)
	at oracle.sysman.emcp.EMConfigAssistant.statusMain(EMConfigAssistant.java:519)
	at oracle.sysman.emcp.EMConfigAssistant.main(EMConfigAssistant.java:468)

原因

  • EM Configuration Assistant からリスナーに接続できなかったため。具体的には、postDBCreation.sql の以下の箇所でリスナーに接続しようとして失敗したため。
host C:\app\Administrator\product\11.1.0\db_1\bin\emca.bat -config dbcontrol db -silent -DB_UNIQUE_NAME ORCL -PORT 1522 -EM_HOME C:\app\Administrator\product\11.1.0\db_1 -LISTENER LISTENER -SERVICE_NAME ORCL -SYS_PWD &&sysPassword -SID ORCL -ORACLE_HOME C:\app\Administrator\product\11.1.0\db_1 -DBSNMP_PWD &&dbsnmpPassword -HOST db01 -LISTENER_OH C:\app\Administrator\product\11.1.0\db_1 -LOG_FILE C:\app\Administrator\admin\\scripts\emConfig.log -SYSMAN_PWD &&sysmanPassword;

対処

リスナーのポート番号をデフォルトの 1521 から 1522 に変更したため以下のいずれかを行う必要がある。今回は前者の対処を行った。

    • listener.ora に静的にサービスを設定する
    • 初期化パラメータ LOCAL_LISTENER を明示的に設定する

具体的な対処内容は以下の通り。

  • listener.ora に以下を追記する。
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ORCL)
      (ORACLE_HOME = C:\app\Administrator\product\11.1.0\db_1)
      (SID_NAME = ORCL)
    )
  )
  • リスナーを起動する。
> lsnrctl start
  • EM Configuration Assistantを再度実行する。
C:\Users\Administrator>C:\app\Administrator\product\11.1.0\db_1\bin\emca.bat -config dbcontrol db -silent -DB_UNIQUE_NAME  -PORT 1522 -EM_HOME C:\app\Administrator\product\11.1.0\db_1 -LISTENER LISTENER -SERVICE_NAME  -SYS_PWD manager -SID  -ORACLE_HOME C:\app\Administrator\product\11.1.0\db_1 -DBSNMP_PWD manager -HOST WIN-ZTAE8I9QKM8 -LISTENER_OH C:\app\Administrator\product\11.1.0\db_1 -LOG_FILE C:\app\Administrator\admin\ORCL\scripts\emConfig2.log -SYSMAN_PWD manager

EMCAの開始 2011/05/06 17:51:35
EM Configuration Assistant, リリース11.1.0.7.0 Production
Copyright (c) 2003, 2005, Oracle.  All rights reserved.

(中略)

***********************************************************
Enterprise Managerの構成が正常に完了しました
EMCAの終了 2011/05/06 17:54:59