Oracle数据库物理结构解析 (oracle数据库的物理结构包括)

Oracle是目前更流行的关系型数据库管理系统之一。Oracle数据库的物理结构是指Oracle数据库在存储上所采用的组织形式与架构。了解Oracle数据库的物理结构对于进行数据库管理和性能调优具有重要的作用。在本文中,我们将对Oracle数据库的物理结构进行全面系统的解析。

一、表空间

表空间是Oracle数据库管理空间的最小逻辑单元,物理上是一个或多个数据文件的。Oracle数据库可以包含一个或多个表空间。表空间包括系统表空间、用户表空间和临时表空间。系统表空间包含所有数据库对象的元数据,例如表、索引、视图等。用户表空间由数据库管理员或应用程序开发人员创建,用于存储用户数据对象,例如表、索引等。临时表空间用于排序和临时表存储等操作。

二、数据文件

数据文件是Oracle数据库中用来存储数据的物理文件,每个数据文件都是至少一个表空间的一部分。数据文件包括数据区、控制块、日志块和空闲块。数据区存储表空间中的数据和索引,控制块包含有关文件的元数据信息,例如文件大小、块数等。日志块包含事务处理的日志信息,用于恢复数据库。空闲块是未分配给任何对象的块。

三、段

段是Oracle数据库中存储数据的逻辑结构,由连续的块组成。每个表空间可以包含一个或多个段。段包括数据段、索引段、临时段和回滚段。数据段用于存储表和表的数据,索引段用于存储索引结构,临时段用于存储排序和临时表的数据,回滚段用于存储未提交事务的回滚信息。

四、区

区是Oracle数据库中的逻辑结构,是表空间中数据块的逻辑。每个区包含一组相邻的块,并按照相同的方式使用和管理。每个区包含一个记录头,头信息描述块的状态和类型。

五、块

块是Oracle数据库中的最小的物理存储单位,每个块由一组连续的字节组成。块通常的大小为2KB、4KB或8KB。块包括数据块、控制块和日志块。数据块存储表和索引的数据,控制块包含有关块的元数据信息,例如大小、状态等。日志块是用来存储数据库的日志信息,用于恢复数据库。

六、段空间管理

段空间管理是Oracle数据库中用于管理和分配段空间的机制。段空间管理基于页存储和页分配。页是段空间管理的基本单元。在Oracle数据库中,一个分配的页为了保证连续存储,在段中存在时连续的。

七、表空间空间管理

表空间空间管理用于管理和分配表空间的物理存储空间。Oracle数据库提供了多种表空间管理方式,例如统一管理、本地管理和自动扩展表空间等。

八、

Oracle数据库的物理结构是一个非常庞大复杂的系统,包含多种逻辑和物理结构。该系统的理解对于正确管理数据库和优化性能非常重要。在本文中,我们对Oracle数据库的物理结构进行了系统全面的解析,希望能够帮助读者更好地理解和管理Oracle数据库。

相关问题拓展阅读:

Oracle中逻辑结构和物理结构,他们之间的关系是什么?

1.1、物理结构:由构成数据库的操作系统文件组成,它是从操作系统的角度来分析数据库的组成,在操作系统中可以看得到的文件,也就是说它是数据库在操作系统中的存储位置。常见的物理结构包括:控制文件、数据文件、重作日志文件、归档日志文件、初始化参数文件、还有其它文件(密码文件、报警日志文件和后台及用户跟踪文件)。

1.2、逻辑结构:描述数据库从逻辑上如何存储数据库中的数据。它是从数据库的角度来分析数据的逻辑卖稿仿存储。常见的逻辑结构包括:表空间、数据段、扩展区间、块构成。需要明白的是:

*1、数据库逻辑上是由一个或多个表空间组成的,常见的表空间包括:系统表空间、系统辅助表空间、UNDO表空间、临时表空间、用户表空间

*2、表空间与数据文件是物理上的一对多的关系,既一个表空间对应一个或多个数据文件,但是一个数据文件只能属中纤于一个表空间

