C/C++教程

Oracle体系结构总结

本文主要是介绍Oracle体系结构总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

     




01

Oracle Database

图片❤❤

Oracle DataBase由两个部分组成:

实例:实例是数据库启动时初始化的一组进程和内存结构

数据库:数据库则指的是用户存储数据的一些物理文件

实例只是暂时的,它是一组逻辑划分的内存结构和进程结构,它会随着数据库的关闭而消失。
数据库是真实存在的物理文件(控制文件,数据文件,日志文件等等)。
数据库和实例通常是一对一的,也可以是一对多如Oracle RAC。

❤❤

02

Oracle 工 作 原 理




  • 服务器启动Oracle实例

  • 应用程序在客户端的用户进程中运行,启用Oracle网络服务驱动器与服务器建立连接;

  • 服务器运行Oracle网络服务驱动器,建立专用的服务器进程执行用户进程;

  • 客户端提交事务;

  • 服务器进程获取sql语句并检查共享池中是否有相似的sql语句,如果有,服务器进程再检查用户的访问权限;

    否则分配新的sql共享区分析并执行sql语句;

  • 服务器从实际的数据文件或SGA中取得所需数据;

  • 服务器进程在SGA中更新数据,进程DBWN在特定条件下将更新过的数据块写回磁盘,进程LGWR在重做日志文件中记录事务;

  • 如果事务成功,服务器进程发送消息到应用程序中。




03

Oracle 体 系 结 构



图片

●内存结构●

  • 系统全局区(SGA)

数据库信息存储于系统全局区,由多个数据库进程共享,当数据库实例启动时SGA的内存自动分配,SGA是数据库中占用服务器内存最大的一个区域,也是影响数据库性能的一个重要指标。主要内存区域有共享池(Shared Pool)、数据库缓存区(Database Buffer Cache)、日志缓冲区(Redo Log Buffer)等。

  • 程序全局区(PGA)

PGA包含单个服务器进程或者单个后台进程所需的数据和控制信息。PGA是在用户进程连接到数据库并创建一个会话时自动分配。该区域内保留每个与oracle数据库连接的用户进程所需的内存,当一个用户会话结束,PAG就会释放。

  • 用户全局区(UGA)

为用户进程存储会话状态。UGA可以作为SGA或者PGA的一部分,如果通过一个共享服务器连接,UGA包含在SAG中;如果通过一个专有服务器连接,UGA就包含在专有服务器的PGA中。

★ 点击此处了解更多内存结构信息 ★


图片


●进程结构●

  • 用户进程

用户进程是一个与Oracle服务器进行交互的程序。一般的客户端软件,像Oracle的sqlplus,sql developer,或者是一些驱动程序等等向数据库发送请求时即创建了用户进程。

  • 服务器进程

当监听程序监听到客户端来了一个请求,在创建会话时便会为其分配一个对应的服务器进程。服务器进程的主要作用就是处理连接到当前实例的用户进程的请求,对客户端发来的sql进行执行并返回执行结果。

  • 后台进程

后台进程是Oracle数据库为了保持最佳系统性能和协调多个用户请求而设置的一系列后台进程。主要有进程监控(PMON)、系统监控(SMON)、数据写入(DBWR)日志写入(LGWR)、检查点进程(CKPT)等。

★ 点击此处了解更多进程结构信息 ★

图片



●物理结构●

物理结构就是oracle数据库创建后使用的操作系统物理文件,是一些能看得见,实际存在的东西,可以在Oracle目录下查看。主要包括数据文件(Data Files)、控制文件(Control files)、重做日志文件(Redo Log files)、参数文件(Parameter file)等。

★ 点击此处了解更多物理结构信息 ★

图片



●逻辑结构●

在oracle数据库中,对数据库操作会涉及逻辑存储结构,它是从逻辑角度分析数据库的构成,描述的是数据库内部数据的组织与管理方式,与操作系统没有关系。主要有表空间(Tablespace)、段(Segment)、区(Extent)、块(Block)等。

★ 点击此处了解更多逻辑结构信息 ★



这篇关于Oracle体系结构总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!