• Oracle体系结构


    1:ORACLE由实例和数据库组成。
    2:实例由SGA和一系列的进程完成的。 SGA又叫共享内存区。
    3:数据库是由数据文件(.dbf),日志文件(.log),参数文件(.pfile),控制文件(.ctl)归档日志文件等。
    其中归档日志最终可能会被转移到新的存储介质中,用于备份恢复使用。
    4:PGA是私有不共享内存区。当查询数据或者更新数据的时候,都是在这里进行预处理的。然后进入实例中。由SGA和系列的进程共同完成用户的请求。
    PGA的作用:
      1:用户连接的保存。如会话属性,绑定连接等。
      2:用户权限的保存。当用户进程和数据库进行会话的时候,系统会将这个用户的权限查询出来,保存在这个会话中。
      3:当发起排序的指令的时候,PGA就是这个排序区,如果内存中可以放下排序的尺寸,就在内存PGA区中完成,如果放不下,超出的那部分在临时表空间中完成排序。也就是在磁盘中。
    -----------------------------------八大进程-------------------------------------
    PMON  :Processes Monitor  进程监视。
        1:如果在执行某些更新语句,未提交时进程崩溃了,这个时候PMON会自动回滚该操作,不用人工的rollback了。
        2:干预后台进程,比如RECO异常失败了,这个时候PMON会重启RECO进程,如果遇到LGWR进程失败的严重问题,PMON会做出终止实例这个激烈的动作,用于防止数据错乱。
    SMON:System Monitor 系统监视器。
      关注的是系统级的操作。重点工作在于intance recovery ,除此还有清理临时表空间,清理回滚段表空间,合并空闲空间等。
    LCKn :
      仅用于RAC数据库,最多有10个进程(LCK0,LCK1....LCK9),用于实例间的封存。
    RECO:
      RECO用于数据库的恢复,适用于两阶段提交的应用场景。比如有A,B,C三个数据库,某个应用跨越三个数据库,在发起的过程需要A,B,C都提交成功,事务才会成功,只要有一个失败,就必须全部回滚。
    CKPT:
      由Oracle的FAST_START_MTTR_TARGET参数控制,用于触发DBWR从数据缓冲区中写到数据到磁盘。CKPT执行越频繁,DBWR写出越频繁,DBWR写出越频繁越不能显示批量特性,性能就越低,但是数据库异常恢复的时候会越迅速。
    DBWR :
        Oracle中最核心的进程了,负责把数据从数据缓存区写到磁盘里,该进程和CKPT相辅相成,因为CKPT促成DBWR去写的,不过DBWR和LGWR也密切相关。因为DBWR想将数据缓存区数据写到磁盘的时候,必须通知LGWR先完成日志缓冲区写到磁盘的动作后,才能工作。
    LGWR:
      把日志缓存区的数据从内存写到磁盘的REDO文件里,完成数据库对象创建,更新数据等操作过程的记录,不要小看REDO的记录,可以用来做数据库的异常恢复,只要保护好这些REDO文件和后续对应的归档文件,从理论上来说,即使数据文件被删除光了,还是可以让数据库根据这些日志记录,把所有的数据库中曾经发生的事情全部重做一遍,保证数据库的安全。
    LGWR必须记录下所有从数据缓存区写进数据文件的动作,工作任务相当繁重,由于要顺序记录情况下保留的日志才有意义,多线程难以保证顺序,但是单线程可以啊。所以规定了5条严格的制度来要求自己适应高强度的工作。
        1:每个三秒,LGWR运行一次。
        2:任何COMMIT触发LGWR运行一次。
        3:DBWR要把数据从数据缓存写到磁盘,触发运行一次。
        4:日志缓冲区满三分之一或记录满1MB,触发运行一次。
        5:联机日志文件切换也将触发LGWR。
    ARCH:
      在LGWR写日志写到需要覆盖重写的时候,触发ARCH进程去转移日志文件,复制出去形成归档日志文件。
     
  • 相关阅读:
    <转载> diff 和 patch 命令
    JZ2440开发板之LCD
    发音篇--第一章
    JZ2440开发板之系统始终和串口
    【还是用回csdn了,这个blog就不更新了】
    MyBatis 汉字作为查询条件查询不到 MySQL 中的结果
    LeetCode 617. 合并二叉树 Merge Two Binary Tree
    LeetCode 454. 四数相加 II 4Sum II
    LeetCode 441. 排列硬币 Arranging Coins
    leetcode ——从排序数组中删除重复项 II
  • 原文地址:https://www.cnblogs.com/bulrush/p/6208561.html
Copyright © 2020-2023  润新知