zoukankan      html  css  js  c++  java
  • 【面试虐菜】—— Oracle知识整理《DBA的思想天空》

    Inventory Oracle安装工具OUI用来管理Oracle安装目录的
     
    Oracle的参数文件,启动后按照下面的顺序读取参数文件,如果读取失败,启动数据库 失败:
    1  $ORACLE_HOME/dbs/SPFILE.ORA
    2  $ORACLE_HOME/dbs/spfile.ora
    3  $ORACLE_HOME/dbs/init.ora
     
    数据库的nomount阶段
    1 读取参数文件
    2 分配共享内存
    3 启动进程
     
    Mount阶段
    1 读取控制文件
    2 进行校验
     
    oracle的控制文件包括:
    1 数据库的物理结构
    2 数据文件
    3 REDO LOG
     
    在线日志文件:解决了数据库实例突然宕机或服务器宕机的系统恢复问题
     

    后台进程:

    1 DBWR 数据库写入操作
    2 LGWR 日志写入程序
    3 CKPT 检查点
    4 SMON 系统监控
    5 PMON 进程监控
    6 ARCH 归档
    7 RECO 恢复
    8 LCKn 封锁
    9 Dnnn 调度进程
    10 Snnn 服务器
     

    DB Cache

    1 DB Cache 是以bock为单位组织的缓冲区,不同大小的BLOCK对应不同的缓冲区参数
    2 DB Cache的命中率越高,访问性能就越好
    3 Cache中的数据块通过散列算法实现
    4 每个链上的buffers数量,最佳的情况是每个链上只有一个buffer
    5 DBWR进程控制脏数据写入
    6 在DB Cache,同一个数据块中可能存在多个版本的数据
    7 大表的扫描,热块冲突都可能导致闩锁的争用
     
    引入tch计数器,避免LRU链上频繁移动
     
    LRU链上搜索达到最大深、LRU-W上没有足够的clean buffers都会触发标记位,使得DBWR进程讲脏数据写入磁盘
     
    几个重要的数据链:
    1 LRU list普通的LRU链
    2 LRU-AUX list 被确认的clean的链,包括DBWR已经写回文件的 数据块和干净快
    3 LRU-XO list 重用对象链
    4 LRU-XR list CKPT搜索这些BUFFER,将脏数据写入该链,再由DBWR写入磁盘
     
    闩锁争用:
    1 热块冲突
    2 数据库在某个时间段出现大量的数据块扫描、热链
     
    使用keep pool存放大表,可以降低物理读,改善cache命中率
     
    使用owi观点和时间模型分析,帮助分析数据库性能
     
    DB cache命中率低,意味着更多的物理IO、更多的闩锁使用、较低的效率。RAC中,更多的实例间通信消息
     
    DB cache调优,注意 free buffere waits writes complete waits两个性能指标
     

    SGA包括:

    1 数据结构部分 fixed size 
    2 数据块缓冲区 database buffers
    3 redo log缓冲区 redo buffers
    4 共享池 variable size
     
    永久使用的共享内存:进程信息数据、会话信息数据、特殊用途的内存段
     
    随着共享池碎片化加剧:产生ORA-4031错误
    1 加大初始的分配值
    2 每次扩展一个组
     
    共享池内部结构:
    1 PERMANENT
    2 FREEABLE
    3 RECERATEABLE
    4 FREEABLE WITH MARK
     
    通过内部视图 X$KSMSP监控共享池碎片的情况
     
    较大的共享池会带来一定的系统开销
    共享池闩锁竞争也会增加
    定期刷新共享池会有助于保持共享池性能的稳定
     
    共享池相关闩锁的平均等待时间、超时的次数---判断共享池碎片化程度
     
    游标:一个父游标,多个子游标
     
    用户的不同,通过一个SQL得到的结果就不同,因此不能共享;执行计划不同,也不可以共享
     
    硬解析:执行SQL时,SQL已经不再共享池中,会产生硬解析。首先分配共享池空间,创建父游标,创建子游标
    软软解析:父游标存在,子游标也存在
    软解析:父游标存在,子游标不可共享
     
    游标共享技术ACS
     
    游标不会马上关闭,会先放在游标缓存中,等待回话完成后,在关闭
     
    OPEN_CURSORS会话打开的游标数量
    SESSION_CACHED_CURSORS回话缓冲,主要功能:将会话中的常用的SQL放入UGA中的会话缓冲区中,以便下次调用
     
    CURSOR_SPACE_FOR_TIME 当父游标被打开的时候,所有子游标及其相关联的对象全部被锁住,从而确保游标相关的信息都是一致的
  • 相关阅读:
    php 如何提升
    PHP判断客户端是否使用代理服务器及其匿名级别
    前端基础之BMO和DOM
    前端基础之JavaScript
    前端基础之CSS标签样式
    前端基础之CSS选择器
    前端基础之HTML标签
    面向对象之反射 元类
    面向对象之多态以及魔法函数
    面向对象之封装
  • 原文地址:https://www.cnblogs.com/xing901022/p/3978068.html
Copyright © 2011-2022 走看看