一 .Oracle体系结构概述
体系结构是对一个系统框架的描述,是设计一个系统的宏观工作。就如建造一座大楼的设计图一样,根据建筑框架图的要求,“严格”施工就可以建造一座功能完善,质量可靠的建筑。即使大楼建好以后,我们依然可以根据设计图来找到几乎每一个功能部件。
数据库系统结构设计了整个数据库系统的组成部分和各部分组件的功能,这些组件各负其职,相互协调完成数据库的管理和数据库的维护工作。
二.Oracle数据库体系结构
为了满足生产数据库需求,Oracle设计了如下图所示的体系结构,该体系结构包括实例(instance),数据文件(datafiles),用户进程(User process),服务器进程(Server process)以及其他文件,如参数文件(Parameter file),密码文件(Password file)和归档日志文件(Archived log file)等等。
其中,数据库实例包括SGA(系统全局区)和一系列后台进程,监控进程,数据库包括三种文件:数据文件(Data files),控制文件(Control files)和重做日志文件(Redo log files)。数据库实例和数据库是Oracle数据库体系结构的核心部分,DBA很重要的工作就是维护数据库实例和数据库本身的正常工作。
2.1.Oracle服务器和实例
Oracle服务器和实例是非常重要的两个概念,这里的服务器不仅仅是物理概念,还包括系统进程,而实例则是DBA经常维护的对象。
- Oracle实例(instance)
Oracle实例就是由一些内存区和后台进程组成。实例的组成如图所示,从实例的组成图可以看出实例由SGA和一些后台进程组成,这些内存区包括数据库高速缓存,重做日志缓存,共享池,流池以及其他可选内存区(如java池),这些池也称为数据库的内存结构。后台进程包括系统监控进程(SMON),进程监控(PMON),数据库写进程(DBWR),日志写进程(LGWR),检查点进程(CKPT),其他进程(如归档进程(ARCH),RECO进程等),这些数据库系统进程相互协调完成数据库管理任务。
要访问数据库必须先启动实例,实例启动时分配内存区,然后再启动后台进程,后台进程执行数据库的输入,输出以及监控其他Oracle进程。在数据库启动过程中有五个进程是必须启动的,它们是系统监控进程(SMON),进程监控(PMON),数据库写进程(DBWR),日志写进程(LGWR),检验点进程(CKPT),否则实例无法创建。数据库启动过程我们可以在警告日志(alertSID。ora)中看到详细过程。
注意:
在实践中,为了方便会通过数据库工具实现数据库在计算机重启时自动启动,如果用户安装了其他占用大量内存的应用软件,可能会造成数据库启动失败,此时往往是因为内存不足,操作系统无法为Oracle分配SGA。必须的五个进程也无法启动。
- Oracle服务器(server)
Oracle服务器由数据库实例和数据文件组成,它就是我们经常说的数据库管理系统(DBMS).数据库服务器组成如图
数据库服务器除了维护实例和数据文件外,还在用户建立与服务器的连接时启动服务器进程并分配PGA。
2.2.Oracle数据库物理结构(文件组成)
我们都知道,数据库是运行在操作系统之上的,数据库的最终目的就是存储和获取相关的数据,这些数据实际存储在操作系统文件中,这些操作系统文件组成Oracle数据库物理结构。
Oracle数据库的物理结构就是数据库中的一系列操作系统文件,Oracle数据库由3类文件组成。
- 数据文件(data files):数据文件包含数据库中的实际数据,是数据库操作中数据的最终存储位置。
- 控制文件(control files):包含维护数据库和验证数据库完整性的信息,它是二进制文件。
- 重做日志文件(redo files):重做日志文件包含数据库发生变化的记录,在发生故障时用于数据恢复。
2.3参数文件,密码文件和归档日志文件
虽然参数文件,密码文件和归档日志文件不是Oracle的数据文件,但是Oracle数据库不可少的3个文件。
- 参数文件(parameter file):参数文件中定义了数据库实例的特性。在参数文件中包含为SGA中内存结构分配空间的文件,如分配数据库高速缓冲区的大小等,参数文件是正文文件,可以使用操作系统文本编辑器查看。
- 密码文件(password file):密码文件授予用户启动和关闭数据库实例,在刚安装数据库时,Oracle的默认用户名和密码就存储在密码文件中,Oracle可以借此判断用户的操作权限。
- 归档日志文件(archive log files):归档日志文件是日志文件的脱机备份,在发生故障后进行数据恢复时可能使用该文件。
三.数据库连接与会话
连接与会话是Oracle数据库容易混淆的两个概念,它们是紧密相关的两个概念。
3.1数据库连接(connection)
连接指用户进程与数据库服务器之间的通信途径,一个连接就可以有多个对话。Oracle提供了3种数据库连接方式,如下
- 基于主机的方式(Host-Based):此方式中,服务器和客户端运行在同一台计算机上,用户可以直接连接数据库服务器。
- 基于客户机-服务器方式(Client-Server