HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1
修改环境变量ORACLE_SID为为orcl,orcl为实例名。
原因:创建了多个数据库 在注册表中ORACLE_SID的值被覆盖为新实例的值,从而使用其它数据库的时候监听无法工作,只认一个,这样破坏了我们DB的灵活性,如不是强制要求还是不要开新的数据库。
Oracle 关系图如下:
可以这么理解:
不难看出在orcale中同一个实例中的不同用户有持有的表是不同的,就相当于sqlserver中的schema的概念相似。如果不是需求强制明确要使用多个新的实例 甚至新的数据库,我们使用不同用户(看需求开辟新的实例也可)链接就好了,当然这是对同一套系统来说(比如不同开发环境devint / sit / sat / uat /product 等 下的表配置),不同系统还是把其分开来。毕竟配置新的数据库对系统开销来说是极大的。
而本人出现的问题是把新创建的数据库册完后,在regedit中的ORACLE_SID值不会去更新的还是引用的是新建后被册的那个实例名,报错是必然的,修改成维一使用的orcl数据库实例即可。
以上分享如果有错,望大家指出,及时更正,以免误人子弟,勿喷!谢谢