前段时间电脑中毒了,于是就把卡巴、360装上瞎杀了几天......
今天到计算机管理里面去开启Oracle服务的时候,发现我得Oracle服务竟然都消失了....我和我的小伙伴当时就惊呆了...
操作系统:Win7旗舰版 64bit
Oracle版本:11.2.0.4 64bit
1.首先进入注册表下面的HKEY_LOCAL_MACHINE\SOFTEWARE\ORACLE,看了一下KEY_OraDb11g_home1这东西还在,于是就不用我新建了。
2.点开KEY_OraDb11g_home1,下面应该有ORACLE_HOME,ORACLE_BASE,ORACLE_SID,他们的键值应该为REG_SZ类型,注意这3个值对应的路径要正确;当然了,如果你的KEY_OraDb11g_home1下面连这3个都没,那你就需要手动重建了。
3.在环境变量path中,加入%oracle_home%\bin的位置,否则执行后面的东西会报错的。
(%oracle_home%需要你事先写在环境变量中,如果没有定义,那么这里就直接用实际路径进行代替)
4.之前的3步,我这里都没问题,所以第四步对我来说是最关键的一步,在cmd命令行中执行
oradim -new -sid XXX -spfile -startmode manual;
我的实例名是orcl,所以这里的命令是oradim -new
-sid orcl -spfile -startmode manual
5.用sysdba身份登陆,然后启动数据库;
注意登陆的时候,可能会提示你的权限不足,这需要你把当前用户(多半是administrator)加入到dba组中;
操作方法:右键计算机-->管理-->计算机本地管理-->本地用户和组-->添加当前用户
如图所示,执行完之后,服务里面出现了这么4个服务
(listener服务是我之前在cmd里面执行lsnrctl start后就蹦出来了的)
不过我在之前建实例的时候,是创建了EM的,可以看到这里还没有EM的服务,所以我们还得继续研究一下这个oradim命令,把我的EM调出来;
今天先到这里,后续补充调取EM的过程
-----------------------
2014.12.26 18:45
今天接着昨天的操作继续研究oradim,试图通过这个命令在服务里调出EM,不过最终失败了;
于是我试图重建EM
对我来说,重建EM的工作一直都是一个悲剧,以前重建过2次,都是各种报错然后失败,最终不得不通过重建实例来完成对EM的创建
因此重建EM对我来说就是要重建实例的节奏
But........
首先尝试从命令行中启动EM,配置好path,配置好oracle_sid
执行命令:emctl start dbconsole
结果...
Oracle Enterprise Manager 11g Database Control Release
11.2.0.4.0
Copyright (c) 1996, 2007 Oracle Corporation. All
rights reserved.
https://NB574:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control
...服务名无效。
无奈了,重建吧..
执行命令:emca -repos recreate
结果都不用去看了,肯定失败的,EM这东西首先需要删除配置,然后再进行重建,这是常识~
报错信息: ORA-20001: SYSMAN already exists..
不过当时没有想到这里,还去执行了一次修复
$ORACLE_HOME/sysman/admin/emdrep/sql/empatch.sql
修复之后的操作,仍然是失败告终
后来看到人家的blog才想起要先删除...
1.执行命令:emca -deconfig dbcontrol db来删除配置
2.执行命令:emca -repos drop来删除repository
3.执行命令:emca
-config dbcontrol db -repos create来创建database control
可以看到提示Dbcontrol资料档案库已经存在了
于是再次重新进行配置
重新配置竟然成功了,按照提示执行完成后,EM重新配置成功,EM服务选项也出现在了管理服务中。