zoukankan      html  css  js  c++  java
  • ORACLE-体系结构

    1、oracle内存结构:sga + pga ;

    2、oracle数据库体系结构:



    3、oracle工作原理:

    a.在数据库服务器上启动oracle实例;

    b.应用程序在客户端的用户进程中运行,启动oralce网络服务驱动器与服务器创建连接;

    c.服务器运行oralce网络服务驱动器,创建专用的服务器进程执行用户进程;

    d.客户端提交事务;

    e.服务器端进程获取SQL语句,检查共享池中是否有相同SQL语句,如果有,服务器进程再检查用户权限,反之则分配新的SQL共享区分析并执行SQL语句;

    f.服务器从数据文件或SGA中获得所需数据;

    g.服务器进程再sga中更新数据,DBWN将更新过的数据写入磁盘,进程LGWR在重做日志中记录事务;

    h.事务成功,服务器进程发送消息到应用程序中.

    4、oracle服务器:

    a.oralce服务器由数据库和实例组成;

    b.数据库是一个数据的集合,存放在数据文件中;

    c.实例:内存结构 + 后台进程;

    5、oracle数据库实例:

    a.oracle实例由内存结构和后台进程组成;

    b.启动oracle数据库实例,即分配内存、启动后台进程;

    c.oracle内存结构:SGA和PGA

    d.oralce实例后台进程:SMON、PMON、DBWR、LGWR、CKPT等;

    6、SGA(System Global Area):系统全局区

    系统全局区(System Global Area,SGA)是包含了一个oralce实例所拥有的数据及控制信息的共享内存区域.oralce在实例启动时分配SGA空间,并在实例关闭时回收,每个实例都有自己的SGA.

    SGA包括:共享池(shared pool)、数据库缓冲区(Database Buffer)、重做日志缓冲区(Redo Log Buffer)、大池、Java池、Stream池.

    a.共享池(shared pool)中包含的是共享的内存结构,例如共享sql区(shared sql area). 处理所有提交到数据库的sql语句都要用到共享sql区. 共享sql区中包含了语句对应的解析树(parse tree)、执行计划(execution plan)等信息. 一个共享sql区可以被提交了相同sql语句的多个应用程序使用,以便节约内存空间.

    b.数据库缓冲区(Database Buffer)存储最近使用的数据块.一个实例中全部的数据库缓冲区被称为"数据缓存".数据缓存同时包含修改过和没修改的数据块.如果最近使用的数据被放在了内存中,对磁盘I/O的需求就减少了,因此性能也得到提高.

    c.重做日志缓冲区(Redo Log Buffer)用户存储重做条目(redo entry)--用于记录数据库变化的日志。重做日志缓冲区中存储的条目将被写入联机的重做日志(online redo log)文件中,以备份数据库恢复使用。重做日志文件的容量是固定的。

    d.大池:为了进行大的后台进程操作而分配的内存空间,主要指备份恢复、大型IO操作、并行查询等。

    e.Stream池:为了stream应用而分配的内存空间

    f.Java池:为java应用而分配的内存空间

    7、PGA(program global area,PGA) 程序全局区

    PGA(program global area,PGA) 程序全局区是供服务进程(server process)存储数据及控制信息内存区域。这是一种在服务进程启动时由oracle创建的非共享的内存区。只有服务进程才能访问属于它的PGA,而对PGA的读写操作是由oralce代码实现的。一个oralce实例中为所有服务进程分配的全部PGA内存也被称为此实例的合计PGA。

    8、后台进程

    a.PMON 进程监控进程,监控用户进程是否正常

    1)清理出现故障的进程

    2)释放所有当前挂起的锁定

    3)释放故障进程使用的资源

    b.SMON 系统监控进程,实时监控oralce状况

    1)在实例失败之后,重新打开数据库自动恢复实例

    2)负责清除系统中不再使用的临时段

    3)整理数据文件的自由空间,将相邻区域结合起来

    c.DBWR 数据写入进程

    1)管理数据缓冲区,将最近使用过的块保留在内存中

    2)将修改后的缓冲区数据写入数据文件中

    d.LGWR 日志写入进程

    1)负责将日志缓冲区中的日志数据写入日志文件

    2)系统有多个日志文件,该进程以循环的方式将数据写入文件

    e.CKPT 检查点进程

    1)为了防止实例崩溃,为了尽快进行实例恢复的进程

    2)检查点包括两种:完全检查点、增量检查点

    9、物理结构

    a.主要物理文件可分为三类:

    数据文件:数据文件用于存储数据,如表、索引数据等

    控制文件:控制文件是记录数据库物理结构的二进制文件

    日志文件:记录对数据库所有的修改信息,用于故障恢复

    注:丢失以上任意一种文件数据库都无法正常运行,需要进程介质恢复。

    b.非主要物理文件:参数文件、密码文件、告警和跟踪文件...

    10、表空间:

    a.表空间是数据库中最大的逻辑单位,一个oralce数据库至少包含一个表空间

    b.每个表空间都由一个或多个数据文件构成,一个数据文件只能与一个表空间关联

    c.表空间的大小等于构成表空间的数据文件的大小之和

  • 相关阅读:
    058_从键盘读取一个论坛积分,判断论坛用户等级
    057_统计 Linux 进程相关数量信息
    bzoj3436
    bzoj1202
    bzoj1044
    bzoj2338
    bzoj1854
    bzoj1856
    830C
    bzoj2132
  • 原文地址:https://www.cnblogs.com/hankyoon/p/5174447.html
Copyright © 2011-2022 走看看