Oracle体系结构之数据库、表空间、实例

来源:互联网 发布:淘宝法克鞋店 编辑:程序博客网 时间:2024/05/16 15:46

 一、数据库

    数据库顾名思义是数据的集合,而Oracle则是管理这些数据集合的软件系统,它是一个对象关系型的数据库管理系统。

   

二、表空间

    表空间是Oracle对物理数据库上相关数据的逻辑映射,一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关联的一组结构,每个数据库至少有一个表空间(称之为System表空间)。

    每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile),一个数据文件只能属于一个表空间。

    数据库、表空间、数据文件的关系如下图所示:

从上面这幅图可以看出以下几点:

    1、每一个数据库都从逻辑上被划分成一个或多个表空间;

    2、每一个表空间由一到多个的数据文件构成;

    3、每一个表空间的存储大小等于其所有数据文件的大小之和;

    4、每一个数据库的存储大小等于其所有的表空间的大小之和;

    5、一个数据文件只能属于一个表空间;

    6、一个表空间只能属于一个数据库;

 

三、实例

    每一个运行中的数据库都对应着一个Oracle实例,当服务器上的Oracle数据库启动时,Oracle首先会在内存中分配一片区域——称之为System Global Area(SGA),然后启动一个或多个Oracle进程。

    SGA和这些进程合起来就称为一个Oracle的实例,实例中的内存和进程管理器用来高效地访问数据库的数据,同时为单个或多个的用户提供服务。

    一个数据库可以由多个实例打开,但任何时刻一个实例只能打开一个数据库,多个实例可以同时运行在同一个机器上,它们彼此访问各自独立的物理数据库。(如果一个数据库同时被多个实例打开,那么将可以由多个用户访问其中的表,那么是否在此种情况下数据的访问、操作也将用到锁机制呢?)。

    当实例启动之后,Oracle会把这个实例以及其对应的物理数据库关联起来,这个过程称为“加载”(Mounting),这个时候数据库将处于准备打开状态,数据库在打开之后 就可以对数据库进行操作了,(不是加载了数据库之后就可以对数据库进行操作了,还要经过打开这个步骤)。

原创粉丝点击