*3、表空间将数据库的物理结构与逻辑结构敬棚相连接

2、物理结构

2.1、控制文件 (Control files):主要记录数据库的物理结构及其他的一些控制信息,如数据库的名称、数据文件、日志文件的名称及位置。通常oracle会保留多个控制文件副本,并分别放在不同的物理位置,一旦其中的某个控制文件损坏,则可以通可其它的副本进行启动。

参数文件init.ora记录了控制文件的位置

控制文件包括如下主要信息

�6�1数据库的名字,检查点信息,数据库创建的时间戳

�6�1所有的数据文件,联机日志文件,归档日志文件信息

�6�1备份信息等

有了这些信息,Oracle就知道那些文件是数据文件,现在的重做日志文件是哪些,这些都是系统启动和运行的基本条件,所以他是Oracle运行的根本。如果没有控制文件系统是不可能启动的。控制文件是非常重要的,一般采用多个镜相复制来保护控制文件,或采用RAID来保护控制文件。控制文件的丢失,将使数据库的恢复变的很复杂。

控制文件信息可以从v$controlfile中查询获得

SQL> select * from v$controlfile;

STATUS NAME

—-

C:\ORACLE\ORADATA\ORCL\CONTROL01.CTL

C:\ORACLE\ORADATA\ORCL\CONTROL02.CTL

C:\ORACLE\ORADATA\ORCL\CONTROL03.CTL2.2、数据文件(Data files),注意可以与后面讲到的表空间进行对比,数据文件的详细信息记载在控制文件中。注意:SYSTEM表空间是不允许脱机的。在进行数据库恢复时,很多时候需要先将故障数据文件脱机。

可以通过如下方式查看数据文件:

SQL> select name,status,enabled from v$datafile;

NAMESTATUS ENABLED

-C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF ONLINE READ WRITE

C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS01.DBF ONLINE READ WRITE

C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSAUX01.DBF ONLINE READ WRITE

C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\USERS01.DBF ONLINE READ WRITE

C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\EXAMPLE01.DBF ONLINE READ WRITE

C:\ORACLE\ORADATA\ORCL\TEMP01.DBF ONLINE READ WRITE

2.3、重做日志文件(Redo files)用户对数据库进行的任何操作都会记录在重做日志文件。在了解重做日志之前必须了解重做日志的两个概念,重做日志组和重做日志组成员(Member),一个数据库中至少要有两个日志组文件,一组写完后再写另一组,即轮流写。每个日志组中至少有一个日志成员,一个日志组中的多个日志成员是镜相关系,有利于日志文件的保护,因为日志文件的损坏,特别是当前联机日志的损坏,对数据库的影响是巨大的。

联机日志组的交换过程叫做切换,需要特别注意的是,日志切换在一个优化效果不好的数据库中会引起临时的“挂起”。挂起大致有两种情况:

�6�1在归档情况下,需要归档的日志来不及归档,而联机日志又需要被重新利用

�6�1检查点事件还没有完成(日志切换引起检查点),而联机日志需要被重新利用

解决这种问题的常用手段是:

i.增加日志组

ii.增大日志文件成员大小

通过v$log可以查看日志组,v$logfile可以查看具体的成员文件。SQL> select group#,thread#,bytes,archived,members,archived,status from v$log; GROUP# THREAD# BYTES ARC MEMBERS ARC STATUS

5760 NONO CURRENT

5760 NONO INACTIVE

5760 NONO INACTIVE2.4、归档日志文件(Archived files)Oracle可以运行在两种模式之中,归档模式和不归档模式。如果不用归档模式,当然,你就不会有归档日志,但是,你的系统将不会是一个实用系统,Oracle不能保证数据能够被正确恢复,因为你可能会丢失数据。但是在归档模式中,为了保存用户的所有修改,在重做日志文件切换后和被覆盖之间系统将他们另外保存成一组连续的文件系列,该文件系列就是归档日志文件。

