这两天在进行Oracle的客户端配置,服务器OS为Windows XP 64,客户端OS为Win7 64,oracle版本为11.2。
先说下服务器端自己的疑惑,由于自己是新手,很多都不明白是怎么个回事。
1)关于服务端监听程序配置时候的SID设置
我在创建数据库的时候,设置的数据库的SID名字为“ahgridgis”,全局数据库名字也为ahgridgis,但是通过Net Manager进行监听程序配置的时候,在添加“数据库服务”到监听程序时候,我输入SID为“ahgridgis”,会提示说“要求有效的SID”,这是为什么呢?
最后我只能把这的SID设置为默认的ORCL,才可以通过。然后我通过更改监听文件listener.ora的
(SID_DESC =
(GLOBAL_DBNAME = ahgridgis)
(
SID_NAME
= ahgridgis)
SID_Name为ahgridgis,才完成自己所需要的监听程序。
这个原因是什么呢?谁能告诉我呢?
2)在服务端进行完监听程序配置后,重新启动下监听程序,有以下方法:
A:控制面板—》管理工具—》组件服务
找到OracleOraDb11g_home1TNSListener,重新启动
B:在sqlplus中执行以下命令
SQL>host lsnrctl start;
3)进行客户端的配置工作。
在客户端通过Oracle Net Configuration Assistant进行配置,采用“本地网络服务名配置”。
输入服务名为ahgridgis,选择TCP协议,
主机名为服务器端的IP地址
,最后进行连接测试。
发现提示“连接超时”,更换用户登录,还是提示连接超时,最后在确认服务端监听程序开启以及ping连通后,结果解决方法是“关闭服务端的防火墙”,再次进行连接测试,连接成功。
4)解决“无监听程序”
在进行客户端网络服务名配置时候,我第一次输入的主机名为服务器端的主机名称,而不是IP地址,这个时候进行连接测试的时候,会提示“无监听程序”。我查看了服务器端的监听程序文件,发现Address参数的HOST为服务器的主机IP地址。
所以我就试着把客户端的输入主机名该为IP地址,再次进行连接,就成功了。
是不是说在进行客户端网络服务名配置的时候,“主机名”设置要和服务器端的监听位置“主机”参数一致才可以呢?
所以又进行了以下测试,把服务器端的监听位置该为主机的名字,如Student-pc,客户端的仍为主机的IP地址,再次在客户端进行连接测试,也可以连接成功。
看来以后要
尽量用IP地址来进行客户端的网络服务名配置了。
总结这次连接配置的错误
1)连接超时
解决方法:关闭服务器端防火墙
前提是要保证服务器端监听程序正常
2)无监听程序
解决方法:客户端进行网络服务名配置的时候,”主机“采用服务器端的IP地址,而不是服务器端的主机名