Oracle体系结构

来源:互联网 发布:网络共享打不开 编辑:程序博客网 时间:2024/05/15 07:26

数据库由物理数据文件和Oracle实例组成

  • Oracle实例:

每个运行的数据库都与一个Oracle实例相关联,启动实例时进行关联操作,叫做数据库装载
Oracle实例由内存和后台进程组成.

  • 内存:SGA和PGA

SGA(System Global Area):由shared pool、Java pool、Large pool、stream pool、db buffer cache、redo log buffer
share pool:由(库高速缓存)library cache和(字典高速缓存)dictionary cache组成,
sql正文,解析后的代码,及执行计划都放在library cache中
数据库执行语句时,会先在library cache寻找,sql表达式是否存在
如果已经存在,直接执行已存在的执行计划,即软解析
如果不存在就需要进行硬解析。。。。。???
Java pool:Oracle jvm的所有特定session和数据
Large pool:可选用于大型进程(如备份和恢复操作、I/O进程服务器进程)
stream pool:Oracle straem使用
db buffer cache:数据文件被读取后,将数据缓存块存储在这个区域,最近最小使用原则进行清空
第二次读取时,若数据在db buffer cache中,直接读取,
否则,从data file读取,并将副本写入db buffer cache
redo logo buffer:用于Oracle实例恢复,执行sql时—–先将语句写入redo logo buffer,在进入db buffer cache 读取

SQL> show parameter sga_target

NAME TYPE VALUE
———————————— ———————- —————————— sga_target big integer 0

//为0表示禁用“自动内存管理”

PGA: 每个服务器进程或后台进程都有一个PGA

  • 后台进程:

SMON: 系统监控进程,用于实例恢复
PMON: 进程监控进程,用于进程失败时执行清理任务
DBWn: 将DB buffer cache中的文件写入data file
LGWn: 将redo log buffer的文件写入redo log file
CKpt: 校验点,在触发DBWn中产生,认为检查点的数据是干净的????
ARCn: 将redo logo file写入achieved logo file

  • 物理数据:存储在外存中如磁盘中

参数文件:Oracle的内存参数等,定义启动实例时如何配置实例

SQL> show parameter pfile
主机名:test2> ls
adump dpdump pfile scripts

adump: 审计文件,需要定期清理
pfile:实例参数文件

口令文件:远程连接Oracle服务器时的口令
控制文件: 记录数据库的物理结构信息,用于访问数据库的数据文件

sql > show parameter control //查看控制文件位置
主机:test2 > ls //控制文件,数据文件,在线重做日志在一个目录下
controlfile datafile onlinelog

数据文件:记录数据

主机:test2>cd datafile
主机:test2 > ls
o1_mf_sysaux_dpyngxlj_.dbf o1_mf_temp_dpynhpgt_.tmp
o1_mf_users_dpynhyx8_.dbf o1_mf_system_dpyngg26_.dbf
o1_mf_undotbs1_dpynhfgo_.dbf

system 系统表空间,数据库核心表
sysaux 支持数据库组件的表
temp 临时段
users 用户数据段
undo 还原段,用于回退未提交事务

备份文件:备份数据文件
联机重做日志文件:用于实例恢复
报警日志:按时间记录消息日志和错误日志,alert.log
跟踪日志:每个后台进程和服务器进程都有关联的跟踪文件,可以查错误信息

SQL> show parameter dump

bdump: 后台进程跟踪文件 background_dump_dest
cdump: 核心转储文件 core_dump_dest,在trace目录下,alert.log也在trace目录下
udump: 用户sql跟踪文件 user_dump_dest

  • 表空间:逻辑概念

表空间–segment—extent—block
block:一般为8K,最小为2K

SQL> show parameter db_block_size

NAME TYPE VALUE
———————————— ———————- —————————— db_block_size integer 8192

extent是连续的block
segment:数据段、索引段、还原段、临时段

原创粉丝点击