【赵渝强老师】Oracle客户端与服务器端连接建立的过程

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: Oracle数据库采用客户端-服务器架构,客户端通过其网络环境与服务器通信,实现数据库访问。监听程序负责建立连接,通过命令lsnrctl可启动、停止及查看监听状态。本文介绍了监听器的作用及相关基础管理操作。

b381.png

Oracle数据库采用的客户端-服务器的Client-Server的架构。Oracle的客户端需要通过使用Oracle数据库提供的网络环境来建立与服务器端通信,从而实现正常的数据库访问。Oracle的网络环境如下图所示。

image.png


监听程序在Oracle网络服务的作用是非常重要的。监听程序会负责为客户端建立与数据库服务器之间的连接。Oracle提供了命令lsnrctl用于启动和停止监听程序。下图展示了Oracle客户端是如何通过监听器程序与数据库服务器端建立连接的。

image.png


从图中可以看出,当客户端与数据库服务器端建立连接后,客户端执行的所有SQL语句将直接由Oracle数据库的服务器进程执行。因此,Oracle的监听器只在建立连接时会用到。视频讲解如下:


对于数据库管理员DBA来说,启动和关闭Oracle监听器是很基础的任务。但是对于Linux系统管理员或者程序员有时也需要在开发数据库中做一些基本的数据库管理操作,因此了解一些基本的管理操作对他们来说很重要。Oracle数据库提供了命令lsnrctl来管理监听器。该命令可以检查监听器的状态、启动监听器和停止监听器。这里通过具体的步骤来演示如何使用命令lsnrctl。


(1)查看命令lsnrctl的帮助信息。

lsnrctl help

# 输出的信息如下:

LSNRCTL for Linux: Version 21.0.0.0.0 - Production on 20-MAR-2022 16:29:12
Copyright (c) 1991, 2021, Oracle.  All rights reserved.
The following operations are available
An asterisk (*) denotes a modifier or extended command:
start     stop    status    services        
servacls    version   reload    save_config     
trace     spawn   quit    exit            
set*      show*


(2)查看监听的状态。

lsnrctl status

# 输出的信息如下:

LSNRCTL for Linux: Version 21.0.0.0.0 - Production on 20-MAR-2022 16:30:29
Copyright (c) 1991, 2021, Oracle.  All rights reserved.
Connecting to
 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oraclevm)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 21.0.0.0.0 - Production
Start Date                06-DEC-2021 10:19:41
Uptime                    104 days 6 hr. 10 min. 48 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/homes/OraDB21Home1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/oraclevm/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oraclevm)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=oraclevm)(PORT=5500))
               (Security=(my_wallet_directory=/u01/app/oracle/admin/orcl/xdb_wallet))
               (Presentation=HTTP)(Session=RAW))
Services Summary...
Service "Oracle8" has 1 instance(s).
  Instance "ORCL", status UNKNOWN, has 1 handler(s) for this service...
Service "c8209f27c6b16005e053362ee80ae60e" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

# 在输出的监听状态信息中,包含了以下的内容:
# (*)监听器的启动时间
# (*)监听器的运行时间
# (*)监听器参数文件listener.ora的位置
# (*)监听器日志文件的位置



相关文章
|
5月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
464 93
|
4月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
271 0
|
7月前
|
安全
基于Reactor模式的高性能服务器之Acceptor组件(处理连接)
本节介绍了对底层 Socket 进行封装的设计与实现,通过 `Socket` 类隐藏系统调用细节,提供简洁、安全、可读性强的接口。重点包括 `Socket` 类的核心作用(管理 `sockfd_`)、成员函数的功能(如绑定地址、监听、接受连接等),以及 `Acceptor` 组件的职责:监听连接、接收新客户端连接并分发给上层处理。同时说明了 `Acceptor` 与 `EventLoop` 和 `TcpServer` 的协作关系,并展示了其成员变量和关键函数的工作机制。
160 2
|
9月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】在PostgreSQL中访问Oracle
本文介绍了如何在PostgreSQL中使用oracle_fdw扩展访问Oracle数据库数据。首先需从Oracle官网下载三个Instance Client安装包并解压,设置Oracle环境变量。接着从GitHub下载oracle_fdw扩展,配置pg_config环境变量后编译安装。之后启动PostgreSQL服务器,在数据库中创建oracle_fdw扩展及外部数据库服务,建立用户映射。最后通过创建外部表实现对Oracle数据的访问。文末附有具体操作步骤与示例代码。
506 6
【赵渝强老师】在PostgreSQL中访问Oracle
|
7月前
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle RMAN的目录数据库
Oracle RMAN默认将备份元信息存储在控制文件中,但控制文件损坏或丢失会导致恢复失败,且备份增多会使控制文件无限增长。为解决这些问题,Oracle引入了RMAN目录数据库(Catalog Database),专门用于存储RMAN备份的元信息。使用目录数据库可提升备份管理效率,支持多数据库共享、长期备份历史记录存储,并可保存RMAN脚本。本文详细介绍了如何创建目录数据库、注册目标数据库及其操作步骤。
192 0
|
11月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的闪回版本查询
本文介绍了Oracle数据库的闪回版本查询(Flashback Version Query)功能,通过示例详细讲解了其使用方法。闪回版本查询可获取指定时间区间内行的不同版本,利用`versions between`子句实现。文中包含视频讲解,并通过创建测试表、插入数据及执行查询等步骤,演示如何获取历史版本信息和伪列详情,帮助用户深入了解该功能的实际应用。
241 13
|
10月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的闪回数据库
Oracle闪回数据库功能类似于“倒带按钮”,可快速将数据库恢复至 earlier 状态,无需还原备份。本文介绍了闪回数据库的使用方法及实战案例:包括设置归档模式、开启闪回功能、记录SCN号、执行误操作后的恢复步骤等。通过具体 SQL 操作演示了如何利用闪回数据库恢复被误删的用户数据。注意,使用此功能前需确保数据库为归档模式。
347 9
|
11月前
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle数据库的闪回表
本文介绍了Oracle数据库中的闪回表(Flashback Table)功能,它能够将表的数据快速恢复到特定时间点或系统改变号(SCN),无需备份。文章通过实战示例详细演示了如何使用闪回表恢复数据,包括授权、创建测试表、记录时间与SCN号、删除数据、启用行移动功能、执行闪回操作以及验证恢复结果等步骤。同时,还展示了如何通过触发器禁止插入操作,并在闪回过程中处理触发器的启用问题。文末附有视频讲解,帮助读者更好地理解闪回表的使用方法。
450 10
|
10月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的闪回数据归档
本文介绍了Oracle闪回数据归档(Flashback Data Archive)的功能与实现方法。闪回数据归档可将表中的历史数据进行归档,支持全面的历史数据查询,引入了“Oracle Total Recall”概念。文中通过具体实战步骤演示了如何创建和启用闪回数据归档:包括创建表空间、数据归档,设置默认归档,授予用户权限,开启表的归档功能,并展示了误操作后如何通过归档恢复数据。最后通过执行计划验证了数据来源于归档。
281 4
|
10月前
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的闪回事务查询
Oracle数据库的闪回事务查询(Flashback Transaction Query)是闪回版本查询的扩充,可用于审计或撤销已提交的事务。通过`flashback_transaction_query`视图,可生成还原特定事务的SQL语句。本文介绍了其基本概念,并通过实战演示如何使用该功能:从授权、开启UNDO数据增强,到创建测试表和事务,最后利用闪回查询撤销已提交的事务,验证数据恢复效果。附带视频讲解,帮助深入理解。
281 3

推荐镜像

更多