ITPub博客

首页 > 数据库 > Oracle > oracle: listener.ora 、sqlnet.ora 、tnsnames.ora的配置下

oracle: listener.ora 、sqlnet.ora 、tnsnames.ora的配置下

Oracle 作者:ele9234 时间:2014-03-13 11:13:22 0 删除 编辑

4.监听器的操作命令


   
  $ORACLE_HOME/bin/lsnrctl start     

      其他诸如stop,status等。具体敲完一个lsnrctl后看帮助。 
   
  上面说到的三个文件都可以通过图形的配置工具来完成配置

  • $ORACLE_HOME/netca 向导形式的    
  • $ORACLE_HOME/netmgr 

 

  1. profile 配置的是sqlnet.ora也就是名称解析的方式    
  2. service name 配置的是tnsnames.ora文件    
  3. listeners配置的是listener.ora文件,即监听器进程 

   
  具体的配置可以尝试一下然后来看一下配置文件。 
   
  这样一来总体结构就有了,是当你输入sqlplus sys/oracle@orcl的时候

  1. 查询sqlnet.ora看看名称的解析方式,发现是TNSNAME    
  2. 则查询tnsnames.ora文件,从里边找orcl的记录,并且找到主机名,端口和service_name    
  3. 如果listener进程没有问题的话,建立与listener进程的连接。    
  4. 根据不同的服务器模式如专用服务器模式或者共享服务器模式,listener采取接下去的动作。默认是专用服务器模式,没有问题的话客户端就连接上了数据库的server process。    
  5. 这时候网络连接已经建立,listener进程的历史使命也就完成了。 

 

5.几种连接用到的命令形式

   
  1.sqlplus / as sysdba 这是典型的操作系统认证,不需要listener进程    
  2.sqlplus sys/oracle 这种连接方式只能连接本机数据库,同样不需要listener进程    
  3.sqlplus sys/oracle@orcl 这种方式需要listener进程处于可用状态。最普遍的通过网络连接。 
   
  以上连接方式使用sys用户或者其他通过密码文件验证的用户都不需要数据库处于可用状态,操作系统认证也不需要数据库可用,普通用户因为是数据库认证,所以数据库必需处于open状态。 
   
  然后就是

6.平时排错可能会用到的 
   
  

 1.lsnrctl status查看服务器端listener进程的状态 
   

  1. LSNRCTL> help   
  2.    
  3. The following operations are available   
  4.    
  5. An asterisk (*) denotes a modifier or extended command:   
  6.    
  7. start stop status   
  8.    
  9. services version reload   
  10.    
  11. save_config trace change_password   
  12.    
  13. quit exit set*   
  14.    
  15. show*   
  16.    
  17. LSNRCTL> status   

   
  2.tnsping 查看客户端sqlnet.ora和tnsname.ora文件的配置正确与否,及对应的服务器的listener进程的状态。 
   
  1. C:/>tnsping orcl   
  2.    
  3. TNS Ping Utility for 32-bit Windows: Version 10.1.0.2.0 - Production on 16-8月 -   
  4.    
  5. 2005 09:36:08   
  6.    
  7. Copyright (c) 1997, 2003, Oracle. All rights reserved.   
  8.    
  9. Used parameter files:   
  10.    
  11. E:/oracle/product/10.1.0/Db_2/network/admin/sqlnet.ora   
  12.    
  13. Used TNSNAMES adapter to resolve the alias   
  14.    
  15. Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)   
  16.    
  17. (HOST = 127.0.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_   
  18.    
  19. NAME = orcl)))   
  20.    
  21. OK (20 msec)   

   
  3. 
   
  
  1. SQL>show sga 查看instance是否已经启动   
  2.      
  3.   SQL> select open_mode from v$database; 查看数据库是打开还是mount状态。   
  4.      
  5.   OPEN_MODE   

   
  ---------- 
   
  READ WRITE

 

 