有人或许会说,归档日志文件占领我大量的硬盘空间,其实,具体想一想,你是愿意浪费一点磁盘空间来保护你的数据,还是愿意丢失你的数据呢?显而义见,我们需要保证我们的数据的安全性。其实,归档并不是一直占领你的磁盘空间,你可以把她备份到磁带上,或则删除上一次完整备份前的所有日志文件。2.5、初始化参数文件(Parameter file)initSID.ora或init.ora文件,因为版本的不一样,其位置也可能会不一样。在8i或10g中,通常位于$ORACLE_HOME/admin//Pfile下

初始化文件记载了许多数据库的启动参数,如内存,控制文件,进程数等,在数据库启动的时候加载(Nomount时加载),初始化文件记录了很多重要参数,对数据库的性能影响很大,如果不是很了解,不要轻易乱改写,否则会引起数据库性能下降。2.6、其他文件i . 密码文件。用于Oracle 的具有sysdba权限用户的认证。文件一般位于

$ORACLE_HOME/database/PWD.ora。

ii. 日志文件�6�1报警日志文件(alert.log或alrt.ora)

记录数据库启动,关闭和一些重要的出错信息。数据库管理员应该经常检查这个文件,并对出现的问题作出即使的反应。你可以通过以下SQL 找到他的路径

select value from v$PARAMETER where name =’background_dump_dest’;

VALUE

C:\oracle\admin\orcl\bdump

�6�1后台或用户跟踪文件

系统进程或用户进程出错前写入的信息,一般不可能读懂,可以通过ORACLE的TKPROF工具转化为可以读懂的格式。对于系统进程产生的跟踪文件与报警日志文件的路径一样,用户跟踪文件的路径,你可以通过以下SQL找到他的路径

select value from v$PARAMETER where name =’user_dump_dest’;

SQL> select value from v$PARAMETER where name =’user_dump_dest’;VALUE

C:\oracle\admin\orcl\udump3、逻辑结构

3.1、表空间(tablespace)

表空间是数据库中的基本逻辑结构,一系列数据文件的。一个表空间可以包含多个数据文件,但是一个数据文件只能属于一个表空间。3.2、 段(Segment)

段是对象在数据库中占用的空间,虽然段和数据库对象是一一对应的,但段是从数据库存储的角度来看的。一个段只能属于一个表空间,当然一个表空间可以有多个段。

表空间和数据文件是物理存储上的一对多的关系,表空间和段是逻辑存储上的一对多的关系,段不直接和数据文件。一个段可以属于多个数据文件,关于段可以指定扩展到哪个数据文件上面。

段基本可以分为以下四种

�6�1数据段(Data Segment)

�6�1索引段(Index Segment)

�6�1回滚段(Rollback Segment)

�6�1临时段(Temporary Segment)3.3、区间(Extent)

在一个段中可以存在多个区间,区间是为数据一次性预留的一个较大的存储空间,直到那个区间被用满,数据库会继续申请一个新的预留存储空间,即新的区间,一直到段的更大区间数(Max Extent)或没有可用的磁盘空间可以申请。

在ORACLE8i以上版本,理论上一个段可以无穷个区间,但是多个区间对ORACLE却是有性能影响的,ORACLE建议把数据分布在尽量少的区间上,以减少ORACLE的管理与磁头的移动,但是在某些特殊情况下,需要把一个段分布在多个数据文件或多个设备上,适当的加多区间数也是有很大好处的。3.4、Oracle数据块(Block)

ORACLE最基本的存储单位,他是OS数据块的整数倍。ORACLE的操作都是以块为基本单位,一个区间可以包含多个块(如果区间大小不是块大小的整数倍,ORACLE实际也扩展到块的整数倍)。3.5、基本表空间介绍

3.5.1、系统辅助表空间(sysaux)

SYSAUX表空间在Oracle Database 10g中引入,作为SYSTEM表空间的辅助表空间.

以前一些使用独立表空间或系统表空间的数据库组件现在在SYSAUX表空间中创建.

通过分离这些组件和功能,SYSTEM表空间的负荷得以减轻.反复创建一些相关对象及组件引起SYSTEM表空间的碎片问题得以避免。

