一个用户可以同时运行多个程序对数据库进行访问,比如Visual C/C++可以提供同时启动多个进程,而Visual Basic则不能。
数据仓库(Data Warehouse)
支持大量数据信息存储的叫做支持数据仓储或数据仓库。当把几个小型数据库集成为一个大型数据库,并为一个较广泛的组织服务时,如果该数据库存储历史数据,提供决策支持,提供数据汇总,提供只读数据,并且实质上充当所有向它提供数据的相关成品数据库的数据接收器,那么它通常被叫做数据仓库。
实例(Instance)
是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程。
对象(Objects)
是实现世界实体的软件表示,如表、索引、视图、同义词、过程等。
数据库文件(Datafile)
Oracle系统中用于存放数据(应用系统数据)的文件。(<<Oracle8初学者指南>>P14中的例子不准确,容易误导读者)。
控制文件(Control File)
Oracle中存放系统用的一些数据的文件。如数据文件的路径及文件名,初始化文件路径及 文件名等都存放在控制文件中。
日志文件(Logs File)
也叫事务记录文件,该文件记录有事物对数据库进行的一切修改操作或事务。
DBA(Database administrator-数据库管理员)
是管理数据库系统的技术工具或人员,在完备的数据库系统中都提供DBA功能。
灰数据块(Dirty data block)
存放在内存中的原始数据已被修改,而修改后的数据还未写入数据库中。
热数据块(Hot data block)
存放着那些经常被修改数据叫热数据块。
LRU(Least Recently Used-最近最少用)
Oracle系统使用的一种算法,对于在内存中但最近又不用的数据块(内存块)叫做LRU,Oracle会根据那些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。
表(Table)
存放专门数据而建立和分配的空间。
表空间(Tablespace)
是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是表, 所以称作表空间。
回滚(Rollback)
将用户(或者说事务)改变的数据恢复到上一次所处的状态。
恢复信息(Undo Information)
记录用于恢复的信息称作恢复信息。回滚就是根据恢复信息内容进行恢复的。
2 Oracle数据库结构
Oracle数据库结构是Oracle数据库系统的主要部分,它是一些可以看得见的软件,包括:
Oracle 数据字典
表空间与数据文件
Oracle实例(Instance)
A Oracle 数据字典
Oracle数据库的重要部分是数据字典。它存放有Oracle数据库所用的有关信息,对用户来说是一组只读的表。数据字典内容包括:
数据库中所有模式对象的信息,如表、视图、簇、及索引等。
分配多少空间,当前使用了多少空间等。
列的缺省值。
约束信息的完整性。
Oracle用户的名字。
用户及角色被授予的权限。
用户访问或使用的审计信息。
其它产生的数据库信息。
数据库数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。
数据库数据字典不仅是每个数据库的中心。而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。
B 表空间与数据文件
简单说,表空间就是一个或多个数据文件(物理文件)的集合(逻辑文件)。一般有下面的表空间:
1)系统表空间(System tablespace)
是各种不同版本的Oracle必备的部分,存放Oracle系统的一些信息,一般只有一个SYSTEM表空间。
2)临时表空间(Temporary tablespace )
由于Oracle工作时经常需要一些临时的磁盘空间,这些空间主要用作查询时带有排序(Group by,Order by等)等算法所用,当用完后就立即释放,对记录在磁盘区的信息不再使用,因此叫临时表空间。一般安装之后只有一个TEMP临时表空间。
3)工具表空间(Tools tablespace)
用于保存Oracle数据库工具所需的数据库对象,这些工具表空间存放在工作时所用的专用表。旧的Oracle版本无此表空间。安装之后的工具表空间是Tools。
4)用户表空间(Users tablespace)
用于存放一些实验例子用的空间,当然也可以用于存放应用系统的数据。旧版本无Users表空间。现在的用户表空间为 USERS 。
5)数据及索引表空间
存放数据及索引的表空间,Oracle7以后都提倡在应用系统中,特别是具有大量数据的系统,要把数据和索引分开存放在不同的分区中,以便提高查询速度。在安装后索引表空间可能是INDX。数据表空间就是USERS。
6)回滚段表空间(Rollback Segment)
Oracle数据库系统在运行Insert、Update、Delete时都需要一个磁盘空间来存放恢复信息(Undo Information),以便在进行恢复时能将原来信息读出来。安装后的回滚段表空间是RBS表空间。数据库管理员也可根据应用的需要建立另外的回滚段表空间。
Oracle 以表空间来存储逻辑数据并以物理数据相连。
数据库被分成一个或多个逻辑部件称作表空间。而表空间又被分成称作段(segment)的逻辑部件。这些段再细分就叫扩展(extents)。
C Oracle实例
Oracle实例(Instance)是由一组后台进程和内存结构组成。每个运行的数据库系统都与实例有关。所以,有时称Oracle实例为数据库操作系统。下面是Oracle实例的解释。
Oracle 进程
Oracle有两种类型的进程: 服务器进程和后台进程(server processes and background processes)。
服务器进程
Oracle 服务器进程是处理用户与实例连接的事务。任务是:
分析和执行应用所发出的SQL语句。
从数据文件读必要的数据到SGA区的共享数据区。
返回必要信息给应用。
后台进程
Oracle系统使用一些附加的进程来处理系统的必须的工作。这些进程叫后台进程:
数据库写 (DBW0 或DBWn)
日志写 (LGWR)
检测点 (CKPT)
系统监视 (SMON)
进程监视 (PMON)
归档 (ARCn)
恢复 (RECO)
锁(LCK0)
工作队列 (SNPn)
队列监视 (QMNn)
发布(Dispatcher) (Dnnn)
服务器 (Snnn)
Oracle 的内存结构(SGA)
SGA 结构为:
数据高速缓冲区
重做日志缓冲区
共享池
大的共享池(可选)
数据字典缓冲区
其它数据缓冲区
3 Oracle数据库文件
ORACLE 数据库是一个复杂的数据库操作系统,由一系列部件组成,主要有:1)初始化参数文件、2)数据文件、3)控制文件、4)日志文件等。
A 初始化参数文件
初始化参数文件(initialization parameter file) INITsid.ORA,是 ORALE RDBMS 主要的配置点,它是配置参数和数值的集合。每一个参数值都控制或修改数据库和实例的某个方面。 早期的版本把参数都写在 initsid.ora 文件中,但在ORACLE8 之后,多数参数已不在该文件中出现,需修改这些参数时只能在SQL>下用 SET SESSION 或 SET SYSTEM 来进行。 查看系统参数可用。例如:
SQL>select * from v$parameter;
来列出。
Oracle初始化参数文件是一个可以编辑的文本文件。它是在数据库实例启动时被访问,从而得到数据文件、日志文件、控制文件等的路径,此外,初始化参数文件还提供实例所用的参数等。
初始化参数文件在$ORACLE_HOME/admin/TEST/pfile/目录下,名为:init.ora.615200511947(随机产生的ID).
B 数据文件