Oracle数据库服务器(Oracle database server)一般情况下是一个Oracle instance和一个Oracle database组成。当在计算机服务器上启动Oracle数据库后,称服务器上启动了一个Oracle实例(Instance)。ORACLE 实例(Instance)是存取和控制数据库的软件机制,它包含系统全局区(SGA)和ORACLE进程两部分。SGA是系统为实例分配的一组共享内存缓冲区,用于存放数据库实例和控制信息,以实现对数据库中数据的治理和操作。进程是操作系统中一个极为重要的概念。一个进程执行一组操作,完成一个特定的任务.对ORACLE数据库治理系统来说,进程由用户进程、服务器进程和后台进程所组成。当用户运行一个应用程序时,系统就为它建立一个用户进程。服务器进程处理与之相连的用户进程的请求,它与用户进程相通讯,为相连的用户进程的ORACLE请求服务。
1. Oracle 数据库实例(Oracle instance)
一个Oracle instance只能对应一个数据库。特殊情况下1个数据库可以有多个Oracle instance例如oracle rac。
一台服务器上同时可装多套版本的数据库软件,每个数据库软件可建多个数据库,但是每个数据库只对应一个Oracle instance,也可以理解成每个数据库只有一个SID 。
利用DBCA建出的每个库都是相对独立的,在同一服务器上如果创建多库必须将环境变量的参数文件做区分,并且在对实例切换时需如下操作:
connect 用户名/密码@实例的服务名
Oracle数据库实例(Oracle Instance)是由内存(SGA)和后台进程(backupground Process)组成。用户通过Oracle instance来访问Oracle database。一个实例只能打开一个数据库。
2.Oracle 数据库物理结构(Oracle database)
Oracle 数据库主要包括:
1).数据文件(Data files)
数据文件永远存储数据库的数据,包括数据字典、用户数据(表、索引、簇)、undo数据等.
2).重做日志(Redo log)
重做日志用于记录数据库的变化,当进行例程恢复或介质恢复时需要使用重做日志。执行DDL或DML操作时,事物变化会被写到重做日志缓冲区,而在特定的时刻LGWR会将重做日志缓冲区中的内容写入重做日志。
3).控制文件(Control file)
控制文件用于记录和维护数据库的物理结构,并且每个Oracle数据库至少要包含一个控制文件。
4).归档日志(Archive log)
归档日志是非活动(Inactive)重做日志的备份。
5).口令文件(Password file)
用于验证特权用户(具有SYSDBA、SYSOPER权限的特殊数据库用户)。
6).参数文件(Parameter file)
用于定义启动实例所需要的初始化参数,包括文本参数文件(pfile)和服务器参数文件(spfile)。
3.Oracle数据库逻辑结构
Oracle数据库的逻辑结构描述了数据库从逻辑上如何来存储数据库中的数据。逻辑结构包括表空间、段、区、数据块和模式对象。数据库的逻辑结构将支配一个数据库如何使用系统的物理空间.模式对象及其之间的联系则描述了关系数据库之间的设计.
一个数据库从逻辑上说是由一个或多个表空间所组成,表空间是数据库中物理编组的数据仓库,每一个表空间是由段(segment)组成,一个段是由一组区(extent)所组成,一个区是由一组连续的数据库块(database block)组成,而一个数据库块对应硬盘上的一个或多个物理块。一个表空间存放一个或多个数据库的物理文件(即数据文件).一个数据库中的数据被逻辑地存储在表空间上。
表空间(tablespace)
Oracle数据库被划分为一个或多个称为表空间的逻辑结构,它包括两类表空间,System表空间和非System表空间,其中,System表空间是安装数据库时自动建立的,它包含数据库的全部数据字典,存储过程、包、函数和触发器的定义以及系统回滚段。除此之外,还能包含用户数据。
一个表空间包含许多段,每个段有一些可以不连续的区组成,每个区由一组连续的数据块组成,数据块是数据库进行操作的最小单位。
每个表空间对应一个或多个数据文件,每个数据文件只能属于一个表空间。
数据库块(database block)
数据库块也称逻辑块或ORACLE块,它对应磁盘上一个或多个物理块,它的大小由初始化参数db-block-size(在文件init.ora中)决定,典型的大小是2k。Pckfree 和pctused 两个参数用来优化数据块空间的使用。
区(extent)
区是由一组连续的数据块所组成的数据库存储空间分配的逻辑单位。
段(segment)
段是一个或多个不连续的区的集合,它包括一个表空间内特定逻辑结构的所有数据,段不能跨表空间存放。Oracle数据库包括数据段、索引段、临时段、回滚段等。
模式对象(schema object)
Oracle数据库的模式对象包括表、视图、序列、同意词、索引、触发器、存储.过程等。