3.5.2、系统表空间(System)

该表空间包含的数据文件称为系统数据文件。

该存放系统表和数据字典,一般不放用户的数据,但是用户脚本,如过程,函数,包等却是保存在数据字典中的。

名词解释:数据字典

数据字典是一些系统表或视图,他存放系统的信息,他包括数据库版本,数据文件信息,表与索引等段信息,系统的运行状态等各种和系统有关的信息和用户脚本信息。数据库管理员可以通过对数据字典的查询,就可以了解到Oracle的运行状态。

查看数据数据字典的SQL

select * from dict;

查看内部系统表的SQL

select * from v$fixed_view_definition;

大量的读少量的写是该表空间的一个显著的特点。再次提醒:该表空间不能脱机

3.5.3、 临时表空间(Temporary)

该表空间包含的数据文件称为临时数据文件

主要存放用户的排序等临时数据,因为没有办法在一个永久表空间上开辟临时段,所以就必须有一个临时表空间,主要用于不能在内存上进行的排序操作。我们必须为用户指定一个临时表空间。

临时段占有的空间会在下次系统启动的时候全部被释放。

3.5.4、回滚段表空间(Rollback)

如果数据库进行对数据的修改,那么就必须使用回滚段,回滚段是用来临时存放修改前的数据(UNDO)。回滚段通常都放在一个单独的表空间上(回滚表空间),避免表空间碎片化,这个表空间包含的数据文件就是回滚数据文件。在Oracle9i中,提供了单独的表空间用于保存回滚段,不再需要手工干预。

*1回滚段在系统中的作用

当数据库进行更新插入删除等操作的时候,新的数据被更新到原来的数据文件,而旧的数据(Before Image)就被放到回滚段中,如果数据需要回滚,那么可以从回滚段将数据再复制到数据文件中。来完成数据的回滚。在系统恢复的时候, 回滚段可以用来回滚没有被commit 的数据,解决系统的一直性读。

回滚段在什么情况下都是大量的写,一般是少量读,因此建议把回滚段单独出来放在一个单独的设备(如单独的磁盘或RAID),以减少磁盘的IO争用。

*2、回滚段的工作方式

�6�1一个回滚表空间可以被划分成多个回滚段.

�6�1一个回滚段可以保存多个会话的数据.

�6�1回滚段是一个圆形的数据模型

3.5.5、用户表空间(User)

其包含的数据文件称为用户数据文件

一般是由用户建立,来存取用户数据的表空间,一般有两类常见的用户型数据,数据和索引,一般来说,如果条件许可的话,可以考虑放在不同的磁盘上。

3.5.6 例子表空间(example):例子表空间,可以不管。,它是数据库在操作系统中的存储位置。常见的物理结构包括:控制文件、数据文件、重作日志文件、归档日志文件、初始化参数文件、还有其它文件(密码文件、报警日志文件和后台及用户跟踪文件)。

什么是Oracle数据库

用性强,,扩展性强,,数据安全性强,,稳定性强

Oracle数据库的体系结构

Oracle数据库包括Oracle数据库服务器和客户端。

Oracle数据库服务器:

Oracle Server是一个对象一关系数据库管理系统。它提供开放的、全面的、和集成的信息管理方法。每个Server由一个 Oracle DB和一个 Oracle Server实例组成。它具有场地自治性(Site Autonomy)和提供数据存储透明机制,以此可实现数据存储透明性。每个 Oracle数据库对应唯一的一个实例名SID,Oracle数据库服务器启动后,一般至少有以下几个用户:Internal,它不是一个真实的用户名,而是具有SYSDBA优先级的Sys用户的别名,它由DBA用户使用来完成数据库的管理任务,包括启动和关闭数据库;Sys,它是一个 DBA用户名,具有更大的数据库操作权限;System,它也是一个 DBA用户名,权限仅次于 Sys用户。

客户端:

为数据库用户操作端,由应用、工具、SQL* NET组成,用户操作数据库时,必须连接到一服务器,该数据库称为本地数据库(Local DB)。在网络环境下其它服务器上的 DB称为远程数据库(Remote DB)。用户要存取远程 DB上的数据时,必须建立数据库链。

