凌峰创科服务平台

数据库客户端 oracle数据库服务器

客户端 vs. 服务器

您可以把它想象成一个餐厅

数据库客户端 oracle数据库服务器-图1
(图片来源网络,侵删)
  • 数据库服务器:就像餐厅的厨房,它负责真正的“烹饪”——即数据的存储、管理、处理和计算,它拥有所有的食材(数据)、厨具(硬件)和厨师(数据库引擎),服务器是后台的核心,负责执行所有繁重的工作。
  • 数据库客户端:就像餐厅的顾客和点餐员,它本身不存储或处理数据,而是负责向厨房(服务器)发送“点单”请求(SQL语句),并将厨房做好的“菜”(查询结果)呈现给顾客(用户或应用程序)。

它们通过网络进行通信,遵循特定的协议(在Oracle中主要是 TCP/IP 协议)。


Oracle 数据库服务器

这是整个系统的核心,是一个强大的、多用户、事务型的关系型数据库管理系统。

核心职责

  • 数据存储:在物理磁盘上以数据文件、控制文件、重做日志文件等形式持久化存储数据。
  • 数据管理:管理数据的增、删、改、查操作。
  • 并发控制:确保多个用户同时访问数据时,数据的一致性和完整性。
  • 安全性:通过用户、角色、权限等机制控制谁能访问什么数据。
  • 事务管理:保证事务的原子性、一致性、隔离性和持久性。
  • 性能优化:通过执行计划、索引、缓存等机制优化查询速度。

关键组件

一个Oracle服务器实例主要由两部分构成:

  • Oracle 实例:这是Oracle数据库在内存中的映像,是真正处理数据的部分,它包含:
    • 系统全局区:一个共享的内存区域,包含数据缓存、缓存、SQL语句缓存等,用于提高性能。
    • 后台进程:如数据库写入进程、日志写入进程、监控进程等,负责各种后台任务。
  • Oracle 数据库:这是物理存储部分,包括:
    • 数据文件:存储实际数据的文件。
    • 控制文件:记录数据库的物理结构,是数据库启动和恢复的关键。
    • 重做日志文件:记录所有对数据的更改,用于故障恢复。
    • 参数文件:配置实例的启动参数。

如何连接到服务器?

客户端要连接到服务器,需要知道以下关键信息,这些信息通常在 tnsnames.ora 文件中配置:

数据库客户端 oracle数据库服务器-图2
(图片来源网络,侵删)
  • 协议地址:通常是服务器的IP地址和监听端口(默认为 1521)。
  • 服务名:一个逻辑名称,标识了要连接的数据库。
  • 实例名:服务器上正在运行的数据库实例的名称。

示例 tnsnames.ora 配置:

MY_ORACLE_DB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCLPDB1)  // 这是服务名
    )
  )

Oracle 数据库客户端

客户端是用户或应用程序与数据库服务器交互的接口,它的作用是“发起请求”和“展示结果”。

核心职责

  • 提供用户界面:提供一个图形化或命令行的环境,让用户可以输入命令。
  • 建立网络连接:根据配置(tnsnames.ora 或 Easy Connect)找到数据库服务器。
  • 发送SQL语句:将用户输入的SQL查询、DML语句等打包发送给服务器。
  • 接收并展示结果:接收服务器返回的结果集、消息或错误,并将其格式化显示给用户。

常见的客户端工具

