oracle学习笔记整理(二)——oracle的体系结构
一、oracle的文件结构
(一)、核心文件
1、数据文件
2、重做日志文件(Redo File)
每个组中两个成员,需要跨存储
3、控制文件
Oracle有三个控制文件,一般放到同一个磁盘中,三个中任意一个出问题,其余的都会关联产生问题。
简单的说:控制文件需要多备份,但不需要跨存储
(二)、非核心文件
1、参数文件:记录数据库的各项配置
2、口令文件:决定谁可以以特殊的身份进入到数据库中
3、归档日志文件
(三)、调试用文件
1、DUMP文件
2、Trace文件
【比较】:文件系统,ASM和裸设备(RAW)
文件系统:
裸设备(RAW):(绕过OS),操作系统的突然崩溃等不会造成数据库读写的坏块,提高了数据库的安全性。也提升了一点速度
二、oracle体系结构图

三、oracle中的重要进程:
1、服务器进程
【简介】:根据我们的指示,完成我们下达的命令,也就是为我们提供服务。
2、其他重要的进程:

3、用户进程
四、oracle如何使用内存
Oracle主机把内存分为两部分:SGA和PGA
1、PGA
初期PGA占主机内存的一半左右,每个服务器进程各自有各自的PGA
2、SGA
SGA属于公共空间;有锁
SGA中的相关部件介绍:

1)、库缓存(Library Cache):
用于保存执行计划,存储有关最近使用的SQL和PL/SQL语句的信息。为了使下次执行同样的语句时更迅速,oracle利用库缓存来存储执行计划,以便第二次使用的时候参照。
库缓存的查找使用Hash算法来进行查找。
库缓存大小是有限的,一般当空间满时使用LRU(最近最少使用算法)算法来进行覆盖。
2)、数据字典缓存(Data Dictionary Cache):
用于存储表的元数据
3)、Buffer Cache:
Oracle以块为单位从磁盘中读写数据。服务器进程先将块从磁盘中读进Buffer cache,再从Buffer cache中检索出用户需要的数据,每次用户查询数据时,oracle会先在内存中查看是否有相应的块,如果没有,再去读磁盘。
如图:
3、SGA中的相关参数
参数的查看和更改命令:
Code
1 show parameter 参数 (显示某个参数)
2 alter system set 参数=值 (修改参数)
3 scope=BOTH|MEMORY|SPFILE
4 SID=…
4、相关概念
【定义】:实例(Instance):实例是值SGA和一些重要的进程。简单的说即:内存+进程
5、相关重要进程的功能
1)、DBWn:脏块由DBWn后台进程负责刷新进数据文件
所有在buffer cache中被修改过得块,oracle都称呼为脏块,或者恢数据。当脏块累计到一批后,会由DBWN把脏块从buffer cache中写往磁盘,这就是DBWn的作用。这个过程简称刷新脏块。
每次修改次数越多,DBWn的工作效率越高
触发DBWn写脏块的事件之一,就是服务器进程无法在查找一定块之后找到可覆盖块,由服务器进程触发DBWn写脏块。
2)、PMON, process monitor的缩写,进程监控,它主要监控的进程是服务器进程,也监控一些其他的进程。
3)、CKPT, check point
4)、ARCn是一个非关键进程,他和日志文件有关,当每次发生日志文件切换的时候,如A切换到B,ARCn会将A组日志文件复制到另外一个地方,这个过程叫 归档。
5)、LGWR:LGWR进程将生产的重做缓存中的重做记录写进日志文件,日志文件的写入是循环进行的。LGWR先写A,A满了再切换到B,B满了切换到C。
6、oracle的空间使用规则
【定义】表空间:
区:多个连续的块就是一个区
段:一个或多个区构成一个段,一个短代表一些数据文件中的空间。同属于一个短的空间有可能不连续,段是由区构成的,如果段包含两个区,若这两个区不连续,则,段也不连续。
简单的说,表是指数据,而段是存储数据的空间。
一个表空间可以有一个或多个段。
一个表不能跨越一个表空间。表空间是一个抽象的概念。


浙公网安备 33010602011771号