1、Oracle数据库(Oracle RDBMS、Oracle):由Oracle公司开发的付费型的数据库系统。
2、Oracle数据库服务器由一个数据库和至少一个数据库实例组成
1)数据库是一组存储数据的文件
2)数据库实例是一组管理数据库文件的内存结构
ps:数据库和实例是紧密相连的,因此Oracle数据库通常用来指代实例和数据库;
另数据库还需要后台进程组成,
可以理解为下图的关系:
3、Oracle数据库的物理存储结构与逻辑存储结构
1)物理存储结构:是存储数据的纯文件,创建一个新的数据库时,系统自动创建下列文件
(1)数据文件:存储真实的数据,逻辑数据库结构的数据被物理存储在数据文件中
(2)控制文件:每个数据库都有一个包含元数据(元数据是描述数据库的物理结构,包括数据库名称和数据文件的位置)的控制文件。
(3)其他文件:联机重做日志文件(每个数据库都有一个联机重做日志,其中包含两个或多个联机重做日志文件,由重做条目组成,记录对数据所做的所有更改);参数文件(含有数列和数据库配置信息,分为两个相互独立部分,一部分是文本文件init.ora;一部分二进制是spfile.ora文件,文件允许通过alter system命令来维持数据库参数);归档日志文件(Oracle可以运行在归档和不归档两个模式之中,如果不用归档模式就不会有归档日志,但可能会丢失数据;在归档模式中,为了保护用户的所有修改,在和重做日志文件切换后和覆盖之间系统将他们另外保存成一组连续的文件系列,该文件系列就是归档日志文件)
2)逻辑存储结构:数据库使用逻辑存储结构对磁盘空间使用情况进行精细控制。
(1)数据块(Data blocks):也称为逻辑块、Oracle块或页,数据块对应磁盘上的字节数,Oracle将数据存储在数据块中。
(2)范围(Extents):范围是用于存储特定 类型信息的逻辑连续数据块的具体数量。
(3)段(Segments):段是分配用于存储用户对象(如表或索引)的一组范围。
(4)表空间(Tablespaces):数据库分成一个个称为表空间的逻辑存储单元,表空间是段的逻辑容器,每个表空间至少包含一个数据文件。
ps:包含关系:表空间>段>范围>数据块;
关系如下图:
3)物理存储结构与逻辑存储结构关系如下图
4、Oracle实例是客户端应用程序(用户)和数据库之间的接口,主要由三个部分组成:系统全局区(SGA)、程序全局区(PGA)、后台进程
1)SGA是实例分配的共享内存结构,关闭时释放。是一组包含一个数据库实例和数据和控制信息的共享内在结构
2)PGA是会话(客户端打开与服务器的连接发出请求到服务器响应客户端请求的全过程称之为会话)开始时为每个会话分配的私有内存区,当会话结束时释放
3)主要后台进程:
(1)PMON:是调节所有其他进程 的进程监视器。清理异常连接的数据库连接,并自动向侦听器进程注册数据库实例。是Oracle数据库中最活跃的一个进程
(2)SMON:是执行系统级清理操作的系统监视进程。主要有两个职责,包括在发生故障的情况下自动恢复实例,如断电和清理临时文件
(3)DBW:是数据库编写器。因为在内存中的处理速度比在磁盘上快,所以Oracle是在内存中进行每个操作而不是在磁盘中,DBW就是从磁盘中读取数据并将数据写回到磁盘中,一个实例有许多DWB(DBW1,DBW2……)
(4)CKPT:是检查点过程。在磁盘上的数据称为数据块,在内存中的数据称为缓冲区,当块写入缓冲区并更改时,缓冲区变脏(是指与原数据不一样的数据),并需要将其写入磁盘,CKPT进程使用检查点信息 更新控制和数据文件头,并向脏盘写入脏缓冲区的信号。
(5)LGWR:是日志写入过程,是可恢复架构的关键。数据库中发生的每个变化都会被写出到一个redo日志文件中用于恢复目的,这些变化是由LGWR进程编写和记录的,LGWR进程先将更改写入内存然后将磁盘写入重做日志,然后将其用于恢复。
(6)ARC:是归档进程,是将重做日志的内容复制到归档重做日志文件,可以有多个ARC进程,可以写入多个目标
(7)MMON:是收集性指标的可管理性监控流程
(8)MMAN:是自动管理Oracle数据库内存的内存管理器
(9)LREG:是监听器注册过程,是使用OracleNetListen在实例和调度程序进程上注册信息