首页 > 数据库 >Oracle 深入学习 Part 1: Oracle Architectural Components(Oracle 架构组件)

Oracle 深入学习 Part 1: Oracle Architectural Components(Oracle 架构组件)

时间:2024-11-19 22:43:32浏览次数:3  
标签:IP 数据库 +-------------------+ TCP 进程 Part Architectural Oracle

Oracle 服务器(Oracle Server)

Oracle Server 是一个管理系统,提供一种开放、全面、集成的信息管理方式。它包含了 Oracle 实例(Oracle Instance)Oracle 数据库(Oracle Database)


1. Oracle 实例(Oracle Instance)

  • 定义:Oracle 实例是访问 Oracle 数据库的方式,始终打开一个且仅一个数据库。

  • 组成:由内存结构和后台进程结构组成。

实例的组成:

内存结构(Memory Structures)

  • SGA(System Global Area):一个实例中只有一个 SGA,所有进程共享此内存区域。它是动态的,大小由 SGA_MAX_SIZE 参数决定,包含数据库的数据和控制信息。

    • 共享池(Shared Pool):缓存 SQL 语句和数据字典信息,影响性能,大小由 SHARED_POOL_SIZE 决定。包括:

      • 库缓存(Library Cache):存储已解析的 SQL 语句,避免重复解析。

      • 数据字典缓存(Data Dictionary Cache):存储数据库对象信息(如表、列、索引等)。

    • 数据库缓冲区(Database Buffer Cache):缓存最近使用的数据块,所有的读写操作都经过这个缓存,大小由 DB_BLOCK_SIZE 决定。

    • 重做日志缓冲区(Redo Log Buffer):记录事务更改,用于恢复。

    • 大型池(Large Pool):存储并行查询、RMAN 恢复等操作的内存。

  • PGA(Program Global Area):每个后台进程有一个 PGA,是每个用户进程的私有内存区域,通常在服务器进程启动时分配。

后台进程(Background Processes)

  • 用户进程:在数据库用户请求连接时启动。

  • 服务器进程:连接到 Oracle 实例并启动会话。

  • 后台进程:在 Oracle 实例启动时启动,包括以下关键进程:

    • 强制性后台进程

      • 数据库写进程(DBWn - Database Writer):将数据库缓冲区中的修改写入数据文件。

      • 日志写进程(LGWR - Log Writer):将重做日志缓冲区中的内容写入联机重做日志文件。

      • 检查点进程(CKPT - Checkpoint):记录检查点信息,将检查点号写入数据文件头和控制文件。

      • 系统监控进程(SMON - System Monitor):执行系统恢复任务,如清理未提交的事务。

      • 进程监控进程(PMON - Process Monitor):负责恢复失败的用户进程,并清理锁。

    • 可选后台进程

      • 归档进程(ARCn - Archive Process):将联机重做日志文件复制为归档日志文件(仅在归档模式下启用)。

      • 恢复进程(RECO - Recoverer):负责分布式事务的故障恢复。


2. Oracle 数据库(Oracle Database)

  • 数据文件(Datafiles):保存表中的所有数据,是数据库的核心部分,通常以 .dbf 为后缀。

  • 控制文件(Control files):提供控制信息,常见后缀为 .ctl 或无后缀。

  • 重做日志文件(Redo Log files):记录数据库事务的变化,用于数据库恢复,通常以 .log 为后缀。

  • 参数文件(Parameter file):定义 Oracle 中基本参数和初始参数的值,通常以 .ora 为后缀。

  • 归档日志(Archived Log files):联机重做日志文件的备份副本,用于备份和恢复操作,常见后缀为 .arc,但也可能是 .log,由归档日志的路径和命名格式决定。

  • 密码文件(Password file):存储客户端连接数据库时的口令,通常为 orapw<实例名>,无固定后缀。

这些文件的表现形式都是存储在磁盘中的物理文件。


补充内容

逻辑结构

  • 规定数据库物理空间的使用方式,包含表空间、段、扩展区和块的层次结构。

层次结构

  • 表空间(Tablespace)

    • 数据文件(Datafile)

      • 段(Segment)

        • 扩展区(Extent)

          • 块(Block)

链接和会话(Connection & Session)

  • 链接(Connect):客户端和后台服务器进程之间的 TCP 链接。

    • User process ↔ Server process

  • 会话(Session):在链接建立后开始,链接断开后结束。

IPC & TCP/IP

IPC(Inter-Process Communication,进程间通信)

  • IPC 是计算机系统中多个进程之间交换数据的机制,包括共享内存,队列,信号量等几种形式。Oracle 数据库中,IPC常用于同一台服务器上,客户端与数据库实例之间的通信。

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)

  • TCP/IP 是网络通信的核心协议,支持客户端和数据库之间的远程通信,也是 Oracle Net 服务的基础协议。

TCP/IP 与 IPC 的比较

特性IPCTCP/IP
适用场景本地连接远程连接
性能高性能,无网络延迟有网络延迟,性能较低
配置难度简单,仅需配置本地监听需要配置网络服务名和监听器
通信范围同一主机跨主机和跨网络
可靠性依赖操作系统机制TCP 提供可靠传输,数据校验和确认

在 Oracle 中选择 IPC 或 TCP/IP

  • IPC 场景:客户端和数据库在同一服务器上,性能要求较高。

  • TCP/IP 场景:客户端和数据库位于不同主机上,系统需要支持分布式部署。

