环境:win7 64位系统、oracle11g数据库
问题描述:
在win7 64位系统下安装oracle11g,在使用Database configuration Assistant创建数据库时,在创建到85%的时候报错,错误如下:
解决办法:
经过查看警告中给出的日志文件F:\develop\oracle_data\app\Administrator\cfgtoollogs\dbca\test\emConfig.log有如下内容:
配置:connectDesc :(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=BUG-CLASS)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=test)))
但是在listener.ora中是这样的:
(ADDRESS =(PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
显然计算机BUG-CLASS是不能够访问localhost(暂不理解)
解决办法:
在listener.ora中增加对BlueAeri-PC或ip地址的侦听,具体步骤如下:
1.启动Net Manager,在“监听程序”--Listener下添加一个地址,主机名写计算机名字或者ip,端口号还是1521,然后保存。
2.重启监听服务。
3.启动Database configuration Assistant “配置数据库选件”就可以重新配置em了,而不用删除数据库。再次创建数据库时也不会报如上的错误。
----------------------------------------------------------------------------------
也可以通过在win7下的cmd中通过hostname命令查看主机名。
刚开始的时候看到网上有人说看自己主机的IP地址,第一,这个并不能解决当前问题,第二,我主机的IP地址会变啊,,会变啊,oracle不会弱智到要每次改listener.ora吧?
碰到的第二个问题是:每次通过sqlplus登陆的时候默认数据库都是最新建的数据库,所以我想用原来的数据库就要切换,oracle的切换真是***。
百度知道上的方法说是每个用户只能用一个数据库,只要用特定的用户登录就可以连接特定的数据库,亲测无效,我的两个数据库谁谁都可以连的啊!
亲测可用的第一种方法是在sqlplus中切换:
conn 用户名/密码 @数据库名
原来是orcl,现在是test...
但是这样子有一个问题是每次登陆sqlplus还是会用原来那个数据库,这时候就可以修改注册表的方法(我看网上有直接cmd改sid的,但是我的怎么改了还是没用啊?!)
修改这个变量的值为你要登录的默认的数据库名即可!