由浅入深讲解Oracle数据库进程的相关概念


    Oracle数据库 历程概述:
    Database buffer cache重要用于存储数据文件中的数据块
    数据库高速缓存的数据块是高速缓存与数据文件进行信息 交换的 根本单位 。在Oracle数据库8i以往,数据块大小惟独一种,而Oracle数据库9i以后 支撑2K,4K,8KB,16KB及32KB五种 。
    用命令SQL>SHOW PARAMETER DB 可以显示目前数据库的BUFFER CACHE
    数据库缓存和特色如下:
    <1>.依据近期 起码 使用LRU.
    <2>. 由DB_BLOCK_SIZE来指定大小 。
    <3>.ORACLE 使用时是以块大小为单位进行数据存取的 。
    还包括以下一些独立的子缓存:
    <1>.DB_CACHE_SIZE.
    <2>.DB_KEEP_CACHE_SIZE.
    <3>.DB_RECYCLE_CACHE_SIZE.
    注: 可以用Alter system set db_cache_advice=on;设置成依据系统的 提议来指定大小 。
    REDO LOG FILE重要是用于重做日志
    用命令SQL>SHOW PARAMETER LOG_BUFFER 。
    SQL>ALTER SYSTEM SET LOG_BUFFER_SIZE=60M 。
    用来显示或 批改重做日志缓冲区的一些信息 。
    命令SQL>achive log list 可以查看数据库目前的归档模式 。
    LARGE POOL:
    与JAVA POOL一样,都是作为系统可选的内存 构造,由SGA来配置 。
    JAVA POOL:
    当安装或 使用JAVA时才用到 。
    ORACLE内存 历程包括两个,一个是SGA,一个是PGA.
    (1) 。SGA在ORACLE实例启动时 调配,是ORACLE实例的一个 根本组件 。
    (2) 。PGA是在当服务器 历程启动时 调配的 。
    历程 构造:
    <1>.USER PROCESS.用于消费者与ORACLE SERVER交互的 历程 。
    USER PROCESS必须与ORACLE 构建衔接后才可 使用,不可与ORACLE SERVER交互 。
    <2>.SERVER PROCESS.
    SERVER PROCESS在消费者与服务中间 构建衔接后,为执行消费者命令的一个 历程 。
    <3>.BACKGROUND PROCESS.
    后盾 历程:DATABASE WRITER (DBWn)用来把DATA BUFFER CACHE中的脏数据写回到数据库中 。
    (注:脏数据是被转变的数据 。)
    在以下状况下它会写数据库:
    <1>.在 产生CHECKPOINT同步 。
    <2>.脏数据达到阀值 。
    <3>.DATABASE BUFFER CACHE 自由空间太少了 。
    <4>.TIMEOUT (3秒钟 。)
    <5>.RAC PING REQUEST.
    <6>.TABLESPACE OFFLINE.
    <7>.TABLESPACE READONLY.
    <8>.TABLE DROP OR TABLE TRUNCATE (表数据清空或表 构造删除) 。
    <9>.TABLESPACE BEGIN BACKUP.
    由SGA (包括DATABASE BUFFER CACHE,BACKGROUND PROCESS)-----> [ DBWn ]----> {data files,
    control files, redo log file} ---->由此过程转变数据库中的数据 。
    LOG WRITER (LGWR) 日志写 历程
    在Oracle环境中
    <1>.当COMMIT的时候 。
    <2>.当三分之一空间满时 。
    <3>.当日志有1MB需求重做时 。
    <4>.每3秒
    <5>.BEFORE DBWn WRITES.(写数据前先写日志) 。
    REDO LOG BUFFER----->LGWR--->DBWn
    |--------------------------------------> REDO LOG FILES
    SYSTEM MONITOR (SMON)系统监控 历程

    重要 使命:
    (1) 。启动过程( 假如DATABASE重启时)假如需求RECOVERY,则此 历程会负责 打开数据库,及回滚没有
    提交的事务;以及rolls forward changes in the redo logs这些统称为:instance recovery.
    (2) 。对每3秒就对系统 自由空间的 整顿 。(COALESCES FREE SPACE EVER 3 SEC.)
    (3) 。清空暂时段空间(DEALLOCATES TEMPORARY SEGMENTS) 。
    这个过程也是在系统启动过程中 实现的 。
    PROCESS MONITOR (PMON) 历程监控 历程
    重要用于回滚 异样终止的或被消费者强制终止的事务 。
    <1>.rolling back the transaction.
    <2>.releasing locks. 开释锁 。
    <3>.releasing other resources.
    <4>.restarts dead dispatchers.重启死掉的调度器 。(在共享服务器中用) 。
    PMON (:Include in SGA)----------------------->PGA
    CHECKPOINT (CKPT) 审查点 历程
    用来在数据库里实现同步,实现之前会强制将脏数据从内在里写到物理文件里 。
    <1>.会启动DBWn来写脏数据(SIGNALLING DBWn at CKPT.)
    <2>.完后会更新DATAFILE的HEADER和操纵文件的HEADER.而HEADER中有同步所需求的信息,即
    CHECKPOINT的信息 。
    <3>.在ORACLE中, 畸形状况下,全部文件必须同期性地同步;靠CHECKPOINT来 实现 。
    CKPT(作为 后盾 历程包括在实例中)------------------DATABASE
    (data files,control files,redo log files.)
    | |______DBWn
    |________LGWR
    Archive PROCESS (ARCn) :归档 历程(可选 历程),当设置归档模式后,可用来自动备份在线日志,(归档日志是重做日志的备份 。)
    <1>.Automatically archives online redo logs when archiverlog mode is set.
    (设置归档模式后,将自动备份在线日志)
    在 解决SQL语句时, 留神以下过程:
    <1>.用以下 历程衔接到实例 。
    消费者 历程(USER PROCESS) 。
    服务器 历程(SERVER PROCESS) 。
    <2>.Oracle服务器 历程组件的 使用依赖于SQL语句的 品种 。
    [1]. 查问语句会返回行 。
    [2].DML语句会记录这种转变 。
    [3].COMMIT 保障了事务的RECOVERY.
    <3>.并不是全部的SQL语句中全部的 后盾 历程都会 参加 。
    论断:
    Oracle Server. Oracle服务器 历程包括一些文件, 历程和内存,在执行一条SQL语句时,并非全部这些都会用上,有些 历程用于 普及数据库的性能;一些用于当 产生软件或硬件 异样时 复原数据库;或 利用于 实现 其余一些 保护数据库的 使命 。ORACLE服务器包括ORACLE实例和ORACLE数据库 。Oracle Instance: Oracle实例是用于 联络 后盾 历程和内在中间的 运动,对数据库进行数据存取前必须先启动实例,每当实例启动时,SGA就被 调配给它并启动了一些 后盾 历程 。 后盾 历程执行10秒操作并监控有些 历程以提供更好的性能 。和牢靠性 。Oracle Database: 数据库包括了系统文件,也称数据库文件,其提供了用以存储数据库信息的实际物理存储区域,用数据文件 保障了数据 统一性,并在当实例 产生失败时 复原数据库 。
    上文中为大家 详尽介绍了对于Oracle数据库 历程的 有关概念的 常识, 盼望大家都能很娴熟的 主宰这些 常识,让这些 常识存在于我们的大脑中,便于我们以后遇到 类似的问题时的 解决 。