返回顶部
首页 > 资讯 > 数据库 >怎么理解Oracle架构、原理、进程
  • 563
分享到

怎么理解Oracle架构、原理、进程

2024-04-02 19:04:59 563人浏览 八月长安
摘要

这篇文章主要讲解了“怎么理解oracle架构、原理、进程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Oracle架构、原理、进程”吧!对于一个数据

这篇文章主要讲解了“怎么理解oracle架构、原理、进程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Oracle架构、原理、进程”吧!

对于一个数据库系统来说,假设这个系统没有运行,我们所能看到的和这个数据库相关的无非就是几个基于操作系统的物理文件,这是从静态的角度来看,如果从动态的角度来看呢,也就是说这个数据库系统运行起来了,能够对外提供服务了,那就意外着数据库系统启动了自己的一个实例,综合以上2个角度,Oracle如何定义上述描述呢?

我们来引入第一个概念,Oracle服务器,所谓Oracle服务器是一个数据库管理系统,它包括一个Oracle实例(动态)和一个Oracle数据库(静态)。Oracle实例是一个运行的概念(如操作系统的进程),提供了一种访问,Oracle数据库的方式,始终打开一个,并且只能打开一个Oracle数据库,Oracle实例有SGA和一些后台服务进程组成,在后台服务进程当中,DBWn PMON CKPT LGWR SMON是必备的后台进程,而ad queue、rac、shared server、ad replication则是可选的,之所以可选,要们是因为离开它Oracle也能正常运行,要么是一些高级的功能才可以用得到。

Oracle数据库是一个被统一处理的的数据的集合,从物理角度来看包括三类文件数据文件,控制文件,重做日志文件。从逻辑角度来看,Oracle数据库至少包含一个表空间,表空间至少包含一个段,段由区做成,区有块组成。需要注意的是表空间可以包含若干个数据文件,段可以跨同一个表空间的多个数据文件,区只能在同一个数据文件内。

Oracle还设计了其他的关键文件用来为整个系统服务,如配置文件、密码文件、归档日志文件,还有还有用户进程和服务进程,现在可以简单理解下执行sql语句就要用到这2个进程。

SGA

SHARE POOL

(共享池)

用如下命令可以调整

ALTER SYSTEM SET

SHARED_POOL_SIZE=64M

LIBRARY CACHE

