Oracle 服务器结构
Oracle 服务器是一个具有高性能和高可靠性面向对象关系型数据库管理系统,也是一个高效的 SQL 语句执行环境。
Oracle 服务器具备以下的特点:
- 能够可靠的进行多用户环境下大量数据的处理,允许多用户同时访问相同的数据。
- 保证数据访问的高性能
- 有效防止对数据的非法访问
- 对于故障恢复提供高效的解决方案。
Oracle 服务器的总体结构
Oracle服务器同运行在操作系统下的很多程序一样,通过在后台运行一组可执行程序、在内存中开辟运行的存储区域并在磁盘上存储数据来进行运作。
如图,在结构上,Oracle服务器(Oracle Server)由实例(Instance)和数据库(Database)量大部分构成。实例是一组内存结构和Oracle后台进程的集合:数据库在物理上有多个操作系统文件组成,其中主要包括数据文件、控制文件、重做日志文件。
Oracle服务器 = 实例 + 数据库
Oracle实例
Oracle实例有内存结构(SGA)和Oracle后台进程组成的。
当用户启动(start)实例时,Oracle将自动为SGA分配内存并启动后台进程,实例运行后,用户可以访问实例,有实例来访问数据库。实例相当于用户和数据库的中间层。
当用户关闭(shut down)实例时,由操作系统负责回收内存。每个实例都有自己的SGA,并且,每个实例同时只能访问一个数据库。
Oracle数据库实例(Instance)= 内存结构(SGA)+ 后台进程(Background Process)
内存结构描述的是Oracle数据库对内存的使用构成。Oracle内存结构被总称为SGA(System Global Area),主要包括数据库告诉缓冲区(Database Buffer Cache)、重做日期缓冲区(Redo Log Buffer)和共享池(Shared Pool)三部分。
Oracle后台进程主要有 DBWn、CKPT、LGWR、SMON、PMON、ARCn和RECO
Oracle数据库
Oracle数据库包含了用于存放数据的数据库文件(DataFiles),用于保护数据不丢失的联机重做日志文件(Online Redolog Files)和用于连接Oracle实例和数据库所需的控制文件(Control Files)
Oracle数据库 = 数据文件 + 控制文件 + 联机重做日志文件
除了以上三种文件之外,Oracle还包含了参数文件(Parameter File)、口令文件(Password File)、归档日志文件(Archived Log Files)、以及跟踪文件(Trace File)和警告文件(Alert Log File)等非数据库文件。
- 控制文件:记录了数据库的各项信息,是连接Oracle实例和Oracle数据库的桥梁。每个Oracle数据库包含了1-8个控制文件。
- 联机重做日志文件:记录了用户对数据的各项操作,用于保护数据不丢失。以日志组的形式存在。每个Oracle数据库至少包含两个日志组。
- 数据文件:用于存放数据。
- 参数文件:记录了Oracle实例的各项信息,分为动态、静态初始化参数文件。
- 口令文件:存放特定用户的口令。
- 归档日志文件:相当于联机重做日志文件的备份,用于保护数据不丢失。
- 追踪文件:存放后台进程和服务器进程的跟踪信息。
- 警告文件:警告文件有连续的消息和错误组成。可以查看到Oracle内部错误、块损坏错误、及非默认的初始化参数值等。