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

embedded/2024/10/15 18:29:17/
  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.ppmy.cn/embedded/123977.html

相关文章

git初级使用学习(图文)

以后工作少不了使用git&#xff0c;记录一下今天的学习&#xff0c;防止忘记 Git 是一个分布式版本控制系统&#xff0c;常用于代码管理和团队协作 首先新建一个文件夹&#xff0c;作为本地仓库 mkdir git-practice 初始化仓库 git init 新建个test1.cpp文件&#xff0c;…

滚雪球学MySQL[6.3讲]:数据库复制与高可用性详解:从主从复制到高可用集群

全文目录&#xff1a; 前言6.3 复制与高可用1. 主从复制的配置与管理1.1 主从复制的基本原理1.2 主从复制的配置步骤1.3 主从复制的应用场景 2. 高可用集群2.1 MySQL ClusterMySQL Cluster架构配置MySQL Cluster的步骤 2.2 Galera Cluster配置Galera Cluster的步骤 3. 拓展与实…

【git】配置 Git 的换行符处理和安全性||安装 Ruby

配置 Git 的换行符处理和安全性&#xff1a; git config --global core.autocrlf input&#xff1a;这个设置确保在提交代码时&#xff0c;Git 会将 CRLF&#xff08;Windows 的换行符&#xff09;转换为 LF&#xff08;Unix 的换行符&#xff09;&#xff0c;但在检出代码时不…

目标检测 DETR(2020)

文章目录 前言backbone位置编码&#xff08;二维&#xff09;encoder、decoderprediction heads损失函数计算 前言 DETR全称是Detection Transformer&#xff0c;是首个基于Transformer的端到端目标检测网络&#xff0c;最大的特点就是不需要预定义的先验anchor&#xff0c;也…

直接用Bash发送HTTP请求 —— 筑梦之路

追踪命令执行strace -e tracenetwork,open,close bash -c exec 3<>/dev/tcp/example.org/80关键部分socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) 3 connect(3, {sa_familyAF_INET, sin_porthtons(80), sin_addrinet_addr("93.184.215.14")}, 16) 0检查文件描…

数据结构与算法篇(图)(持续更新迭代)

目录 一、引言 二、基本概念 三、图的定义 四、图的基本概念和术语 1. 有向图 2. 无向图 3. 简单图 4. 多重图 5. 完全图&#xff08;也称简单完全图&#xff09; 6. 子图 7. 连通、连通图和连通分量 8. 强连通图、强连通分量 9. 生成树、生成森林 10. 顶点的度、…

express,MySQL 实现登录接口

使用 Express 和 MySQL 实现一个登录接口涉及几个步骤&#xff0c;包括设置 Express 服务器、连接 MySQL 数据库、创建用户表&#xff08;如果还没有&#xff09;、编写登录接口的逻辑等。以下是一个简单的实现示例&#xff1a; 1. 设置项目 首先&#xff0c;创建一个新的项目…

146. LRU 缓存【 力扣(LeetCode) 】

零、原题链接 146. LRU 缓存 一、题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中&#xff…