图文深入理解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基本知识和排障案例及经验、性能调优等。

相关推荐
zpjing~.~30 分钟前
Mongo 分页判断是否有下一页
数据库
2401_8576009531 分钟前
技术与教育的融合:构建现代成绩管理系统
数据库·oracle
2301_819287121 小时前
ce第六次作业
linux·运维·服务器·网络
秋恬意1 小时前
Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别
java·数据库·mybatis
CIb0la1 小时前
GitLab 停止为中国区用户提供 GitLab.com 账号服务
运维·网络·程序人生
武汉联从信息1 小时前
如何使用linux日志管理工具来管理oracle osb服务器日志文件?
linux·运维·服务器
天天进步20151 小时前
STUN服务器实现NAT穿透
运维·服务器
潇湘秦1 小时前
一文了解Oracle数据库如何连接(1)
数据库·oracle
雅冰石1 小时前
oracle怎样使用logmnr恢复误删除的数据
数据库·oracle
web前端神器1 小时前
mongodb给不同的库设置不同的密码进行连接
数据库·mongodb