oracle tnsnames.ora配置小结

listener.ora、 tnsnames.ora和sqlnet.ora这3个文件是关系oracle网络配置的3个主要文件,其中listener.ora是和数据库服务器端 相关,而tnsnames.ora和sqlnet.ora这2个文件不仅仅关系到服务器端,主要的还是和客户端关系紧密。
检查客户端oracle网络的时候可以先检查sqlnet.ora文件:

# SQLNET.ORA Network Configuration File: $ORACLE_HOME/NETWORK/ADMIN/sqlnet.ora
# Generated by Oracle configuration tools.

SQLNET . AUTHENTICATION_SERVICES ( NTS )

NAMES . DIRECTORY_PATH ( TNSNAMES HOSTNAME ONAMES )

##NAMES.DEFAULT_DOMAIN = us.oracle.com

上面的sqlnet.ora文件说明:
SQLNET.AUTHENTICATION_SERVICES= (NTS)——这个表示采用os认证,在数据库服务器上,可以利用sqlplus “/ as sysdba”。一般这个配置在windows上是ok的,在unix环境下可能会有问题,一般在unix下可以去掉这个配置。

NAMES.DIRECTORY_PATH= (TNSNAMES, HOSTNAME, ONAMES)——表示将首先利用tnsnames进行解析;如果tnsnames解析不到,将使用hostname解析;如果hostname解析不 到,将采用onames进行解析。

被注释掉的NAMES.DEFAULT_DOMAIN = us.oracle.com——表示采用默认的domain name为us.oracle.com,在tnsnames.ora中如果配置对应的解析,如果原来的别名oralocal,那么,当启用这个参数后,在 tnsnames中的配置要改成oralocal.us.oracle.com。在使用tnsping时或者sqlplus登录时,只需写前面的别名,系 统会自动加上后面的domain name来进行解析。

检查完毕sqlnet.ora,一般都会发现是使用tnsname来解析别名的,那么,tnsnames.ora中可以有哪些配置种类呢?

# TNSNAMES.ORA Network Configuration File: $ORACLE_HOME/NETWORK/ADMIN/tnsnames.ora
# Generated by Oracle configuration tools.


###### 一般的配置 ##################################
ORALOCAL  =
  
( DESCRIPTION  =
    
( ADDRESS_LIST  =
      
( ADDRESS  =  ( PROTOCOL  =  TCP )( HOST  =  127.0.0.1 )( PORT  =  1521 ))
    
)
    
( CONNECT_DATA  =
      
( SERVER  =  DEDICATED )
      
( SERVICE_NAME  =  oralocal )
    
)
  
)


###### 这样也行,用SID=oralocal ###########################
ORALOCAL_2  =
  
( DESCRIPTION  =
    
( ADDRESS_LIST  =
      
( ADDRESS  =  ( PROTOCOL  =  TCP )( HOST  =  127.0.0.1 )( PORT  =  1521 ))
    
)
    
( CONNECT_DATA  =
      
( SERVER  =  DEDICATED )
      
( SID  =  oralocal )
    
)

###### RAC的配置(3节点rac) ###############################
ORALOCAL  =
  
( DESCRIPTION  =
  
( load_balance  =  yes )
  
( failover  =  on )
    
( ADDRESS_LIST  =
      
( ADDRESS  =  ( PROTOCOL  =  TCP )( HOST  =  192.168.1.1 )( PORT  =  1521 ))
      
( ADDRESS  =  ( PROTOCOL  =  TCP )( HOST  =  192.168.1.2 )( PORT  =  1521 ))
      
( ADDRESS  =  ( PROTOCOL  =  TCP )( HOST  =  192.168.1.3 )( PORT  =  1521 ))    
    
)
    
( CONNECT_DATA  =
        
( SERVICE_NAME  =  oralocal )
        
( SERVER  =  DEDICATED )
        
( failover_mode = ( type = select )( method = basic )( retries = 20 )( delay = 20 ))
    
)
  
)
  
ORALOCAL_NODE1  =
   
( DESCRIPTION  =
     
( ADDRESS_LIST  =
       
( ADDRESS  =  ( PROTOCOL  =  TCP )( HOST  =  192.168.1.1 )( PORT  =  1521 ))
       
)
       
( CONNECT_DATA  =
         
( SERVICE_NAME  =  oralocal )
         
( INSTANCE_NAME  =  oralocal_node1 )
       
)
   
)


ORALOCAL_NODE2 =
   
( DESCRIPTION  =
     
( ADDRESS_LIST  =
       
( ADDRESS  =  ( PROTOCOL  =  TCP )( HOST  =  192.168.1.2 )( PORT  =  1521 ))
       
)
       
( CONNECT_DATA  =
         
( SERVICE_NAME  =  oralocal )
         
( INSTANCE_NAME  =  oralocal_node2 )
       
)
   
)
   

ORALOCAL_NODE3  =
   
( DESCRIPTION  =
     
( ADDRESS_LIST  =
       
( ADDRESS  =  ( PROTOCOL  =  TCP )( HOST  =  192.168.1.3 )( PORT  =  1521 ))
       
)
       
( CONNECT_DATA  =
         
( SERVICE_NAME  =  oralocal )
         
( INSTANCE_NAME  =  oralocal_node3 )
       
)
   
)


  
)


###### DATA GUARD配置(primary库和standby库都需要配置)##############
standby  =
  
