当前位置: 首页 > article >正文

图文深入理解Oracle Network配置管理(一)

  1. List item

本篇图文深入介绍Oracle Network配置管理。

Oracle Network概述

Oracle Net 服务

在这里插入图片描述

Oracle Net 监听程序

在这里插入图片描述

<oracle_home>/network/admin/listener.ora
<oracle_home>/network/admin/sqlnet.ora

建立网络连接

要建立客户机或中间层连接,Oracle Net 要求客户机了解下列事项:
• 运行监听程序的主机(Host)
• 监听程序监视的端口(Port)
• 监听程序使用的协议(Protocol)
• 监听程序处理的服务名(Service Name)

建立连接

连接请求从用户或中间层应用程序(以下称为“用户进程”)传递到监听程序(Listener)。
监听程序会接收一个 CONNECT 数据包,之后会检查此CONNECT 数据包请求的 Oracle Net 服务名是否有效?
• 如果没有请求的服务名(例如 tnsping 测试请求),监听程序会确认连接请求,不执行任何其它操作。
• 如果请求的服务名无效,则监听程序会将错误代码传输给该用户进程。

用户会话

• 如果 CONNECT 数据包请求了一个有效的服务名,则监听程序将衍生一个新的进程来处理该连接。此新进程称为“服务器进程”(Server Process)。
• 监听程序会传递初始化信息给服务器进程,包括用户进程的地址信息。并把所有工作都传递到服务器进程处理。
• 服务器进程将检查用户的验证身份证明(通常为用户密码),如果身份证明有效,则创建一个用户会话(Session)。
在这里插入图片描述

配置和管理 Oracle Network 的工具

• Enterprise Manager: Home > Listener > Related_Links: Net
Services Administration
• Oracle Net Manager (netmgr)
• Oracle Net Configuration Assistant (netca)
• 命令行工具 (lsnrctl 或 srvctl)
• 网络配置文件:
–listener.ora
– tnsnames.ora
– sqlnet.ora

可以使用 lsnrctl 命令(或通过 OEM)控制 Oracle Net 监听程序。可以使用命令行或 LSNRCTL 提示符发出监听控制程序的命令。
• 命令行语法:

$ lsnrctl <command name>
$ lsnrctl start
$ lsnrctl status

• 提示符语法:

LSNRCTL> <command name>
LSNRCTL> start
LSNRCTL> status

使用 SRVCTL 启动和停止监听程序

如果配置了 Oracle Restart,则应使用 SRVCTL 来管理监听程序。

$ srvctl -h
$ srvctl start listener
$ srvctl stop listener
$ srvctl start listener –l mylistener
$ srvctl status listener

数据库(动态/静态)服务注册

• 动态服务注册:DB 实例会在启动数据库时向默认监听程序自动进行注册,不需要其它的监听程序配置。
• 静态服务注册:为监听程序配置文件添加一个数据库服务列表,监听程序为之提供服务

Oracle Net 命名方法

Oracle Net 支持多种解析连接信息的方法:
• 简便连接命名(EZCONNECT):无需配置,直接使用 TCP/IP 连接字符串(由主机名、可选端口和服务名组成),格式如下:

CONNECT username/password@host[:port][/service_name]

• 本地命名:使用本地 tnsnames.ora 配置文件
• 目录命名:使用符合 LDAP 的集中式目录服务器
• 外部命名:使用 Oracle 支持的第三方服务命名方式,如:
– 网络信息服务 (NIS)
– 分布式计算环境 (DCE) 单元目录服务 (CDS)
在这里插入图片描述

简便连接(EZConnect)

• 默认启用此方式
• 不需要进行客户机配置,连接字符串采用以下形式:

<username>/<password>@<hostname>:<listener port>/<service name>

• 仅支持 TCP/IP(无 SSL),默认 port 1521
• 不支持高级连接选项,如:
– 连接时故障转移
– 源路由
– 负载平衡

SQL> CONNECT hr/hr@oracle.example.com:1521/orcl

在这里插入图片描述