示意图

IPC 通信

+-------------------+         +-------------------+
|  用户进程         |         |  服务器进程       |
|  (Client Process) | <-----> |  (Server Process) |
+-------------------+         +-------------------+
       |                             |
       +--------共享内存(SGA)-------+

TCP/IP 通信

+-------------------+      网络(TCP/IP)     +-------------------+
|  客户端           | <--------------------> |  监听器            |
|  (Client Process) |                       |  (Listener)        |
+-------------------+                       +-------------------+
                                                   |
                                           +-------------------+
                                           |  数据库实例        |
                                           |  (DB Instance)    |
                                           +-------------------+

处理 SQL 语句过程

  • 连接到实例时

    • 用户进程

    • 服务器进程

  • SQL 语句的类型决定使用的 Oracle 服务器组件

    • 查询语句返回行

    • DML 语句记录更改

    • 提交确保事务恢复

  • 一些 Oracle 服务器组件不参与 SQL 语句的处理。

标签:IP,数据库,+-------------------+,TCP,进程,Part,Architectural,Oracle
From: https://blog.csdn.net/2302_80755459/article/details/143825902

相关文章

  • oracle dataguard学习和各版本DG新特性介绍
    oracledataguard学习和各版本DG新特性介绍DataGuard概述:OracleDataGuard是Oracle自带的数据同步功能,可以提供Oracle数据库的冗灾、数据保护、故障恢复等,实现数据库快速切换与灾难性恢复。DataGuard数据同步技术有以下优势:1)Oracle数据库自身内置的功能,与每个Oracle新......
  • 用Oracle的经验优化达梦数据库?我被经验误导了!
    说明:本文只是记录近期学习达梦数据库的一些内容,并没有说达梦数据库有什么坑,希望有些所谓的"友商"不要恶意抹黑,实际上在我接触过的几家国产数据库中,个人认为达梦数据库无论是产品成熟度,还是技术社区、兼容性、运维习惯等都是名列前茅的,至少对曾经的OracleDBA来讲,是比较友好......
  • Oracle Linux 9.5 正式版发布 - Oracle 提供支持 RHEL 兼容发行版
    OracleLinux9.5正式版发布-Oracle提供支持RHEL兼容发行版OracleLinuxwithUnbreakableEnterpriseKernel(UEK)&RedHatcompatiblekernel(RHCK)请访问原文链接:https://sysin.org/blog/oracle-linux-9/查看最新版。原创作品,转载请保留出处。作者主页:sysin.org......
  • 经典C语言代码——part 2
    【程序4】题目:输入某年某月某日,判断这一天是这一年的第几天?1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。2.程序源代码:main(){intday,month,year,sum,leap;printf("\nplease......
  • 如何解决 No module named 'cx_Oracle'
    错误Nomodulenamed'cx_Oracle'通常是因为在你的Python环境中没有安装cx_Oracle模块。以下是解决问题的方法:1.确认环境确保你在正确的Python环境下运行代码。如果使用虚拟环境,请激活它:sourcevenv/bin/activate#Linux/macOSvenv\Scripts\activate#Wind......
  • Oracle EBS 处理物料搬运单使用 INV_PICK_WAVE_PICK_CONFIRM_PUB.Pick_Confirm API
    OracleEBS处理物料搬运单使用INV_PICK_WAVE_PICK_CONFIRM_PUB.Pick_ConfirmAPIGoal使用APIINV_PICK_WAVE_PICK_CONFIRM_PUB.Pick_Confirm来处理搬运单SampleCode:Pleasereviewthebelowinstructionsandsamplecodedocument.TheAPIcalllookssomethingl......
  • Oracle DBA必须会的50道面试题
    基础知识Oracle数据库的架构由哪些主要组件组成?请简要描述它们的功能。什么是表空间(Tablespace)?如何创建和管理表空间?Oracle中的实例(Instance)和数据库(Database)有什么区别?解释Oracle的多版本并发控制(MVCC)是什么,它是如何工作的?Oracle数据库中有哪些常见的数据类......
  • Oracle AWR 报告指标全解析:深入理解数据库性能优化的关键
    一、引言在Oracle数据库管理与性能优化领域,AWR(AutomaticWorkloadRepository)报告扮演着极为重要的角色。它犹如一位精准的诊断专家,能够对数据库的运行状况进行全面、细致的剖析,为数据库管理员(DBA)提供丰富且关键的信息,助力其深入洞察数据库的性能表现,精准定位潜在问题,并......
  • windows下oracle安装
    windows下oracle安装本次在windows2019操作系统下安装oralce11g服务端和客户端 准备工作:1,windows2019虚拟服务器一台。2,oralce11gserver安装包下载。3,win32_11gR2_client 客户端安装包下载,以及常用测试用应用软件PLSQLDeveloper。 安装包解压,将两个安装包解压到......
  • Oracle数据库安全扫描1158/3938端口出现弱SSL加密算法解决方法之一
    问题复述某国企项目现场反应安全扫描出部署某历史项目的Windows服务器上的1158及3938两个端口出现了弱SSL加密算法漏洞,要求整改。经过核实,该Windows服务器上部署了tomcat与Oracle11g数据库,其中1158和3938两个端口均为Oracle数据库所使用。处理思路确认1158和3938作用:如果没......