Oracle数据库的体系结构包括物理存储结构和逻辑存储结构。由于它们是相分离的,所以在管理数据的物理存储结构时并不会影响对逻辑存储结构的存取。

1.逻辑存储结构

它由至少一个表空间和数据库模式对象组成。这里,模式是对象的,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同一词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。而其中的模式对象和关系形成了数据库的关系设计。

数据块(Block):是数据库进行UO操作的最小单位,它与操作系统的块不是一个概念。oracle数据库不是以操作系统的块为单位来请求数据,而是以多个Oracle数据库块为单位。

段(Segment):是表空间中一个指定类型的逻辑存储结构,它由一个或多个范围组成,段将占用并增长存储空间。

其中包括:

数据段:用来存放表数据;.

索引段:用来存放表索引;

临时段:用来存放中间结果;

回滚段:用于出现异常时,恢复事务。

范围(Extent):是数据库存储空间分配的逻辑单位,一个范围由许多连续的数据块组成,范围是由段依此分配的,分配的之一个范围称为初始范围,以后分配的范围称为增量范围。

优点有:

■ 可用性强

■ 可扩展性强

■ 数据安全性强

■ 稳定性强

Oracle数据库的体系结构

Oracle数据库包括Oracle数据库服务器和客户端。

Oracle数据库服务器:

Oracle Server是一个对象一关系数据库管理系统。它提供开放的、全面的、和集成的信息管理方法。每个Server由一个 Oracle DB和一个 Oracle Server实例组成。它具有场地自治性(Site Autonomy)和提供数据存储透明机制,以此可实现数据存储透明性。每个 Oracle数据库对应唯一的一个实例名SID,Oracle数据库服务器启动后,一般至少有以下几个用户:Internal,它不是一个真实的用户名,而是具有SYSDBA优先级的Sys用户的别名,它由DBA用户使用来完成数据库的管理任务,包括启动和关闭数据库;Sys,它是一个 DBA用户名,具有更大的数据库操作权限;System,它也是一个 DBA用户名,权限仅次于 Sys用户。

客户端:

为数据库用户操作端,由应用、工具、SQL* NET组成,用户操作数据库时,必须连接到一服务器,该数据库称为本地数据库(Local DB)。在网络环境下其它服务器上的 DB称为远程数据库(Remote DB)。用户要存取远程 DB上的数据时,必须建立数据库链。

Oracle数据库的体系结构包括物理存储结构和逻辑存储结构。由于它们是相分离的,所以在管理数据的物理存储结构时并不会影响对逻辑存储结构的存取。

1.逻辑存储结构

它由至少一个表空间和数据库模式对象组成。这里,模式是对象的,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同一词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。而其中的模式对象和关系形成了数据库的关系设计。

数据块(Block):是数据库进行UO操作的最小单位,它与操作系统的块不是一个概念。oracle数据库不是以操作系统的块为单位来请求数据,而是以多个Oracle数据库块为单位。

段(Segment):是表空间中一个指定类型的逻辑存储结构,它由一个或多个范围组成,段将占用并增长存储空间。

其中包括:

数据段:用来存放表数据;.

索引段:用来存放表索引;

临时段:用来存放中间结果;

回滚段:用于出现异常时,恢复事务。

范围(Extent):是数据库存储空间分配的逻辑单位,一个范围由许多连续的数据块组成,范围是由段依此分配的,分配的之一个范围称为初始范围,以后分配的范围称为增量范围。

优点有:

■ 可用性强

■ 可扩展性强

■ 数据安全性强

■ 稳定性强

oracle数据库的物理结构包括的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于oracle数据库的物理结构包括,Oracle数据库物理结构解析,Oracle中逻辑结构和物理结构,他们之间的关系是什么?,什么是Oracle数据库的信息别忘了在本站进行查找喔。


数据运维技术 » Oracle数据库物理结构解析 (oracle数据库的物理结构包括)