Oracle学习笔记第十天
Oracle学习笔记第十天
Oracle的体系结构
概念:
系统的体系架构指系统的组成部分,以及这些组成部分之间的关系。
Oracle的体系架构,是指Oracle数据库管理系统的组成部分和这些组成部分之间的相互关系,包括内存结构、后台进程、物理与逻辑结构等。
Oracle体系结构
Oracle由两大部分组成 = 实例+数据库
关系:实例就是程序,数据库是文件,程序读写并管理文件。
实例组成= 分配的内存+后台进程= SGA+PGA +后台进程。
实例:位与内存
后台进程应该是在CPU上,它所需要的数据应该在内存里。
数据库:位与硬盘上
Oracle的数据库的物理文件可以在硬盘上找到,在Oracle的安装目录下的oradata的文件夹–> orcl文件夹,在这个文件里。
CTL 结尾的是控制文件,DBF结尾的是数据文件,LOG结尾的是日志文件。其他文件需要进行某些配置才能出来,至于怎样的配置,没研究…
注意:里面的文件不要打开。
打开后你会发现文件内容看不懂,因为那个是一个二进制文件,需要用Oracle的专门解码器才能转换,一旦你打开了,对文件产生了修改,哪怕是加一个空格然后删掉那个空格,都是修改,那恭喜你,你的Oracle数据库可能被KO了。可能就启动不起来了。
Oracle的二进制控制文件本地打开后显示的内容
详解
物理结构:
物理组件包括:数据文件、控制文件、日志文件和其他文件(比如参数文件、口令文件、密码文件)
-
数据文件:
用于存储数据库数据,如表、索引数据等。
-
日志文件:
记录对数据库的所有修改信息,用于故障恢复。
-
控制文件:
记录数据库物理结构的二进制文件。
逻辑结构:
概念:指Oracle的“逻辑上”是用什么对象进行存储的
- 数据块:
-
数据块是Oracle服务器所能分配、读取或写入的最小存储单元。
-
Oracle服务器以数据块为单位管理数据文件的存储空间。
数据块是Oracle数据库的最小单元,数据块最小的设置为8192bytes,即8kb,如果存储的数据小于8kb,读取这一批数据时,读取的大小不是数据的大小,而是数据块的大小,即8kb。
- 区:
-
区为段分配空间,它由连续的数据块组成。
-
当段中的所有空间已完全使用时,系统自动为该段分配一个新区。
注意:第二点,每使用完一批连续的数据块,即一个区,系统不是会再分配一个数据块,而是一个新的区。
- 段:
-
段是构成表空间的逻辑存储结构,段由一组区组成。
-
按照段所存储数据的特征,将段分为即数据段、索引段、回退段和临时段。
段是比区大一级的范围。
- 表空间:
- 表空间是数据库中最大的逻辑单位,每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。
- 表空间的大小等于构成该表空间的所有数据文件大小之和。
- 模式:
-
英文Schema,模式是对用户所创建的数据库对象的总称。
-
模式对象包括表、视图、索引、同义词、序列、过程和程序包等。
-
与用户的关系:模式名称就是控制该模式的用户名称。
通俗简单的理解:就是一个用户。
SGA(系统全局区)
SGA保存了数据库环境和字典信息,由多个数据库进程共享
SGA包含:日志缓冲区、共享池、数据缓冲区。
SGA最大的作用:就是提升Oracle的各方面的性能。
缓存区:就是起缓冲作用的某个内存区域
- 共享池:
- 共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域
- 共享池由库缓存和数据字典缓存组成。
- 共享池的大小直接影响数据库的性能。
- 保存了对SQL分析结果,减少了分析相同SQL的时间,提高SQL执行效率。
- 数据缓冲区
- 用于存储从磁盘数据文件中读入的数据,所有用户共享。
- 服务器进程将读入的数据保存在数据缓冲区中,当后续的请求需要这些数据时可以在内存中找到,不需要再从磁盘读取,提高了读取速度。
- 数据缓冲区的大小对数据库的读取速度有直接的影响。
- 已读取常见表格的数据,减少了对磁盘的操作,提高了数据库性能。
- 日志缓冲区
- 日志记录数据库的所有修改信息,日志信息首先产生于日志缓冲区。
- 当日志缓冲区的日志数据达到一定数量时,由后台进程将日志数据写入日志文件中。
- 相对来说,日志缓冲区对数据库的性能影响较小。
- 减少了保存日志时对磁盘的操作,提高了数据库性能。
PGA(程序全局区)
这玩意没有多余的介绍。
与SGA的区别:PGA是私有的,SGA公共的。
后台进程
- PMON 进程监控进程
- 清理出现故障的进程。
- 释放所有当前挂起的锁定。
- 释放故障进程使用的资源。
- SMON 系统监控进程
- 在实例失败之后,重新打开数据库时自动恢复实例。
- 整理数据文件的*空间,将相邻区域结合起来。
- 释放不再使用的临时段。
- DBWR 数据写入进程
- 管理数据缓冲区,将最近使用过的块保留在内存中。
- 将修改后的缓冲区数据写入数据文件中。
- LGWR 日志写入进程
- 负责将日志缓冲区中的日志数据写入日志文件。
- 系统有多个日志文件,该进程以循环的方式将数据写入文件。