本地命名

本地命名的好处是:数据库用户仅需要记住一个短别名,而不必记住简便连接所需的长连接字符串。
• 本地已知服务列表存储在以下配置文件中,默认位置在:

<oracle_home>/network/admin/tnsnames.ora

• tnsnames.ora 文件的位置也可以使用 TNS_ADMIN 环境变量指定
• 需要客户机名称解析文件(Hosts 文件)
• 支持所有的 Oracle Net 协议
• 支持高级连接选项,如:
– 连接时故障转移、源路由、负载平衡
在这里插入图片描述

目录命名

目录命名的好处是:只需将更新的服务名添加到 LDAP 目录,此服务名便可供用户在连接时使用,无需再到各个客户端修改设定。
• 需要加载了 Oracle Net 名称解析信息的 LDAP:
– Oracle Internet Directory – Microsoft Active Directory Services
• 支持所有的 Oracle Net 协议
• 支持高级连接选项
在这里插入图片描述

外部命名方法

• 外部命名类似于目录命名,是使用了受支持的非 Oracle 命名服务,包括:
– 网络信息服务 (NIS) 外部命名
– 分布式计算环境 (DCE) 单元目录服务 (CDS)
在这里插入图片描述

测试 Oracle Net 连接

tnsping 实用程序测试 Oracle Net 服务别名:
• 确保客户机与 Oracle Net 监听程序之间的连接
• 不验证所请求的服务是否可用
• 支持简便连接名称解析:

tnsping host01.example.com:1521/orcl

• 支持本地命名和目录命名:

tnsping orcl

用户会话:专用服务器进程(Dedicated Server Processes)

在这里插入图片描述

用户会话:共享服务器进程(Shared Server Processes)

在这里插入图片描述

不能使用共享服务器的情况

不能使用共享服务器执行某些类型的数据库工作:
• 数据库管理(包括:启动和关闭实例、创建表空间和数据文件等需要由 DBA 执行的任务)
• 备份和恢复操作
• 批处理和批量加载操作
• 必须处理大批数据的数据仓库操作。

配置数据库之间的通信

• 在站点之间发送数据或消息时,需要在双方站点上进行网络配置。
• 必须配置以下项:
– 网络连接(例如 tnsnames.ora)
– 数据库链接(PUBLIC DATABASE LINK )

CREATE DATABASE LINK <remote_global_name>
CONNECT TO <user> IDENTIFIED BY <pwd>
USING '<connect_string_for_remote_db>';

未完待续。
码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者,后续不定期分享DB基本知识和排障案例及经验、性能调优等。


http://www.kler.cn/news/334610.html

相关文章:

  • Windows系统编程(三)进程与线程二
  • sentinel原理源码分析系列(一)-总述
  • Centos Stream 9备份与恢复、实体小主机安装PVE系统、PVE安装Centos Stream 9
  • C++面试速通宝典——9
  • rabbitMq-----消费者管理模块
  • Perforce静态分析工具2024.2新增功能:Helix QAC全新CI/CD集成支持、Klocwork分析引擎改进和安全增强
  • 使用指标进行量化交易时,有哪些需要注意的风险点呢
  • Spring Data JPA中的锁机制
  • CSP-J/S 复赛算法 区间动态规划
  • 【2024年最新】基于springboot+vue的springboot火车订票管理系统lw+ppt
  • Linux学习笔记(七):磁盘的挂载与扩展
  • 鼓组编写:SsdSample鼓映射 GM Map 自动保存 互换midi位置 风格模板 逻辑编辑器
  • 滚雪球学Oracle[1.3讲]:Oracle数据库架构基础
  • 生信初学者教程(二十五):验证候选特征
  • [已解决] Install PyTorch 报错 —— OpenOccupancy 配环境
  • RTR_Chapter_6 下
  • flutter_鸿蒙next_Dart基础①字符串
  • (三)Mysql 数据库系统全解析
  • 探索消息中间件:RabbitMQ深度解析
  • 解锁 SDKMAN!:最新教程与全面简介