Oracle Enterprise Manager 11gが利用できない

Facebooktwittermail

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
EXPIRED

DBSNMP
EXPIRED

ちなみに標準ではSYSMANは[DEFAULT]ProfileでDBSNMPは[MONITORING_PROFILE]に所属しているようです
早々に復旧に取りかかります。いろいろgoogleで調べて試行錯誤した結果なんとか復旧できました。おもに参考にさせて頂いたサイトは下記になります

Solaris 10 のホスト名とIPアドレスを変更する手順
http://d.hatena.ne.jp/yohei-a/20110125/1295958287

【ご注意】
以下情報はOracle Databaseの環境に大きく左右されます。あくまで参考程度にして下さい。DB等の破壊があっても当方は一切責任を持てません

  1. OEM関連のプログラム停止
  2. SYSMAN, DBSNMPのパスワードを変更する
  3. rootなどで行う場合

    oracleログインアカウントの場合(oradbとする)

    DEFAULT Profileのパスワード有効期限を無期限にするなら下記も実行

  4. リスナーを起動する
  5. インスタンスを起動する
  6. Oracleアカウントでログインして環境変数の確認と設定をする
  7. Database Control(リポジトリ及び構成ファイル)を削除する
  8. Database Control(リポジトリ及び構成ファイル)を再作成する
  9. OEM関連のプログラムの開始
  10. SYSMAN, DBSNMPの確認

それではOracle Enterprise Managerにアクセスしてみます。無事に復旧してログイン画面が表示され管理ができるようになりました。いろいろ参考にさせて頂いたサイトの皆様、有難う御座いました

Leave a Reply