一個Oracle資料庫系統是以一個由字母和數字组成的系統識別碼(SID, Site ID)來做唯一性的區別[4]—包含了至少一個應用程式的實例,和資料儲存設備。一個實例(instance)是由一個實例數字(或是一個啟動ID:SYS.V_$DATABASE.ACTIVATION#)表示—包含了一個作業系統程序的集合和與儲存設備進行交談的內部結構。典型的程序有PMON(the process monitor程序監看器)和SMON(the system monitor系統監看器)。
Oracle資料庫的用户設計到了SGA(System Global Area系统全局领域)服务器端内存结构。SGA保存了缓存信息比如数据缓冲区,SQL命令,和用户信息。在存储之外,数据库由保存了数据变更历史的在线恢复日志。进程可以把在线的恢复日志转换成存档的日志(离线恢复日志),给数据回复和再生提供了基础。
如果Oracle数据库管理员实现了Oracle RAC(Real Application Clusters真正应用集群),那么在不同的服务器上的多个实例,隶属于一个中央磁盘阵列。这个方案提供了一些优点,比如更高的效率、扩展性和冗余。然而,这样会导致系统更复杂,因此许多站点并不使用RAC。在10g版本中,网格计算引进了共享资源,这样一个实例可以使用(例如)网格中另一个节点的CPU资源。
Oracle数据库管理系统可以保存并运行自己的存储程序和函数。PL-SQL(Oracle公司的专有的SQL扩展语言),或面向对象语言Java可以调用那些代码对象或者编写这些代码。
存储
编辑
Oracle关系型数据库管理系统从逻辑上把数据保存在表空间内,在物理上以数据文件的形式存储。表空间可以包含多种类型的内存区段,例如数据区段(Data Segment)、索引区段(Index Segment)等等。区段相应的由一个或多个扩展(extent)组成。扩展由相连的数据区块组成。数据区块是数据存储的基本单元。
Oracle数据库管理系统通过存储在SYSTEM表空间内的信息来跟踪数据存储。SYSTEM表空间包含了数据字典—以及(默认的)索引和集群。数据字典包含了一个保存了所有数据库中用户对象的信息的表。从8i版本开始,Oracle开始支持本地管理表空间,即把空间管理信息保存在它们自己的信头的位图中而不是SYSTEM表空间内。
磁盘文件
编辑
此章节需要扩充。
数据文件
编辑
在物理层,数据文件由一个或多个数据区块组成。区块的大小根据数据库的不同而不同。
数据文件可以使用计算机服务器的文件系统的预先分配空间,直接操作磁盘,或保存在自动存储管理逻辑卷内。[5]
控制文件
编辑
一个或多个控制文件保存了系统整体的信息和状态。[6]