本文包含主要内容:数据库进程分类,内存结构,逻辑结构,存储结构
写本文的目的:了解数据库体系结构,认识数据库物理实现。今后数据库操作,管理,数据恢复,数据库维护打下基础。
文章分类:学习笔记
读者类型:学生,数据库爱好者
主要参考:《Oracle.9i中文版基础教程.》随书光盘--整书内容PDF文档 作者:赵松涛
:Oracle 10G 数据库系统教程中科院
:http://zy.zhku.edu.cn/dbcourse/main.htm
Oracle 安装后,启动好实例就可以操作数据库了:通常所说的实例是数据库里面一些相关的进程启动起来,调入到内存当中并各自起作用。通常所说的数据库是一系列的文件系统,在Oracle数据库中主要的文件有控制文件,数据文件,日志文件。
一:进程结构
Oracle 9i 网络环境里共有两大类进程
1, 用户进程
用户进程是在客户机内存上运行的程序,如客户机上运行的SQL PLUS,企业管理器等。用户进程向服务器进程提出操作评语
2, 服务器进程
系统监控进程(SMON):数据库系统启动时执行恢复性工作,对有故障数据库进行恢复
进程监控进程(PMON):胜于恢复失败的用户进程
数据库写入进程(DBWR):将修改后的数据块内容写回数据库
日志写入进程(LGWR):将内存中的日志内容写入日志文件
归档进程(ARCH):当数据库服务器以归档方式进行时调用该进程完成日志归档
主要还有:检查点进程(CKPT),恢复进程(RECO),锁进程(LCKn),快照进程(SNPn),高度进程(Dnnn) 等;
二,内存结构
1, 系统全局区(SGA)是一个大的内存块,实例的SGA被后台所有实例共享,主要包含下面五个部分:
1 DB buffer 数据库调整缓存区,内存中用来频繁访问的区域 有下面三个部分
保持缓存池,在内存在长期保存的,经常访问的,如代码表 放在这里。
再生缓存池:想尽块从内存中排除的对象,如频繁访问的大表,放在这里
默认缓存池,其他的对象
2 共享池 主要有
库缓存区
共享SQL区,保留SQL语句解释板本
PL/SQL区 保留了PL/SQL过程函数等编译版本
字典缓存区 绶存PL/SQL的程序单元,SQK语句的执行板本及相关的执行计划
3 Redo buffer 日志缓存区,
4 固定SGA
5 大共享区
2, 程序全局区(PGA):PGA是数据库服务器内存中为单个用户进程分配的专用的内存区域,是用户进程私有,不能共享。
三,数据库的逻辑结构
主要有表空间,数据文件,段,盘区,块
一个表空间对应到多个数据文件,
一个表空间包含多个段,但是段与数据文件不存在一一对应关系,一个段可能跨了多个数据文件来存储
块是数据库存储的基本单位 ,若干个块组成一个盘区,若干个盘区组成一个段,若干段组成一个表空间
我们在指定文件存储时只能指定储到哪个表空间
Oracle 9i 数据库一些默认表空间
CWMLITE ——胜于联机分析处理
DRSYS——用于存放与工作空间设置有关的信息
EXAMPLE——实例表空间,存放实例信息
还有,索引表空间,系统表空间,临时表空间,工具表空间,用户表空间,回滚表空间。
四:数据库的存储结构
1, 数据库的存储结构指逻辑结构在物理上是如何实现的:
从上到下共分二层:数据库——物理文件——物理块
3, 物理文件
每个物理文件由若干个物理块组成,主要的物理文件有数据文件,控制文件,日志文件
数据文件:胜于存放所有的数据 .dbf
日志文件:记录对数据库进行所有的操作 .log
联机日志文件 也叫重做日志文件 非归档 REDO.LOG
归档日志文件 热备份用到
控制文件:记录了数据库所有的文件的控制信息 .ctl
控制文件管理日志文件和数据文件,
* 启动数据库时,首先启动对应的实例,再次 打开控制文件,接下来由控制文件打开数据文件 (参数文件不直接参与工作, 系统是通过参数文件找到控制文件)
注:1 : 若全局数据库名为D10115,
则物理文件存放在F:\oracle\product\10.2.0\oradata\D10115