详细分析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,是否下面没有监测识别到

相关推荐
小光学长40 分钟前
基于vue框架的防疫科普网站0838x(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
极限实验室1 小时前
使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建
数据库·docker·devops
飞翔的佩奇1 小时前
Java项目:基于SSM框架实现的旅游协会管理系统【ssm+B/S架构+源码+数据库+毕业论文】
java·数据库·mysql·毕业设计·ssm·旅游·jsp
智海观潮2 小时前
Flink CDC支持Oracle RAC架构CDB+PDB模式的实时数据同步吗,可以上生产环境吗
大数据·oracle·flink·flink cdc·数据同步
float_六七3 小时前
SQL六大核心类别全解析
数据库·sql·oracle
Code季风5 小时前
将 gRPC 服务注册到 Consul:从配置到服务发现的完整实践(上)
数据库·微服务·go·json·服务发现·consul
Boilermaker19925 小时前
【Java EE】SpringIoC
前端·数据库·spring
霸王龙的小胳膊5 小时前
泛微虚拟视图-数据虚拟化集成
数据库
灵犀学长6 小时前
解锁Spring Boot多项目共享Redis:优雅Key命名结构指南
数据库·redis
轩情吖6 小时前
Qt的信号与槽(二)
数据库·c++·qt·信号·connect·信号槽·