(库高速缓存

1存储最近使用的SQL和PL/SQL语句信息

2包括SHARED SQL和SHARED PL/SQL

3用LRU算法管理

4大小由SHARE POOL大小决定

DATA DICTIONARY CACHE

(数据字典高速缓存)

1数据库中最近使用的定义的集合

2包含数据库文件,表,索引,列,用户,权限和其他的数据库对象相关信息

3在语法分析阶段,服务器进程会在数据字典中查找用于对象解析和验证访问的信息

4将数据字典信息高速缓存到内存中,可缩短查询和DML的响应时间

5大小由共享池的大小决定

DATABASE BUFFER CACHE

(数据缓冲区高速缓存)

1存储已从数据文件检索到的数据的复本

2大幅提高读取和更新数据的性能

3使用LRU算法管理

4主块的大小由DB_BLOCK_SIZE确定

REDO LOG BUFFER

(重做日志缓冲区)

1记录对数据库数据块作的全部更改

2主要用来恢复

3其中记录的更改被称作重做条目

4重做条目包含用于重新构建或重做更改的信息

5大小由LOG_BUFFER定义

LARGE POOL

(大型池)

1 SGA可选的内存区

2分担了共享池的一部分工作

3用于共享服务器的UGA

4用于I/O服务器进程

5备份和恢复操作或RMAN

6并行执行消息缓冲区(前提PARALLEL_POOL_SIZE=TRUE)

7不使用LRU列表

8大小由LARGE_POOL_SIZE确定

JAVA POOL

(JAVA池)

1存储JAVA命令服务分析要求

2安装和使用JAVA时必须的

3大小有JAVA_POOL_SIZE确定

PGA

PRIVATE SQL AREA

(专用SQL区)

 

专用SQL 区的位置取决于为会话建立的连接类型。在专用服务器环境中,专用SQL 区位于各自服务器进程的PGA中。在共享服务器环境中,专用SQL 区位于SGA 中。

管理专用SQL 区是用户进程的职责。用户进程可以分配的专用SQL 区的数目始终由

初始化参数OPEN_CURSORS 来限制。该参数的缺省值是50。

PERSISTEN AREA

(永久区)

包含绑定信息,并且只在关闭游标时释放

RUNTIME AREA

(运行时区)

在执行请求时的第一步创建。对于INSERT、UPDATE 和DELETE命令,该区在执行语句后释放,对于查询操作,该区只在提取所有行或取消查询后释放。

SESSION MEMORY

(会话内存)

包含为保留会话变量以及与该会话相关的其它信息而分配的内存。对于共享服务器环境,该会话是共享的而不是专用的。

SQL WORK AREAS

(SQL工作区)

用于大量占用内存的操作,如排序、散列联接、位图合并和位图创建。

工作区的大小可进行控制和调整

下表是后台进程总结

DBWn

DBWn 延迟写入数据文件,直到发生下列事件之一:

• 增量或正常检查点

• 灰数据缓冲区的数量达到阈值

• 进程扫描指定数量的块而无法找到任何空闲缓冲区时

• 出现超时

• 实时应用集群(Real Application Clusters, RAC) 环境中出现ping 请求

• 使一般表空间或临时表空间处于脱机状态

• 使表空间处于只读模式

• 删除或截断表

• 执行ALTER TABLESPACE 表空间名BEGIN BACKUP 操作

LGWR

LGWR 在下列情况下执行从重做日志缓冲区到重做日志文件的连续写入:

• 当提交事务

• 当重做日志缓冲区的三分之一填满时

• 当重做日志缓冲区中记录了超过1 MB 的更改时

• 在DBWn 将数据库缓冲区高速缓存中修改的块写入数据文件以前

• 每隔三秒

SMON

例程恢复

– 前滚重做日志中的更改

– 打开数据库供用户访问

– 回退未提交的事务处理

• 合并空闲空间

• 回收临时段

PMON

进程失败后,后台进程PMON 通过下面的方法进行清理:

• 回退用户的当前事务处理

• 释放当前保留的所有表或行锁

• 释放用户当前保留的其它资源

• 重新启动已失效的调度程序

CKPT

• 在检查点发信号给DBWn

• 使用检查点信息更新数据文件的标头

• 使用检查点信息更新控制

启动检查点的原因如下:

• 确保定期向磁盘写入内存中发生修改的数据块,以便在系统或数据库失败时不会丢失数据

• 缩短例程恢复所需的时间。只需处理最后一个检查点后面的重做日志条目以启动恢复操作

• 确保提交的所有数据在关闭期间均已写入数据文件

由CKPT 写入的检查点信息包括检查点位置、系统更改号、重做日志中恢复操作的起始位置以及有关日志的信息等等。

注:CKPT 并不将数据块写入磁盘,或将重做块写入联机重做日志。

ARCn

• 可选的后台进程

• 设置ARCHiveLOG 模式时自动归档联机重做日志

• 保留数据库的全部更改记录

最后,举一个用户提交SQL语句的的例子来结束本文,如果用户想提交SQL语句,那么首先你必须要连接到Oracle实例,连接到Oracle实例有三种途径:如果用户登陆到运行Oracle实例的操作系统上,则通过进程间通信进行访问2C/S结构访问3三层结构。发起连接的应用程序或工具通常称为用户进程,连接发起后,Oracle服务器就会创建一个进程来接受连接,这个进程就成为服务进程,服务器进程代表用户进程与Oracle实例进行通信,在专用服务器连接模式下,用户进程和服务进程是1对1的关系,在共享服务器模式下,多个用户进程可能共享一个服务进程。当服务器进程开始和Oracle实例进行通信时,一个会话就被创建了。显然处理一个查询要经过语法分析、绑定、执行、提取等阶段。

感谢各位的阅读,以上就是“怎么理解Oracle架构、原理、进程”的内容了,经过本文的学习后,相信大家对怎么理解Oracle架构、原理、进程这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么理解Oracle架构、原理、进程

本文链接: https://lsjlt.com/news/64032.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么理解Oracle架构、原理、进程
    这篇文章主要讲解了“怎么理解Oracle架构、原理、进程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Oracle架构、原理、进程”吧!对于一个数据...
    99+
    2024-04-02
  • 解析Tomcat架构原理到架构设计
    目录一、学习目的1.1、掌握 Tomcat 架构设计与原理提高内功1.2、宏观理解一个请求如何与 Spring 联系起来1.3、提升自己的系统设计能力二、整体架构设计2.1、连接器2...
    99+
    2024-04-02
  • 详解React Fiber架构原理
    目录一、概述二、Fiber架构2.1 执行单元2.2 数据结构2.3 Fiber链表结构2.4 Fiber节点2.5 API2.5.1 requestAnimationFrame2....
    99+
    2022-11-13
    React Fiber原理 React Fiber架构
  • 怎么理解Kubernetes架构
    本篇内容主要讲解“怎么理解Kubernetes架构”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解Kubernetes架构”吧!Kubernetes作为一...
    99+
    2024-04-02
  • MySQL架构怎么理解
    本篇内容主要讲解“MySQL架构怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL架构怎么理解”吧!MySQL物理架构配置文件auto.cnf&n...
    99+
    2023-03-14
    mysql
  • 深入解析kafka架构原理
     kafka 架构原理 大数据时代来临,如果你还不知道Kafka那就真的out了!据统计,有三分之一的世界财富500强企业正在使用Kafka,包括所有TOP10旅游公司,7家TOP1...
    99+
    2024-04-02
  • Kappa架构原理是什么
    本篇内容介绍了“Kappa架构原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Lambda架构回顾Lambda架构的核心思想是把大数...
    99+
    2023-06-05
  • RocketMQ Namesrv架构工作原理详解
    目录1 概念2 核心数据结构和API2.1 Namesrv的核心数据结构2.2 Namesrv的API3 Namesrv架构3.1组件3.2 Namesrv四个功能模块1 概念 Na...
    99+
    2022-11-13
    RocketMQ Namesrv架构 Namesrv架构
  • mysql架构的原理是什么
    本篇内容主要讲解“mysql架构的原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql架构的原理是什么”吧!Mysql 架构原理1、Mysql体系...
    99+
    2024-04-02
  • Kafka的架构原理是什么
    Kafka的架构原理主要是基于分布式发布-订阅消息系统的设计理念。其架构包括以下几个核心组件: 生产者(Producer):负责...
    99+
    2024-03-14
    Kafka
  • oracle rac的lmd进程怎么理解
    这篇文章主要介绍“oracle rac的lmd进程怎么理解”,在日常操作中,相信很多人在oracle rac的lmd进程怎么理解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • LINQ查询架构怎么理解
    本篇内容主要讲解“LINQ查询架构怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“LINQ查询架构怎么理解”吧!LINQ(发音:Link)是Language Integrated Quer...
    99+
    2023-06-17
  • LAMP架构实现原理是什么
    LAMP架构是一种常用的Web应用程序开发和部署架构,它由以下四个核心组件组成:1. Linux操作系统:作为底层操作系统,提供了稳...
    99+
    2023-09-21
    LAMP
  • Zookeeper原理架构与搭建
    学一个东西,不搞明白他是什么东西,哪还有心情学啊!! 首先,Zookeeper是Apache的一个java项目,属于Hadoop系统,扮演管理员的角色。 然后看到官网那些专有名词,实在理解不了。在Zookeeper的官网...
    99+
    2023-01-31
    架构 原理 Zookeeper
  • 怎么理解vue2.0响应式架构
    本篇内容主要讲解“怎么理解vue2.0响应式架构”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解vue2.0响应式架构”吧!讲data 下面所有属性变为o...
    99+
    2024-04-02
  • Mongodb分片原理详解及架构部署
    分片技术解决的需求痛点(1)高数据量和吞吐量的数据库应用会对单机的性能造成较大压力;(2)大的查询量会将单机的CPU耗尽;(3)大的数据量对单机的存储压力较大,最终会耗尽系统的内存而将压力转移到键盘IO上何...
    99+
    2024-04-02
  • java同步器AQS架构AbstractQueuedSynchronizer原理解析
    目录引导语1、整体架构1.1、类注释1.2、类定义1.3、基本属性1.3.1、简单属性1.3.2 、同步队列属性1.3.3、条件队列的属性1.3.4、Node1.3.5、共享锁和排它...
    99+
    2024-04-02
  • 微服务架构设计RocketMQ进阶事务消息原理详解
    目录前言RocketMQ事务流程概要RocketMQ事务流程关键实现基础配置引入组件添加配置发送半消息执行本地事务与回查消费消息测试总结前言 分布式消息选型的时候是否支持事务消息是一...
    99+
    2024-04-02
  • 怎么理解Oracle体系结构
    本篇内容介绍了“怎么理解Oracle体系结构”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. ...
    99+
    2024-04-02
  • Ansible架构及工作原理是什么
    Ansible架构及工作原理是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Ansible 是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用 SSH ...
    99+
    2023-06-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作