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

相关推荐
Flying pigs~~7 分钟前
数据分析三剑客之Pandas
大数据·数据库·人工智能·数据分析·numpy·pandas
tod11322 分钟前
Redis - 客户端基本介绍
开发语言·数据库·redis·缓存
李慕婉学姐33 分钟前
【开题答辩过程】以《智能小区物业管理系统设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·数据库·后端
Project_Observer43 分钟前
Zoho Projects自动化:状态变更时自动创建依赖任务
linux·数据库·windows
heimeiyingwang1 小时前
Chroma(轻量级向量数据库) 与 MongoDB(文档型 NoSQL 数据库) 的细节拆解
数据库·mongodb·nosql
宇擎智脑科技1 小时前
SurrealDB:面向AI原生应用的新一代多模型数据库深度解析
数据库·人工智能·ai-native
IT_Octopus1 小时前
AI 工程 生产级别 向量数据库 Milvus 部署架构&多租户方案&节点流程简单总结
数据库·架构·milvus
xuzhiqiang07241 小时前
【Flask】四、flask连接并操作数据库
数据库·python·flask
TDengine (老段)1 小时前
TDengine IDMP 数据可视化 6. 资产列表
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
ℳ₯㎕ddzོꦿ࿐1 小时前
[特殊字符] 【踩坑记录】没调 startPage(),SQL 却被自动分页了?
数据库·sql