( DESCRIPTION  =
    
( ADDRESS_LIST  =
      
( ADDRESS  =  ( PROTOCOL  =  TCP )( HOST  =  192.168.2.2 )( PORT  =  1521 ))
        
)
    
( CONNECT_DATA  =
          
( SERVER = DEDICATED )  
          
( SERVICE_NAME  =  oralocal )
      
)
  
)

primary  =
  
( DESCRIPTION  =
    
( ADDRESS_LIST  =
      
( ADDRESS  =  ( PROTOCOL  =  TCP )( HOST  =  192.168.2.1 )( PORT  =  1521 ))
        
)
    
( CONNECT_DATA  =
          
( SERVER = DEDICATED )  
          
( SERVICE_NAME  =  oralocal )
      
)
  
)

另外需要注意的2点情况:
(1)如果tnsnames中的service_name配置错误,配置成了instance_name了,这个时候会发生tnsping能通,但是 sqlplus连接不上的奇怪情况。报错ORA-12514: TNS:listener could not resolve SERVICE_NAME given in connect descriptor。这个时候查错的时候,需要检查对应的service_name。
(2)如果远程数据库是rac,而且本地客户端端远程数据库处于不同的网段,通过公网链接,rac对外的ip映射只有一个,即只映射到一个节点。请注意在 客户端配置tnsnames的时候按照单机的情况来配置。呵呵,dba不仅仅要学习oracle,了解一些网络的知识,特别是自己系统的网络架构,也是需 要的。

 

 

 

and:  tnsping  .... 查看服务器与端口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Oracle TNSnames.ora 文件是 Oracle 的网络服务名称配置文件,其中包含了连接到 Oracle 数据库所需的信息。在这个文件中,你可以配置连接的数据库服务器的主机名、端口号、SID等信息。通常情况下,TNSnames.ora 文件位于 $ORACLE_HOME/network/admin 目录中。 ### 回答2: Oracle TNSnames.ora 是一个配置文件,它定义了连接到Oracle数据库的网络服务名称和相关配置参数。TNSnames.ora配置的正确性和准确性对于正确连接和管理数据库至关重要。下面将详细说明如何配置Oracle TNSnames.ora。 首先,需要编辑和修改TNSnames.ora文件。该文件通常位于$ORACLE_HOME/network/admin/目录下。在编辑该文件之前,需要了解几个基本概念和语法: - 服务名称:在TNSnames.ora文件中,服务名称是一段文字,它用于标识一个数据库服务。服务名称必须是唯一的,可以是任何字符串,但最好能够清晰、准确地表达该服务的作用。 - 主机名:主机名是指数据库服务器的名称或地址,也就是需要连接的数据库所在的主机。 - 端口号:端口号是指数据库服务器监听连接请求的端口号。在TNSnames.ora文件中,端口号通常以冒号(:)隔开主机名和服务名称。 - 协议:协议是指用于通信的网络协议,通常是TCP/IP协议。在TNSnames.ora文件中,协议与主机名、端口号一起构成了连接字符串。 下面是一个TNSnames.ora配置文件的示例: ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = db.example.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.example.com) ) ) 在该配置文件中,ORCL是服务名称,它对应着一个数据库服务。这个服务运行在主机db.example.com上,监听的端口号是1521,使用的协议是TCP。CONNECT_DATA部分定义了如何连接到该服务,包括连接模式(DEDICATED)和服务名称(orcl.example.com)。 当需要连接到一个数据库服务时,可以使用该服务的服务名称进行连接。例如,使用sqlplus命令连接到ORCL服务: sqlplus username/password@ORCL 在这个命令中,使用了用户名和密码来进行连接,连接的服务名称是ORCL。根据TNSnames.ora配置文件,该服务对应着一个运行在db.example.com上的数据库服务。 在实际的应用中,TNSnames.ora文件可能会比上述示例更加复杂。不同的服务名称可能会对应着不同的连接参数和数据库服务。因此,在编辑TNSnames.ora文件时,需要仔细检查每个服务的配置参数,并确保它们正确无误。 ### 回答3: Oracle TNSNames.oraOracle数据库中的一个配置文件,用于定义Oracle数据库的连接信息。通过配置TNSNames.ora文件,可以实现在同一台或不同的服务器之间快捷地访问Oracle数据库。 一般来说,每个Oracle数据库都需要一个TNSNames.ora文件,以允许客户端应用程序连接到数据库TNSNames.ora配置文件包含了Oracle数据库的连接信息,包括数据库的名称、主机名、端口号和服务名等,客户端应用程序可以通过这些信息直接连接到Oracle数据库。 下面是一个TNSNames.ora文件的示例: ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) 在这个示例中,“ORCL”是Oracle数据库的名称,“192.168.1.100”是主机名,“1521”是端口号,“orcl”是服务名。除了这些基本信息外,还可以定义其他的连接信息,比如用户名、密码、连接超时等。 配置TNSNames.ora文件的方法很简单,只需要按照上面的示例修改相应的参数即可。如果需要连接到多个Oracle数据库,可以在文件中添加多个不同的数据库连接信息。配置TNSNames.ora文件后,客户端应用程序就可以使用该文件中定义的数据库连接信息进行连接。 总的来说,配置TNSNames.ora文件是Oracle数据库连接的重要步骤之一。通过正确地配置该文件,可以让客户端应用程序顺利地连接到Oracle数据库,并执行各种数据库操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值