CONFIG: ORA-20001: SYSMAN already exists..

 

AWS上で、Oracle DBの11.2.0を試している。

例の如く、EC2インスタンスのprivate ipがOS起動毎に変わる影響で、EMが起動しない。EMのレポジトリを再作成しようとしたが、表題のエラーが発生して再作成が失敗する。また、シューティングしている中で以下のようなエラーも発生。


CONFIG: ORA-00955: name is already used by an existing object

ググって、以下の情報を見つけた。

http://blog.mclaughlinsoftware.com/oracle-architecture-configuration/changing-windows-hostname-and-oracle-enterprise-manager/
http://arjudba.blogspot.com/2008/04/stack-of-problems-while-creating.html
http://forums.oracle.com/forums/thread.jspa?threadID=1057381&tstart=0&start=45

1、先ず、いつものようにEMのレポジトリをドロップ


emca -deconfig dbcontrol db -repos drop

2、SYSMAN関連のオブジェクトを、手動でドロップ


DROP USER sysman CASCADE;
DROP PUBLIC SYNONYM setemviewusercontext;
DROP ROLE mgmt_user;
DROP PUBLIC SYNONYM mgmt_target_blackouts;
DROP USER mgmt_view;
DROP PUBLIC SYNONYM MGMT_AVAILABILITY;

3、EMのレポジトリを再作成


emca -config dbcontrol db -repos recreate

private ipが変わることで、listener.oraやtnsnames.oraも書き換えねばならず、若干嵌ったが、なんとかEM起動した。