Oracleデータベースを管理するWebベースのインタフェースであるOracle Enterprise Manager(以下OEM)が利用できなくなっていた。
インストール時は問題なく使えていたのにアクセスすると下記のエラー画面が表示される
ORA-28001: the password has expired (DBD ERROR: OCISessionBegin)
ORA-28001を頼りに調査するとOracle DatabaseをインストールするときにOEMの管理ユーザとしてSYSMAN, DBSNMPの二つが自動設定されるようですが、この二つのあるいはどちらかのパスワード有効期限切れのためにOEMが利用出来なくなったようです。
意外と簡単!? Oracle Database 11g Release 1
http://otndnld.oracle.co.jp/easy/oracle11gr1/windows/3rd/index.html
有効期間の設定:
パスワードに有効期限をつけて、同じパスワードを使いつづけないようにする設定
11g のDEFAULTプロファイルではユーザー・アカウントのパスワードは180日で自動的に期限切れとなります。(初期状態)
$ sqlplus sys/Password as sysdba
SQL> SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS WHERE ACCOUNT_STATUS != ‘OPEN’ ;
USERNAME
——————————————————————————–
ACCOUNT_STATUS
——————————————————————————–
SYSMAN
EXPIREDDBSNMP
EXPIRED
ちなみに標準ではSYSMANは[DEFAULT]ProfileでDBSNMPは[MONITORING_PROFILE]に所属しているようです
早々に復旧に取りかかります。いろいろgoogleで調べて試行錯誤した結果なんとか復旧できました。おもに参考にさせて頂いたサイトは下記になります
Solaris 10 のホスト名とIPアドレスを変更する手順
http://d.hatena.ne.jp/yohei-a/20110125/1295958287
【ご注意】
以下情報はOracle Databaseの環境に大きく左右されます。あくまで参考程度にして下さい。DB等の破壊があっても当方は一切責任を持てません
- OEM関連のプログラム停止
- SYSMAN, DBSNMPのパスワードを変更する
- リスナーを起動する
- インスタンスを起動する
- Oracleアカウントでログインして環境変数の確認と設定をする
- Database Control(リポジトリ及び構成ファイル)を削除する
- Database Control(リポジトリ及び構成ファイル)を再作成する
- OEM関連のプログラムの開始
- SYSMAN, DBSNMPの確認
1 2 3 4 5 6 7 8 |
# emctl stop dbconsole Oracle Enterprise Manager 11g Database Control Release 11.x.x.x.x Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved. https://oradb.hogehoge.jp:1158/em/console/aboutApplication Stopping Oracle Enterprise Manager 11g Database Control ... all attemps to stop oc4j failed... now trying to kill 9 --- Failed to shutdown DBConsole Gracefully --- ... Stopped. |
rootなどで行う場合
1 2 3 4 5 6 7 8 9 10 11 |
$ sqlplus sys/Password as sysdba SQL> alter user SYSTEM identified by NewPassword; ユーザーが変更されました。 SQL> alter user SYSTEM account unlock; ユーザーが変更されました。 SQL> alter user DBSNMP identified by NewPassword; ユーザーが変更されました。 SQL> alter user DBSNMP account unlock; ユーザーが変更されました。 SQL> exit $ |
oracleログインアカウントの場合(oradbとする)
1 2 3 4 5 6 7 8 9 10 11 12 |
$ su - oradb # sqlplus / as sysdba SQL> alter user SYSTEM identified by NewPassword; ユーザーが変更されました。 SQL> alter user SYSTEM account unlock; ユーザーが変更されました。 SQL> alter user DBSNMP identified by NewPassword; ユーザーが変更されました。 SQL> alter user DBSNMP account unlock; ユーザーが変更されました。 SQL> exit # |
DEFAULT Profileのパスワード有効期限を無期限にするなら下記も実行
1 |
SQL> alter profile default limit password_life_time unlimited; |
1 |
# lsnrctl start |
1 2 3 |
# sqlplus sys/Password as sysdba SQL> startup SQL> exit |
1 2 3 4 5 6 7 8 |
# su - oradb $ printenv 以下、不足しているなら設定 $ export LANG=C $ export NLS_LANG=American_America.AL32UTF8 $ export ORACLE_HOSTNAME=oradb.hogehoge.jp $ export ORACLE_HOME=/opt/oracle/app/oracle/product/11.x.x/home $ ORACLE_SID=db1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# emca -deconfig dbcontrol db -repos drop STARTED EMCA at Apr xx, 2012 x:xx:xx PM EM Configuration Assistant, Version 11.x.x.x.x Production Copyright (c) 2003, 2005, Oracle. All rights reserved. Enter the following information: Database SID: db1 Listener port number: 1521 Password for SYS user: Password for SYSMAN user: ------------------------------------------- Do you wish to continue? [yes(Y)/no(N)]: Y Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.EMConfig perform INFO: This operation is being logged at /opt/oracle/app/oracle/cfgtoollogs/emca/orcl/emca_2012_xx_xx_xx_xx_xx.log. Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.util.DBControlUtil stopOMS INFO: Stopping Database Control (this may take a while) ... log4j:ERROR No appenders could be found for category (oracle.sysman.util.jdk.HostNameResolution). log4j:ERROR Please initialize the log4j system properly. Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.EMReposConfig invoke INFO: Dropping the EM repository (this may take a while) ... Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.EMReposConfig invoke INFO: Repository successfully dropped Enterprise Manager configuration completed successfully FINISHED EMCA at Apr xx, 2012 x:xx:xx PM |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
$ emca -config dbcontrol db -repos recreate STARTED EMCA at Apr xx, 2012 x:xx:xx PM EM Configuration Assistant, Version 11.x.x.x.x Production Copyright (c) 2003, 2005, Oracle. All rights reserved. Enter the following information: Database SID: db1 Listener port number: 1521 Listener ORACLE_HOME [ /opt/oracle/app/oracle/product/11.x.x/home ]: Password for SYS user: 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 ................ /opt/oracle/app/oracle/product/11.x.x/home Local hostname ................ oradb.hogehoge.jp Listener ORACLE_HOME ................ /opt/oracle/app/oracle/product/11.x.x/home Listener port number ................ 1521 Database SID ................ db1 Email address for notifications ............... Outgoing Mail (SMTP) server for notifications ............... ----------------------------------------------------------------- Do you wish to continue? [yes(Y)/no(N)]: Y Apr Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.EMConfig perform INFO: This operation is being logged at /opt/oracle/app/oracle/cfgtoollogs/emca/orcl/emca_2012_xx_xx_xx_xx_xx.log. Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.EMReposConfig invoke INFO: Dropping the EM repository (this may take a while) ... Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.EMReposConfig invoke INFO: Repository successfully dropped Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.EMReposConfig createRepository INFO: Creating the EM repository (this may take a while) ... Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.EMReposConfig invoke INFO: Repository successfully created Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.EMReposConfig uploadConfigDataToRepository INFO: Uploading configuration data to EM repository (this may take a while) ... Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.EMReposConfig invoke INFO: Uploaded configuration data successfully Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.util.DBControlUtil configureSoftwareLib INFO: Software library configured successfully. Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary INFO: Deploying Provisioning archives ... Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary INFO: Provisioning archives deployed successfully. Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.util.DBControlUtil secureDBConsole INFO: Securing Database Control (this may take a while) ... Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.util.DBControlUtil secureDBConsole INFO: Database Control secured successfully. Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.util.DBControlUtil startOMS INFO: Starting Database Control (this may take a while) ... Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.EMDBPostConfig performConfiguration INFO: Database Control started successfully Apr xx, 2012 x:xx:xx PM oracle.sysman.emcp.EMDBPostConfig performConfiguration INFO: >>>>>>>>>>> The Database Control URL is https://oradb.hogehoge.jp:1158/em <<<<<<<<<<< Apr xx, 2012 x:xx:xx PM 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: /opt/oracle/app/oracle/product/11.x.x/home/oradb.hogehoge.jp_db1/sysman/config/emkey.ora. Please ensure this file is backed up as the encrypted data will become unusable if this file is lost. *********************************************************** <span style="color: #ff0000;">Enterprise Manager configuration completed successfully</span> FINISHED EMCA at Apr xx, 2012 x:xx:xx |
1 2 3 4 5 6 7 |
# emctl start dbconsole Oracle Enterprise Manager 11g Database Control Release 11.x.x.x.x Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved. https://oradb.hogehoge.jp:1158/em/console/aboutApplication <span style="color: #ff0000;">Oracle Enterprise Manager 11g is running.</span> ------------------------------------------------------------------ Logs are generated in directory /opt/oracle/app/oracle/product/11.x.x/home/oradb.hogehoge.jp_db1/sysman/log |
1 2 3 4 5 6 7 8 |
$ sqlplus / as sysdba SQL> SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS; USERNAME ACCOUNT_STATUS ------------------------------ -------------------------------- SYSTEM OPEN SYS OPEN DBSNMP OPEN SYSMAN OPEN |
それではOracle Enterprise Managerにアクセスしてみます。無事に復旧してログイン画面が表示され管理ができるようになりました。いろいろ参考にさせて頂いたサイトの皆様、有難う御座いました