a) GUI 图形化界面客户端 (最常用)

  • SQL Developer (强烈推荐)

    数据库客户端 oracle数据库服务器-图3
    (图片来源网络,侵删)
    • 开发商:Oracle官方。
    • 特点:免费、功能强大、跨平台(支持Windows, macOS, Linux),集成了SQL开发、PL/SQL调试、数据建模、版本控制等多种功能,是Oracle DBA和开发者的首选工具。
  • PL/SQL Developer (经典老牌)

    • 开发商:Allround Automations。
    • 特点:功能非常全面,尤其在PL/SQL调试和代码管理方面非常强大,曾是Windows平台上的事实标准,但现在需要付费。
  • Toad for Oracle

    • 开发商:Quest Software (现为Dell)。
    • 特点:功能极其丰富,集成了DBA管理、性能分析、代码开发等多种模块,是很多大型企业和DBA的常用工具,需要付费。
  • DBeaver (通用型)

    • 开发商:开源社区。
    • 特点:免费、开源、跨平台,支持几乎所有主流数据库(MySQL, PostgreSQL, SQL Server, Oracle等),通过插件支持Oracle,界面统一,适合需要同时管理多种数据库的用户。

b) 命令行界面客户端

  • *SQLPlus (自带)**:

    • 开发商:Oracle官方。
    • 特点:Oracle数据库自带的、最基础的命令行工具,几乎在任何安装了Oracle客户端或服务器的环境里都有,功能相对简单,但稳定可靠,是脚本自动化和紧急操作的利器。
  • SQLcl (SQL Command Line)

    • 开发商:Oracle官方。
    • 特点:可以看作是SQL*Plus的现代替代品,它基于Java,功能更强大,支持现代SQL语法、对象自动补全、脚本编辑等,体验更好,是Oracle官方主推的下一代命令行工具。

工作流程示例

一个典型的查询操作流程如下:

  1. 启动客户端:用户在自己的电脑上打开 SQL Developer。
  2. 配置连接:在SQL Developer中新建一个连接,输入用户名(如 scott)、密码,并选择或输入服务名(如 ORCLPDB1)。
  3. 发起请求:用户在SQL Developer的SQL Worksheet窗口中输入 SELECT * FROM emp; 并点击“执行”。
  4. 客户端处理
    • SQL Developer(客户端)读取配置信息,找到tnsnames.ora中对应ORCLPDB1的条目。
    • 它解析出服务器的IP地址(168.1.100)和端口(1521)。
    • 客户端通过TCP/IP协议向该IP和端口发起连接请求,并附上服务名ORCLPDB1
  5. 服务器处理
    • 数据库服务器上的监听器 接收到这个请求。
    • 监听器检查服务名ORCLPDB1是否存在,如果存在,就将连接请求转交给对应的数据库实例。
    • 数据库实例验证用户名和密码,如果成功,则授权该会话。
    • 实例接收到SQL语句 SELECT * FROM emp;,解析执行计划,从数据文件中读取数据,放入SGA的数据缓存中,然后将结果返回给客户端。
  6. 接收结果
    • 客户端(SQL Developer)接收到返回的结果集。
    • SQL Developer将结果集格式化成一个漂亮的表格,展示在用户界面上。

客户端的安装类型

为了方便部署,Oracle提供了几种不同的客户端安装包:

  • Oracle Instant Client (即时客户端)

    • 特点:最小化安装,只包含连接到数据库服务器所需的网络库和核心库
    • 用途:非常适合应用程序服务器开发人员的电脑,它不需要安装Oracle数据库,不占用大量空间,但不能直接用来管理数据库(比如不能创建表、用户等),如果要用SQL Developer等工具管理数据库,通常需要更完整的客户端。
  • Oracle Client (完整客户端)

    • 特点:包含了Instant Client的所有功能,以及一些管理工具(如SQL*Plus, Net Configuration Assistant等)。
    • 用途:适合需要执行部分DBA任务或使用命令行工具进行数据迁移的开发人员。
  • Oracle Database (服务器端)

    • 特点:最完整的安装,包含了服务器和客户端工具。
    • 用途:在需要安装数据库服务器的机器上,通常会同时安装一套客户端工具,方便本地管理和维护。

总结对比

特性 Oracle 数据库服务器 Oracle 数据库客户端
角色 数据的“大脑”和“仓库” 用户的“眼睛”和“嘴巴”
主要功能 存储、处理、管理数据 发送请求、接收并展示结果
物理形态
分享:
扫描分享到社交APP
上一篇
下一篇