美文网首页
第一篇-开篇二八理论

第一篇-开篇二八理论

作者: 逢栲怭過 | 来源:发表于2019-12-15 10:46 被阅读0次

    1.本文是根据梁敬斌的《收获,不止oracle》写的
    20%的知识解决80%的事情。有目的的学习,oracle学习的各类目的
    1.1开发:能利用SQl完成数据库的增删改查的基本操作,能用PL/Sql完成各类逻辑的实现。
    1.2管理:能够完成数据库的安装,部署,参数调试,备份恢复,数据迁移等工作,
    能完成分配用户,权限控制,表空间划分管理相关工作,能进行故障定位,问题分析等数据库诊断相关工作,
    1.3优化:在深入了解数据库原理的基础上,能够利用各种工具及手段发现并解决数据库存在的性能问题,从而提升数据库运行效率。
    1.4设计:深刻理解业务需求和数据库原理,合理高效的完成数据库模型的建设,设计出各类表及索引等数据库对象,让后续开发稳定高效的进行开发工作。
    根据二八理论,我们可以根据下面两张图来快速的学习自己需要知识。


    image.png
    image.png

    2、oracle的物理体系结构

    image.png

    2.1从上图我们可以看出,Oracle由实例和数据库组成,上半部分直角方框为实例instance,下半部分圆角方框为Database,在图中也有标注
    2.2 实例是一个开辟的内存共享区SGA(system Global Area)和一系列后台进程组成,其中SGA主要被划分为共享池(share pool),数据缓冲池(db cache),和日志缓冲区(log buffer)三类,后台进程主要包括图中显示的PMON,SMON,LCKn,RECO,CKPT,DBWR,LGWR,ARCH等系列进程
    2.3、数据库是由数据文件,参数文件,日志文件,控制文件,归档日志文件等一系列文件组成,其中归档日志最终可能会被转移到新的存储介质中,用于备份恢复使用,
    2.4,图中圆形虚线框标志的是PGA(Program Global Area)区,这里也是一块内存开辟出来的内存区,和SGA区最明细的区别在于,PGA区不少内存共享的,而是私有不共享的,用户对数据库发起的无论是查询还是更新操作,都是在PGA中先预热,让后接下来在进入实例区域由SGA和后台进程共同完成用户发起的请求操作。
    PGA起到的具体作用
    第一:报错用户的连接信息,如会话属性,绑定变量等,
    第二:报错用户权限等重要信息,当用户进程与数据库建立会话时,系统会讲这个用户的权限查询出来,然后保存在这个会话区内。
    第三:当发起的指令需要重排序的时候,即就在PGA中进行重排序,如果PGA中内存空间不够的话,则在临时的表空间中完成排序,也就是在磁盘中完成排序。
    2.5在图中,用户发起的请求经历的顺序一般如下1区->2区->3区或者1区->2区。
    2.6图中进程含义
    PMON的含义是 process Monitor,是进程监视器,如果你在执行更新操作,未提交时进程崩溃,这时候PMON会自动回滚该操作,无须你人工去执行Rollback命令,如果遇到LGWR进程是吧这样的严重错误,PMON会终止这个实例,用于防止数据库错乱。
    SMON的含义是System Monitor,理解为系统监视器,与PMON不同的是,SMON关注的是系统级的操作而非单个进程,重点在于instance recovery,除此之外还有清理临时表空间,清理回滚表空间,合并空闲空间,等等
    LCKn仅适用于RAC数据库,最多可用10个进程(lck0,lck1,lck2.....)用于实例间的封锁,
    RECO用于分布式数据库的恢复,全称是Distributed Database Recovery,适用于两阶段提交的应用场景,比如我们面临多个数据库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文件和后续对应的归档文件,从理论上讲,即使数据文件被删光了,还可以根据这些日志文件,把所有曾经在数据库中做的操作重新做一遍,从而保证数据库安全。

    相关文章

      网友评论

          本文标题:第一篇-开篇二八理论

          本文链接:https://www.haomeiwen.com/subject/iagcoqtx.html