http://www.cnblogs.com/skey_chen/archive/2011/12/20/2294751.html
今天不知道怎么,心血来潮,就把本机从域里退了出去,然后准备把oracle11g的control给处理处理
一开始也没怎么用心,上网随便找了点资料,就照着干了,然后什么都没干成,还把东西搞坏了。
没办法,只得好好下点功夫了。
上网找了些资料,很多是关于10g的em重建,经过多次操作
也还是没解决什么,反而把服务里的control给搞没了。
看来,网上也靠不住了,得靠自己了。
好了,下面是我自己的解决方法:
1、不管什么情况,在doc命令提示符下执行(如果服务里的control还在,停了它,不过估计根本启不来)
emca -repos drop
好吧,虽然说网上靠不住,不过这也是在网上学来的。
2、进sql命令提示符
等等,怎么进sql命令提示符?额,也顺便写一下吧,以前数据库跑不起来时,上网找资料重建spfile也说在命令提示符下干嘛干嘛,可怜我数据库都进不了,都不知哪输sql去,那个郁闷……
在cmd下,输入
sqlplus /nolog
嘿嘿,进来了吧,再输入
conn / as sysdba
呼,大功告成(汗,就输了几个字母)
3、在sql命令提示符下分别输入以下四条sql语句,查出所有以MGMT_、SMP_、EMD_、ECM_开始的同义词,并将其保存下来
在sql命令提示符下执行
select 'drop public synonym '|| synonym_name || ';' from all_synonyms where synonym_name like 'MGMT_%';
select 'drop public synonym '|| synonym_name || ';' from all_synonyms where synonym_name like 'SMP_%';
select 'drop public synonym '|| synonym_name || ';' from all_synonyms where synonym_name like 'EMD_%';
select 'drop public synonym '|| synonym_name || ';' from all_synonyms where synonym_name like 'ECM_%';
好人做到底吧,因为sql出来太多,cmd窗口放不下?点左上角的图标,选默认值,可以出来修改的配置(主要修改缓冲区的高),不过这里需要重新打开cmd窗口。
现在才说,哈哈,故意的,重新打开cmd窗口,再输入一次命令吧,多写几次下次才记得。
4、删除有关的数据和配置(N条drop命令)
在sql命令提示符下执行
drop user sysman cascade;
drop role MGMT_USER;
drop user MGMT_VIEW cascade;
drop user MGMT_AVAILABILITY cascade;
……N条drop public synonym命令,上一步查出来的所有sql,打开一个记事本,把全部sql复制上去,直接粘贴到窗口里就可以了。
5、最后一步了,听天由命吧,估计,也许,嗯,应该是可以的。(不行的话,看看日志,再处理一下)
这里有个前提,就是监听器配置必须配置好能访问你的数据库(如在plsql中能访问数据库),在命令里也会有相应提示,11g下还会提示你输入监听程序,但可以直接回车不输入。
在doc命令提示符下
emca -config dbcontrol db -repos create
或
emca -repos create
emca -config dbcontrol db
上帝保佑你,成功吧。
最好再好人一次,把里面的sql打个包上来吧。