浅析理解Oracle数据库体系结构和存储结构
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析理解Oracle数据库体系结构和存储结构相关的知识,希望对你有一定的参考价值。
一、Oracle体系结构
个人比喻帮助理解:类似于图书馆,去图书馆的客户(用户进程和服务进程等)需要调取资料,求助于图书管理员(实例)进入图书分区(数据库)进行资料查找。【如果比喻不当,欢迎指正,尽请谅解】
-
第一部分是实例部分(为用户提供服务,管理数据库):
主要理解分成两个主要部分:
(1)内存结构:
(2)后台进程:与数据库进行交互
-
第二部分是数据库部分物理结构:(为实例提供服务,处理数据文件)
- 主要文件:数据文件,控制文件,重做日志文件
- 其他文件:归档日志文件,参数文件,口令文件等
二、Oracle数据库的存储结构
Oracle数据库的存储结构分为物理结构和逻辑结构,这两种存储结构既相互独立,又相互联系。
-
物理结构包括有:
主要文件:数据文件,重做日志文件,控制文件
其他文件:参数文件,归档日志文件
-
主要文件:
数据文件:包含数据库的用户或应用程序数据以及元数据和数据字典
重做日志文件:用于进行数据库的实例恢复。如果数据库服务器发生崩溃,但未丢失任何数据文件,那么实例便可使用这些文件中的信息恢复数据库。
- 控制文件:包含与数据库本身相关的数据,即物理数据库结构信息。这些文件对数据库至关重要。没有这些文件,就无法打开数据文件以访问数据库中的数据。
-
其他文件:
- 参数文件:用于定义实例启动时的配置
参数文件( Parameter File)也被称为初始化参数文件,用于存储SGA、可选的 Oracle特性和后台进程的配置参数。当数据库启动,并在创建例程或读取控制文件之前,会先按其中的参数进行例程的配置。
1)遗留的参数文件 init.ora:可以转换成 SPFILE,需要手工修改
文件名约定默认为
$SORACLE_ HOME/dbs/init$ORACLE_SID.ora
2)服务器参数文件目前使用,通过命令修改
文件名约定默认为:
$SORACLE_HOME/dbs/spfile#$ORACLE_SID.ora注意:建议不要修改服务器参数文件存储的默认位置,否则必须要告诉 Oracle到哪里去找这个文件。
- 口令文件:允许 sysdba、 sysoper和 Issas远程连接到实例并执行管理任务
- 归档日志文件:使用这些文件和数据库备份可以恢复丢失的数据文件。也就是说,归档日志能够恢复还原的数据文件
逻辑结构包括有:表空间,数据块,区,段等
从大到小的顺序依次为:数据库—>表空间—>段—>区—>Oracle数据块
- 段:构成表空间的逻辑存储结构,段由一组区组成。按照段所存储数据的特征,将段分为四种类型,即数据段,索引段,回退段和临时段
- 区:区为段分配空间,它由连续的数据块组成。当段中的所有空间已完全使用时,系统自动为该段分配一个新区。区不能跨数据文件存在,只能存在于一个数据段中。
- 块:数据块是Oracle服务器所能分配,读取或者写入的最小存储单元。Oracle 服务器以数据块为单位管理数据文件的存储空间。
- 模式:模式是数据库用户拥有的数据库对象的集合。模式对象包括表,视图,索引,同义词,序列,过程和程序包等。
表空间
- 是数据库中最大的逻辑单位, SYSTEM和SYSAUX表空间是在创建数据库时创建的必须存在的表空间,还会有TEMP, USERS等
- 每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联
- 表空间的大小等于构成该表空间的所有数据文件大小之和
安装完 Oracle后自动创建的表空间主要包括:
- SYSTEM系统表空间,存放关于表空间名称、控制文件、数据文件等管理信息,它属于sys、 system模式。不能删除或重命名。
- SYSAUX辅助系统表空间,用于减少系统表空间的负荷,提高效率
- TEMP临时表空间,存放临时表和临时数据,用于排序
- USERS用户表空间,存放永久性用户对象及私有信息,也称数据表空间。注意:每一个数据库都应该有一个用户表空间,以便在创建用户时分配给用户,否则用户的数据将会使用SYSTEM表空间。
- UNDO重做表空间,用来帮助回退未提交的事物数据
-
举例:
上面的图有:
- 一个表空间
- 两个数据文件:/do1/user_data01.dbf 和 /do1/user_data02.dbf
- 段有三个:两个数据段【×××和T2】,一个索引段【I1】
- 四个区
- 16个块
PS:段是可以跨数据文件的。区是不可以跨数据文件的。
以上是关于浅析理解Oracle数据库体系结构和存储结构的主要内容,如果未能解决你的问题,请参考以下文章