1.静态配置
oracle早就支持动态的listener了,但是在使用OEM(Oracle Enterprise Manager)等高级货时还是需要用到静态配置
工具:netca+netmgr(或者直接修改/network/admin下面的listener.ora,假如这个文件木有,可以开netca配置一下得到一个简单的)
ps.意味着通过这些工具我可以配置n个linstener,通过命令 lsnrctl LISTENERnn start就可以启动了(当然前提是这些listener对应的端口都开放了)
netca很简单,弹出界面后一步一步往下点就行了
netmgr在netca的基础之上可以配置一下detail的信息,如指定database service也很简单
配置完之后可以看下listener.ora变成啥样了
这时可以在windows端用sqlplus连进来看看
sqlplus scott/tiger@192.168.254.128/orcl (目前客户端尚未配置tnsname.ora,就用ip访问吧)
同时用tail命令查看下log,明显可以发现,连接建立之后,每隔一段时间有一条log写入(发现有1s和30s两种时间间隔,不知道哎)
可能遇到的问题会有windows连接不上的问题,要注意检查防火墙有没有开放1521端口(ORA-12179错误)
参考:http://www.cnblogs.com/kerrycode/archive/2012/12/14/2818421.html
2.动态配置
非常easy,只要求spfile里面的 service_names,isntance_name配置正确就可以了
spfile路径 $ORACLE_HOME/dbs下面
strings命令检查一下 strings spfileorcl.ora | grep inst
检查一下inst,db_name,service_names对不对
如果发现有没有配的,配一下 alter system set instance_name='orcl' scope=spfile
alter system set service_names='orcl' scope=spfile
配置完成之后,需要重启下数据库,并检查下spfile改变了没
看看同一目录下,是否有listener的配置,有的话移走(因为不需要)
mv listener.ora /tmp
然后启动listener,可以发现lisntener现在support no service
然后启动数据库,再查看lsnrctl status会发现PMON已经通知了listener了
最后windows端来连下试试
3.客户端配置(windows)
我装的11g client,在/network/admin下把tnsnames.ora改了改,文件格式在samples里面有,改改就ok
ORACLE11GVM=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.254.128)(PORT=1521))
)
(CONNECT_DATA=
(SID=orcl)
)
)
接下来就可以用sqplus scott/tiger@ORACLE11GVM登陆了,不用再写ip端口了