Oracle TNS提供的网络连接服务(oracle tns作用)
Oracle TNS 提供的网络连接服务
Oracle 是一种关系型数据库管理系统,Oracle 数据库除了常用的 SQL*Plus 远程连接,还有一种通过 TNS(Transparent Network Substrate)提供的网络连接服务。TNS 可以在不了解详细网络信息的情况下对数据库进行连接,因此被称为“透明的”网络基础结构。
TNS 的组成部分
TNS 包含三个主要组成部分:监听程序(Listener)、服务命名和连接描述符。监听程序是在服务器端运行的进程,其主要作用是等待从客户端连接请求, 可以通过 host、port、protocol 等参数来确定监听位置和端口,监听程序运行时同时会在本地计算机上开启一个服务,用于将客户端请求传递给数据库服务器。
服务命名是将具体的网络连接服务与一个唯一的名称进行关联,这个名称可以被客户端使用,以达到访问 Oracle 数据库的目的。连接描述符则是客户端用来描述连接属性和细节的信息,通过连接描述符,客户端就能确定连接的类型、目标数据库的地址、用户名、密码等信息。
在使用 TNS 连接时,首先需要建立服务命名,然后在客户端中配置连接描述符,最终在客户端上启动连接请求。下面通过代码实现 Oracle TNS 的网络连接服务。
建立服务命名
在 Oracle 数据库中建立服务命名前需要先安装 Oracle Client 工具,这样才能够向 Oracle 实例中加载 tnsnames.ora 文件。在这里我们假设 Oracle Client 安装完毕,并且已经在本地计算机上配置了 tnsnames.ora 文件,以下是一个示例:
ORCL =
(DESCRIPTION = (ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) )
(CONNECT_DATA = (SERVER = DEDICATED)
(SID = ORCL) )
)
在这个示例中,ORCL 是服务命名的名称,其中 ORCL 代表了要连接的数据库的实例。PROTOCOL、HOST 和 PORT 参数指定了 listener 应该在哪里监听,以等待来自客户端的请求。SID(Service ID)参数为 Oracle 实例的标识符,用于指定将要连接的数据库服务。
配置连接描述符
在客户端中配置连接描述符需要在 tnsnames.ora 文件中创建一个对应的描述符,在这里我们创建一个名为 mydatabase 的连接描述符,以下是示例:
MYDATABASE =
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA = (SERVER = DEDICATED)
(SERVICE_NAME = ORCL) )
)
该描述符包含了如下连接信息:PROTOCOL:TCP,连接协议;HOST:localhost,数据库所在机器的 IP 地址或机器名;PORT:1521,数据库所在机器上监听的端口号;SERVER:DEDICATED,独享模式的数据库服务;SERVICE_NAME:ORCL,要连接的数据库 SID。
在客户端中使用 TNS 连接
在客户端中使用配置好的连接描述符进行连接操作,以 Python 数据库驱动程序 cx_Oracle 为例,在 Python 中通过以下代码就可以连接到 Oracle 数据库:
“`python
import cx_Oracle
conn = cx_Oracle.connect(‘username/password@mydatabase’)
以上代码中的 username 和 password 分别为数据库用户和密码,mydatabase 为客户端中配置的连接描述符名称。
总结
Oracle TNS 提供的网络连接服务可以让用户在不了解细节的情况下,优雅地访问 Oracle 数据库。通过服务命名,连接描述符和监听程序等组成部分,可以实现安全高效的数据库连接。