第三课Oracle体系结构

Oracle进程结构
分为三种进程结构:user process,server process,background processes。

①User process
就是客户端的为了连接Oracle数据库而启动的进程。比如客户端使用的SQLplus

②server process
客户端和Oracle连接就是一个TCP连接,实际就是user process和server process之间建立了连接,两者一 一对应。Oracle链接方式有梁总,一种是dedicated server专用,另一种是shared server共享。Server process除了和user process建立连接,还可以处理其他工作。

Oracle数据库相当于一个工厂,background process相当于工厂里的一线工人,server process相当于工厂的销售,user process相当于客户。客户下单User process找销售server process,然后一线工人background server进行生产。

通过客户端连接远程服务器上的Oracle数据库和在Oracle服务器上连接本地数据库的区别:
在这里插入图片描述

上图中计算机1是Windows客户端,计算机2是linux系统且安装了Oracle数据库,圆圈代表进程。
客户端和数据库之间通讯是通过物理网卡建立TCP/IP连接。
同一台服务器上的两个进程进行通信有两种方式,一种是通过IPC进行通信,即Inter Process Communication,IPC包含共享内存、队列、信号量等几种形式。另一种通讯方式是可以通过模拟的TCP/IP通讯。系统中有个特殊的lo网卡,即local loopback,本地环回地址。

③background process
Instance的核心,分为两种,一种是mandatory background processes,必须存在的,包含DBWn、PMON、CKPT、LGWR、SMON,另一种是Optional background processes,是可能存在的,包含ARCn、LMDn、QMNn、CJQ0、LMON、RECO、Dnnn、LMS、Snnn、LCKn、Pnnn

DBWn(Database Writer)
将SGA里面Database Buffer Cache里面保存的已经修改过的数据(也叫作dirty buffer)写入到data files里面。如果数据库访问量特别大,来自客户端的请求特别多,存在大量的IO操作,需要频繁的将buffer中的数据写入到磁盘中,这个时候就可以配置多个DBWn。目前支持20个DBWn,从DBW0到DBW9,从DBWa到DBWj。
DBWn触发条件:①checkpoint发生的时候;②dirty buffer达到阈值;③没有空余的buffer;④timeout到了;⑤RAC进行了ping请求;⑥表空间离线;⑦drop或truncate表的时候;⑧表空间开始备份的时候;⑨表空间只读的时候

LGWR(Log Writer)
将SGA里面的Redo Log Buffer里面保存的数据写入到redo log files中。Redo Log files中记录了对数据文件的所有操作信息,便于恢复到数据文件改变之前的状态。
LGWR出发条件:①commit的时候;②Redo Log Buffer达到三份之一;③Redo Log Buffer达到了1M;④每三秒;⑤在DBWn写之前

SMON(System Monitor)
系统监视器,相当于工厂里面的清洁员,负责监控工厂环境情况。比如instance崩溃了,有些资源没有释放,再次启动instance的时候,SMON则对其进行清理。SMON则主要用于实例恢复(回滚uncommitted的事务;为user process open database;rolls forward联机重做日志文件)、整合空闲分散的空间;清理临时段

PMON(Process Monitor)
进程监视器,相当于工厂里面的监工,定期巡检各个进程的工作情况。对failed processes进行清理,包括回滚事务、释放锁、释放资源、重启dispatchers(分配器)

CKPT(Checkpoint)
早期CKPT工作是由LGWR完成,随着工作量的加大,Oracle设置了CKPT,具体负责写checkpoints检查点;更新数据文件头部检查点信息;更新控制文件检查点信息。相当于工厂请的助工,负责打杂。

ARCn(Archive)
可选进程,基本是必选,因为Oracle建议启动数据库归档功能。
Redo log files循环写,写满了之后会重新覆盖之前的数据,可以开启归档模式,当redo log files写满了之后由ARCn进程将旧的数据写入到Archived redo log files中。

Oracle的逻辑结构
在这里插入图片描述

一个Oracle server上只能有一个database,一个database可以有多个tablespace,一个tablespace可以由多个segment组成,一个segment可以由多个extent组成,一个extent是一组连续的blocks组成,Block是Oracle的最小逻辑单位。Oracle中的block是文件系统或操作系统中的块的整数倍,一块对应内存中的一页(page),Block参数DB_BLOCK_SIZE。
Data files是Oracle的物理结构,一个tablespace可以对应多个data files,一个segment也可以横跨多个data file,extent只能存在于一个data file。

Oracle处理SQL语句的过程

链接、安全检查、parsing解析、binding绑定变量、执行、返回结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值