暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle tnsnames.ora 配置详解

原创 crysjackbear 2023-10-12
3731

Oracle tnsnames.ora 是 Oracle 客户端连接数据库的配置文件,类似于 Linux 系统的 hosts 文件,提供 tnsname 到主机名或者 IP 的对应关系。只有当 sqlnet.ora 中有类似“NAMES.DIRECTORY_PATH=(TNSNAMES)”的配置的时候,客户端解析连接字符串时,数据库才会尝试使用这个文件。

tnsnames.ora 文件格式

tnsnames.ora 文件的格式如下:

tnsname =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = lhr)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

其中,每个部分的解释如下所示:

  • **PROTOCOL:**客户端与服务器端通讯的协议,一般为 TCP,该内容一般不用改。
  • **HOST:**数据库所在的机器的主机名或 IP 地址。不管用主机名还是 IP 地址,在客户端一定要用 ping 命令 ping 通数据库所在的机器,否则需要在 hosts 文件中加入数据库所在的机器的主机名和 IP 地址的对应关系。
  • **PORT:**数据库监听器的端口,可以查看服务器端的 listener.ora 文件或在数据库服务器中通过 lsnrctl status [listener name] 命令来查看。一般为 1521 端口。
  • **SERVICE_NAME:**在数据库中使用“SHOW PARAMETER SERVICE_NAME”命令查看,一般情况下和 DBNAME 相同。

tnsnames.ora 配置实例

下面给出一个配置的例子:

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = lhr)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

该配置表示,tnsname 为 ORCL,对应的数据库所在主机名为 lhr,端口为 1521,服务名为 orcl。

集群 RAC 中的 tnsnames.ora 配置

在集群 RAC 中,每个数据库实例都有一个唯一的 IP 地址和端口,因此需要在 tnsnames.ora 文件中为每个数据库实例配置一个 tnsname。

例如,假设集群 RAC 有两个数据库实例,分别为 orcl1 和 orcl2,则可以将 tnsnames.ora 文件配置为如下所示:

# 计算机名称调整

ORCL1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = lhr1.example.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

ORCL2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = lhr2.example.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

# 负载均衡配置

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(LOAD_BALANCE=ON)(HOST = lhr1.example.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(LOAD_BALANCE=ON)(HOST = lhr2.example.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

在该配置中,我们对计算机名称进行了调整,将原来的 lhr1lhr2 修改为 lhr1.example.comlhr2.example.com

然后,我们添加了 LOAD_BALANCE=ON 参数,启用负载均衡。这样,客户端连接数据库时,会根据负载均衡算法,选择一个数据库实

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论