详细分析Oracle中的tnsnames.ora基本知识 以及 PLSQL如何连接(附Demo)

目录

  • [1. tnsnames.ora](#1. tnsnames.ora)
  • [2. Demo](#2. Demo)
  • [3. 实战](#3. 实战)

1. tnsnames.ora

Oracle 数据库网络配置文件,用于配置客户端与数据库服务器之间的连接

定义网络服务名称,客户端可以使用这些名称连接到数据库实例

基本的路径如下:

  • Windows: ORACLE_HOME\network\admin
  • Unix/Linux: $ORACLE_HOME/network/admin

基本的结构如下:

txt 复制代码
net_service_name =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = protocol)(HOST = hostname)(PORT = port))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = service_name)
    )
  )
  • net_service_name:客户端连接时使用的服务名称 (ORCL, SALESDB)

  • DESCRIPTION:描述网络连接信息的主要部分(ADDRESS_LIST, CONNECT_DATA)

  • ADDRESS_LIST:(包含一个或多个 ADDRESS,用于定义主机和端口信息,提供故障转移和负载均衡)

txt 复制代码
(ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = dbhost1)(PORT = 1521))
  (ADDRESS = (PROTOCOL = TCP)(HOST = dbhost2)(PORT = 1521))
)

ADDRESS:指定数据库服务器的网络地址

  • PROTOCOL:通信协议,常见的是 TCP
  • HOST:数据库服务器的主机名或 IP 地址
  • PORT:数据库监听程序的端口号

CONNECT_DATA: 指定连接到数据库实例的相关信息

  • SERVICE_NAME:数据库服务名,通常是数据库实例的全局名。
  • SID:系统标识符,数据库实例的唯一标识。
  • INSTANCE_NAME:实例名称,通常用于 RAC(Real Application Clusters)环境
  • SERVER: 服务器类型,可以是 DEDICATED(专用服务器)或 SHARED(共享服务器)

2. Demo

更多的Demo可以参考官网:tnsnames.ora 参数设置

以下给一些示例:

示例 1: 简单连接

txt 复制代码
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dbhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl.example.com)
    )
  )

示例 2: 带有负载均衡和故障转移的连接

txt 复制代码
SALESDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (LOAD_BALANCE = ON)
      (FAILOVER = ON)
      (ADDRESS = (PROTOCOL = TCP)(HOST = dbhost1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = dbhost2)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = sales.example.com)
    )
  )

示例3:使用多个描述符

txt 复制代码
DBSERVICE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dbhost1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = dbservice.example.com)
    )
  )
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dbhost2)(PORT = 1522))
    (CONNECT_DATA =
      (SERVICE_NAME = dbservice.example.com)
    )
  )

示例4:动态注册和连接池

java 复制代码
SHAREDSERVICE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dbhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = shared.example.com)
      (SERVER = SHARED)
    )
  )

3. 实战

具体的修改路径如下:

配置好相应的数据之后,打开PLSQL会有相应的缓存信息

除了上述的登录方式外,还可以直接使用ip地址进行登录:

如果无法使用IP登录(保证账号密码等安全),查看configure-》preferences,是否下面没有监测识别到

相关推荐
爱可生开源社区1 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1771 天前
《从零搭建NestJS项目》
数据库·typescript
加号32 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏2 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐2 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再2 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
tryCbest2 天前
数据库SQL学习
数据库·sql
jnrjian2 天前
ORA-01017 查找机器名 用户名 以及library cache lock 参数含义
数据库·oracle
十月南城2 天前
数据湖技术对比——Iceberg、Hudi、Delta的表格格式与维护策略
大数据·数据库·数据仓库·hive·hadoop·spark
Henry Zhu1232 天前
数据库:并发控制基本概念
服务器·数据库