共计 2060 个字符,预计需要花费 6 分钟才能阅读完成。
一、Oralce 体系结构
1、概述
Oracle 的体系结构是数据库的组成,工作过程,以及数据库中数据的组织与管理机制,要了解 Oracle 数据库的体系结构,就必须要理解 Oracle 的主要组件和重要的概念。Oracle 体系结构包含一系列组件,包括实例、用户进程、服务进程、数据文件及其他文件,如参数文件、口令文件和归档日志文件等。如下图所示:
实例和数据库是 Oracle 数据库体系结构的核心组成部分,也是最重要的两个概念,dba 的主要工作就是维护实例和数据库。
1)实例
实例是后台进程和内存的集合,必须启动实例才能访问数据库中的数据。
Oracle 启动时,将分配一个系统全局区(SGA),并启动一系列 Oracle 后台进程
一个实例只能打开并使用一个数据库
Oracle 分为单进程实例和多进程实例,现在普遍都是多进程实例,多进程就是多用户,不同用户使用不同进程来执行 Oracle 的不同部分。
2)数据库
数据库是一个数据的集合,该集合被视为一个逻辑单元。
Oracle 数据库由操作系统文件组成,这些文件为数据库信息提供实际物理存储区
Oracle 数据库包括逻辑结构和物理结构。
物理结构:是指存储数据库信息的一组操作系统文件,每个数据库有一个逻辑结构和一个物理结构。物理结构是指构成数据库的一组操作系统文件,主要由 3 种类型文件组成:数据文件,控制文件和重做日志文件。
逻辑结构:是指数据库数据的逻辑存储结构,包括:表空间,数据段,表,视图等。
二、Oracle 存储结构
Oracle 的存储结构分为物理结构和逻辑结构,这两种存储结构既相互独立又相互联系。
1、物理结构:
物理结构就是 Oracle 数据库创建后使用的操作系统物理文件,分为以下两种:
1)主要文件
数据文件:数据文件是物理存储数据库的文件,数据文件的特点:每个数据文件只与一个数据库相联系,一个表空间可以包含一个或多个数据文件,一个数据文件只能属于一个表空间。数据文件包含数据库的用户或应用程序数据,以及元数据和数据字典。
重做日志文件:它记录了对数据的所有更改信息,并提供一种数据恢复机制,如果数据库服务器发生崩溃,但未丢失任何数据文件,那么实例便可使用这些文件中的信息恢复数据库。
控制文件:当数据库读取时,要根据控制文件的信息查找数据文件。控制文件存储了数据文件和重做日志文件的名称和位置。一个数据库至少有两份控制文件,Oracle11g 默认包括 3 个控制文件,各个控制文件内容相同,可以避免因为一个控制文件的损坏导致无法启动数据库。控制文件记录了以下关键信息:数据文件的位置和大小、重做日志文件的位置及大小、数据库名称及创建时间、日志序列号。控制文件对数据库至关重要。没有这些文件,就无法打开数据文件以访问数据库中的数据。
2)其他文件
参数文件:用于定义实例启动时的配置
口令文件:允许 sysdba、sysoper 和 sysasm 远程连接到实例并执行管理任务
归档日志文件:使用这些文件和数据库备份,可以恢复丢失的数据文件。也就是说,归档日志能够恢复还原的数据文件
2、Oracle 逻辑结构
Oracle 的逻辑组件包括表空间、段、区、块和模式等。
1)表空间
表空间是数据库中最大的逻辑单位,SYSTEM 和 SYSAUX 表空间是在创建数据库时创建的必须存在的表空间,还会有 TEMP,USERS 等。
每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。
表空间的大小等于构成该表空间的所有数据文件大小之和。
表空间和数据文件是相对应的,如果没有数据文件,表空间不可能独立存在,如果只有表空间没有数据文件也是不行的,就好比如果电脑没有硬盘,你不能再逻辑上看到 C 盘 D 盘,在这里硬盘就相当于是数据文件,而 C 盘就相当于是表空间。我们可以把多个数据文件组成一个表空间,然后在表空间里面存储数据,表空间和数据文件是对应的,一个表空间可以是由一个或多个数据文件组成的,但是一个数据文件只能在一个表空间当中。
表空间的作用:
对于不同的用户分配不同的表空间,对不同的模式对象分配不同的表空间,方便对用户操作和模式对象的管理。
可以将不同数据文件创建到不同的磁盘中,有利于管理磁盘空间,提高 i / o 性能,备份和恢复数据等。
SYSTEM 表空间:用于存放 Oracle 系统内部表和数据字典的数据,如表明、列名、用户名等。
SYSAUX 表空间:作为 SYSTEM 的辅助表空间,用于存放各种数据库工具(如企业管理器、StasPack、logMiner 等)用到的数据。用于存放各种模式的对象数据,如智能代理用户 DBSNMP、数据挖掘用户 ODM 等。
USERS 表空间:作为用户使用的表空间,可以在这个表空间上创建各种对象,如创建表,索引等。
TEMP 表空间:存放临时数据的特殊表空间,例如:当需要进行排序时,系统就将排序的数据临时存放在该表空间,排序处理完成后,即可释放排序数据所占用的空间,称之为临时表空间。
更多 Oracle 相关信息见Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12