7.使用hostname访问数据库而不是tnsname的例子

   
  使用tnsname访问数据库是默认的方式,但是也带来点问题,那就是客户端都是需要配置tnsnames.ora文件的。如果你的数据库服务器地址发生改变,就需要重新编辑客户端这个文件。通过hostname访问数据库就没有了这个麻烦。 
   
  需要修改服务器端listener.ora 
   

  1. #监听器的配置文件listener.ora   
  2.   
  3. #使用host naming则不再需要tnsname.ora文件做本地解析   
  4.    
  5. # listener.ora Network Configuration File: d:/oracle/product/10.1.0/db_1/NETWORK/ADMIN/listener.ora   
  6.   
  7. # Generated by Oracle configuration tools.   
  8.    
  9. SID_LIST_LISTENER =   
  10.    
  11. (SID_LIST =   
  12.    
  13. (SID_DESC =   
  14.    
  15. # (SID_NAME = PLSExtProc)   
  16.    
  17. (SID_NAME = orcl)   
  18.    
  19. (GLOBAL_DBNAME = boway)   
  20.    
  21. (ORACLE_HOME = d:/oracle/product/10.1.0/db_1)   
  22.   
  23. # (PROGRAM = extproc)   
  24.    
  25. )   
  26.    
  27. )   
  28.    
  29. LISTENER =   
  30.    
  31. (DESCRIPTION_LIST =   
  32.    
  33. (DESCRIPTION =   
  34.    
  35. (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))   
  36.    
  37. )   
  38.    
  39. (DESCRIPTION =   
  40.    
  41. (ADDRESS = (PROTOCOL = TCP)(HOST = boway)(PORT = 1521))   
  42.    
  43. )   
  44.    
  45. )   

   
  客户端sqlnet.ora 如果确认不会使用TNSNAME访问的话,可以去掉TNSNAMES 
   
  1. # sqlnet.ora Network Configuration File: d:/oracle/product/10.1.0/db_1/NETWORK/ADMIN/sqlnet.ora   
  2.   
  3. # Generated by Oracle configuration tools.   
  4.    
  5. SQLNET.AUTHENTICATION_SERVICES= (NTS)   
  6.    
  7. NAMES.DIRECTORY_PATH= (HOSTNAME)   

   
  Tnsnames.ora文件不需要配置,删除也无所谓。 
   
  下面就是网络和操作系统的配置问题了,怎么样能够解析我的主机名的问题了 
   
  可以通过下面的方式连接 
   
  sqlplus sys/oracle@boway 
   
  这样的话,会连接boway这台服务器,并且listener来确定你所要连接的service_name。 

-------------------------------------------------------------------------------

 

 

8.启动时listener.ora,sqlnet.ora,tnsnames.ora配置问题解决思路

from:http://www.ixdba.net/hbcms/article/ec/231.html 
 
1:监听文件listener.ora  tnsnames.ora中关于host的配置建议都用ip来表示,


2:如果监听不能启动或者启动后不能正常使用,

(1)首先确认你的OS的hostname,执行hostname命令,尝试ping "hostname",看是否能通, 
(2)然后检查监听的listener.ora ,tnsnames.ora这两个配置文件中关于host的信息是否是用主机名表示的。 
(3)如果是,更改到新的主机名,然后把新的主机名加入系统的hosts文件,linux下为/etc/hosts; 
然后ping 新主机名,应该能通的。 
(4)如果全部是用ip表示的,那么直接将新的主机名加入系统的hosts文件即可。 
然后ping 新主机名,也应该能通的。

3:如果第二步还是解决不了问题,

(1)检查启动的oracle的instance信息,select * fromv$instance; 
然后查看本级系统的主机名,两者应该是相等的。 
(2)如果查询出来的是老的主机名,尝试"ping老主机名"应该不通, 
通过listener也应该是连结不上; 
(3)如果是新的主机名,如果"ping新主机名"不通, 
请修改/etc/hosts文件增加新主机名,确认能ping通,然后重启oracle 

 

4:注意tns和listener文件的设置。 
具体操作步骤:

1)修改hostname为www.ixdba.net 

2)修改/etc/hosts,去掉原来的主机名的行,增加该行 
    192.168.60.253 www.ixdba.net 
3)重启数据库,查询instance信息 
     select * from v$instance; 
     得到新的HOST_NAME为www.ixdba.net 
4)修改listener.ora,把HOST改成新的主机名 
5)修改tnsname.ora,修改对应的HOST为新的主机名 
6)重启listener 
      然后connect oracle/oracle@standby应该可以成功的。

<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22851461/viewspace-1115759/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-11-09