oracle里的tns是什么意思
参考http://www.jb51.net/article/44668.htm
TNS简要介绍与应用
Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器。
TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置TNS也可以连接Oracle数据库,比如通过JDBC。如果通过TNS连接Oracle,那么客户端必须安装Oracle client程序。
Oracle当中,如果想访问某个服务器,必须要设置TNS,它不像SQL SERVER那样在客户端自动列举出在局域网内所有的在线服务器,只需在客户端选择需要的服务器,然后使用帐号与密码登录即可。而Oracle不能自动列举出网内的服务器,需要通过读取TNS配置文件才能列出经过配置的服务器名。
配置文件名一般为:tnsnames.ora,默认路径:%ORACLE_HOME%\network\admin\tnsnames.ora
上图中的CGDB和STDCG就是对应的TNS,HOST是指向数据库服务器的IP,当然局域网内用计算机名称也是可以的。通过客户端Net Manager创建一个连接到数据库服务器的连接服务时,实际上就是在tnsnames.ora文件中增加了一个TNS的内容。
TNS的详细配置文件
TNS的配置文件包括服务器端和客户端两部分。服务器端有listener.ora、sqlnet.ora和tnsnames.ora,如果通过OCM(Oracle Connection Manage)和域名服务管理客户端连接,服务器端可能还包括cman.ora等文件;客户端有tnsnames.ora,sqlnet.ora。Oracle所有的TNS配置文件的默认路径:%ORACLE_HOME%\network\admin
listener.ora:监听器配置文件,成功启动后是驻留在服务器端的一个服务。监听器是用来侦听客户端的连接请求以及建立客户端和服务器端连接通道的一个服务程序。默认情况下Oracle在1521端口上侦听客户端连接请求。
sqlnet.ora:用来管理和约束或限制tns连接的配置,通过在该文件中设置一些参数,可以管理TNS连接。根据参数作用的不同,需要分别在服务器和客户端配置.。
tnsnames.ora:配置客户端到服务器端的连接服务,包括客户端要连接到的服务器和数据库的配置信息。
TNS配置
可以通过Oracle Net Configuretion Assitant配置TNS,也可以手动配置。首先在Oracle服务器端安装完成之后,应该先着手配置LISTENER,LISTENER是进行Oracle通讯的首要组件,紧接着在客户端安装Oracle client,同时配置tnsnames.ora文件。
首先监听器包括两个部分:Oracle要监听的地址、端口、通讯协议;Oracle要监听的数据库实例,非RAC环境下,LISTENER只能监听本服务器的地址和实例,RAC环境下,LISTENER还可以监听远程服务器。每个数据库最少要配置一个监听器。(注:RAC环境,指的是Oracle服务器集群配置的环境)
LISTENER部分配置了Oracle要监听的地址和端口信息;该文件中还会包括SID_LIST_LISTENER部分,这部分配置了Oracle需要监听的实例。(注:在上述截图中并没有SID_LIST_LISTENER这一部分,这是因为Oracle自9i版本引入了动态监听服务注册,在数据库启动时,会自动注册当前数据库实例到监听列表,所以无需配置SID_LIST_LISTENER部分了)
HOST参数可以是Oracle服务器主机名称,也可以是相应的IP地址。在一个多IP的服务器上可以配置listener同时监听多个地址,比如下面的配置:LISTENER= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.11)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.11) (PORT=1521))) ),或者可以配置多个监听器,分别监听不同的IP地址。
一般说的TNS配置其实就是对tnsnames.ora文件的配置,tnsnames.ora有客户端的配置,也有服务器端的配置。客户端和服务器端配置的区别是因为服务器端的配置跟LISTENER的配置相关。下面是一个简单的配置示例:
tnsnames.ora也包括两部分,ADDRESS_LIST 部分包含了Oracle数据库服务器的监听地址信息,也就是要告诉TNS数据库可通过这个地址和CLIENT进行通讯;CONNECT_DATA 定义了CLIENT要连接的数据库,以及数据库的连接方式,(专用或共享)。
在一个多IP环境中,TNS也可以配置多个远程IP地址:CGDB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.55)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.56)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = CGDB) (SERVER = DEDICATED) ) )
sqlnet.ora是个很重要的配置,它可以控制和管理Oracle连接的属性,根据参数作用的不同决定在客户端配置还是在server端配置。sqlnet.ora的配置是全局性的,也就说sqlnet.ora的配置是对所有的连接起作用,如果想对某个特殊的连接或服务进行约束或限制,可以 在TNS配置相应参数。
IPC: interprocess communication
A protocol used by client applications that resides on the same node as the listener
to communicate with the database. IPC can provide a faster local connection than
TCP/IP.
oracle里的tns是什么意思的更多相关文章
- Oracle ORA-12541:TNS:无监听程序
Oracle ORA-12541:TNS:无监听程序 标签: Oracle DataBase 今天使用Oracle数据库,使用可视化连接工具连接测试环境的数据库时提示无监听程序,最后在老师帮助下终于搞 ...
- MSSQL如何访问ORACLE里的表
环境: MSSQL:2008 ORACLE DB:10.2.0.1 之前一直没有接触MSSQL,最近因需要MSSQL访问ORACLE里的表,下面是MSSQL连接ORACLE的配置过程. 1 ...
- Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)解决
环境:Windows 2008 R2 + Oracle 10.2.0.3 应用最新bundle patch后,扫描依然报出漏洞 Oracle Database Server 'TNS Listener ...
- 关于Oracle报“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误
关于Oracle报“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”错误原因:listener.ora中没有指定监听服务器名. 如下是解决思路: 尝试1.通过重启服务的方式启动数 ...
- oracle数据库的TNS配置
TNS简要介绍与应用 Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器. TNS ...
- oracle client ORA-12541: TNS: 无监听程序
1. Question description: if you are setting the oracle client to add a local network service, you m ...
- ORACLE里锁有以下几种模式,v$locked_object,locked_mode【转】
ORACLE里锁有以下几种模式:0:none1:null 空2:Row-S 行共享(RS):共享表锁,sub share 3:Row-X 行独占(RX):用于行的修改,sub exclusive 4: ...
- oracle里的优化器
1.1 oracle里的优化器 RBO(Rule-Based-Optinizer):基于规则的优化器 CBO(Cost-Based-Optinizer): 基于成本的优化器 SQL语句执行过程 待执行 ...
- ORACLE里锁有以下几种模式,v$locked_object,locked_mode
ORACLE里锁有以下几种模式: 0:none 1:null 空 2:Row-S 行共享(RS):共享表锁,sub share 3:Row-X 行独占(RX):用于行的修改,sub exclusiv ...
随机推荐
- Jquery 行选中背景色
直接上代码: 懒得以后网上在查了,拷贝直接可用 Style: .tbSelectCss { background-color:#d5f4fe; } Html: <table name=" ...
- C# 对象与JSON字符串互相转换的三种方式
C# 对象与JSON字符串互相转换的三种方式 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 关于内存对象和JSON字符串的相互转换, ...
- (未完成...)Python3网络爬虫(2):利用urllib.urlopen向有道翻译发送数据并获得翻译结果
环境: 火狐浏览器 pycharm2017.3.3 python3.5 1.url不仅可以是一个字符串,例如:http://www.baidu.com.url也可以是一个Request对象,这就需要我 ...
- ra (数论 , 莫比乌斯反演 , 整点统计)
题意 求 \[\displaystyle \sum_{i=1}^{n} \sum_{j=1}^{n} [\mathrm{lcm} (i,j) > n] \pmod {10^9 + 7}\] . ...
- JVM复习总结
运行时数据区域 图中深色区域为,由所有线程共享的数据区域,其他为线程隔离的数据区. 程序计数器 程序计数器可以看作是当前线程执行的字节码的行号指示器. 虚拟机栈 虚拟机栈描述的是Java方法执行的内存 ...
- LOJ#2095 选数
给定n,k,l,r 问从[l, r]中选出n个数gcd为k的方案数. 解:稍微一想就能想到反演,F(x)就是[l, r]中x的倍数个数的n次方. 后面那个莫比乌斯函数随便怎么搞都行,当然因为这是杜教筛 ...
- 出现“java.lang.AssertionError: SAM dictionaries are not the same”报错
运行一下程序时出现“java.lang.AssertionError: SAM dictionaries are not the same”报错 java -jar picard.jar SortVc ...
- 记一次B站答题经历
第一题部分:社区规范卷 --------- ------------ 第二题:社区规范第二部分 -------------------- 第三部分自由选择题 --------------------- ...
- IDEA下搜狗输入法输入中文时卡着不动的参考解决方法
在IntelliJ IDEA工具的java编辑窗口,给代码增加注释时发现,输入中文时,搜狗输入法界面不动,一直卡着,如图: 我想输入“根据”两个字,但搜狗输入法界面一直卡着不刷新,导致都不知道自己输 ...
- Unity PC端发布失败解决办法
Unity的PC端有时候发布的时候报错.原因可能是你的游戏里面使用了NGUI的label,而且字体选择的是unity自带的字体.因为支持中文.在选择unity自带的字体时最好都选一样的字体.如果一个l ...