Oracle数据库学习笔记(四)

Oracle体系结构

Posted by java阳旭 on May 21, 2020

1、数据库

Oracle 数据库是数据的物理存储。这就包括(数据文件 ORA 或者 DBF 、控制文件、联机日志、参数文件)。其实 Oracle 数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看作是 Oracle 就只有一个大数据库。数据库侧重于硬件。

2、实例

一个 Oracle 实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory Structures)组成。一个数据库可以有 n 个实例。一般情况下,在公司中一套数据库硬件上只运行一个实例,但是实际上是可以运行多个实例的。实例侧重于进程。

3、用户

用户是在实例下建立的。不同实例可以建相同名字的用户。Oracle 中用户是管理表的基本单位。作为对比,在 MySQL 数据库中,管理表的基本单位是数据库。比如,如果公司用的是 MySQL ,可以直接说当前数据库下有几张表。但是如果公司用的是 Oracle,就不可以这么说了,需要说某用户下有几张表。用 MySQL 做一个新项目需要新创建一个数据库,用 Oracle 做一个新项目需要新创建一个用户。

4、表空间

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

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

表空间说白了它是一个逻辑单位,它就是当数据库过于庞大不便于管理的情况下,会把表空间再分成一些细小的块,这些块起一个名字叫做表空间。具体这些块里的内容就是数据文件。一组或者一堆数据文件合在一起就叫做表空间。

5、数据文件(dbf、ora)

数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真正是在某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。

注:表的数据,是由用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。

由于 Oracle 的数据库不是普通的概念, Oracle 是有用户和表空间对数据进行管理和存放的。但是表不是由表空间去查询的,而是由用户去查的。因为不同用户可以在同一个表空间建立同一个名字的表!这里区分就是用户了!

6、总结

这张图整体范围内可以称之为一个数据库,数据库侧重于硬件,一个硬件上可以跑起来多个实例。这张图里面就画了 2 个实例。一个实例很大,不便于管理,所以可以对实例进行细分,分成多个表空间,也就是说实例和表空间的关系是一对多。具体管理表的基本单位是用户,一个实例下可以有多个用户。当然,用户的等级不一样,他操作表的权限也不一样。有的用户的权限很大,他可以创建表、表的索引、表的序列等等。有的用户权限不大,就只能做一些查询、增加、修改等一些基本的操作。表空间是一个逻辑单位,那么里面具体的文件存放到什么地方呢?存放在 dbf 或者 ora 文件里面。也就是说一个表空间内可以存放 n 个 dbf 或者 ora 这种物理文件,当然,一个表空间可以对应多个用户。