第六篇 再述oracle数据库体系结构 之二:逻辑结构
oracle的逻辑结构包括表空间(tablespace),段(segment),数据块(data block)以及模式对象(schema)。
oracle数据库在逻辑上是由多个表空间组成的,表空间在物理上包含一个或多个数据文件。而数据文件大小是块大小的整数倍;表空间中存储的对象叫段,比如数据段,索引段,和回退段。段由区组成,区是磁盘分配的最小单位。段的增大是通过增加区的个数来实现的。每个区的大小是数据块大小的整数倍,区的大小可以不相同;数据块是数据库中最小的I/O单位,同时也是内存数据缓冲区的单位,及数据文件存储空间单位。块的大小由参数DB_BLOCK_SIZE设置,其值应设置为操作系统块大小的整数倍。
一、表空间
1.什么是表空间?
表空间是数据库中最大的逻辑单位,每一个表空间由一个或多个数据文件组成,一个数据文件只能与一个表空间相联系。每一个数据库都有一个SYSTEM表空间,该表空间是在数据库创建或数据库安装时自动创建的,用于存储系统的数据字典表,程序系统单元,过程函数,包和触发器等,也可用于存储用户数据表,索引对象。
表空间具有在线(online)和离线(offline)属性,可以将除SYSTEM和RBS以外的其他作何表空间置为离线。
查询表空间的文件信息:SELECT * FROM DBA_DATA_FILES。查询表空间的空闲空间信息:SELECT * FROM DBA_FREE_SPACE。若表空间的剩余空间不够,可以重新设置数据文件的大小:ALTER DATABASE DATAFILE 'filenamespec' RESIZE 500m。查询数据库中的表空间信息:SELECT * FROM DBA_TABLESPACE。
2.表空间的特性
a.限制用户可以使用的磁盘空间大小
SQL>ALTER USER user1 QUOTA 100M ON tablespace1
b.设置为离线、在线、只读、读写
SQL>ALTER TABLESPACE tbs1 ONLINE;
SQL>ALTER TABLESPACE tbs1 OFFLIKE;
SQL>ALTER TABLESPACE tbs1 READ ONLY;
SQL>ALTER TABLESPACE tbs1 READ WRITE;
注意,在表空间被设置为READ ONLY或OFFLINE之后,该表空间数据文件的同步信息将不能改变,从而会造成不同步。在表空间置为READ WRITE或ONLINE之后,使用命令ALTER SYSTEM SWITCH LOGFILE强制执行多次日志切换后,系统自动保持所有数据文件的同步。
不能将SYSTEM表空间置为READ ONLY或OFFLINE。如果undo空间中已经创建了回退段,且该回退段的状态为ONLINE,则undo表空间不能设置为READ ONLY或OFFLINE。
c.备份与恢复表空间
数据库备份时,可以只备份一个独立的表空间。表空间备份可以在线执备份也可以离线冷备份。
d.优化I/O性能,应将表空间中的各数据文件放在不同的磁盘以平衡I/O。
3.临时表空间
临时表空间用于为用户排序的ORDER BY语句使用。创建数据库时可以指定数据库的默认临时表空间。在创建用户的时候可以指定用户的默认临时表空间。
SQL>CREATE USER fey IDENTIFIED BY 12345 TEMPORARY TABLESPACE temp;
在oracle8i中,如果创建用户时未指出用户的临时表空间,系统使用SYSTEM表空间作为该用户的临时表空间。而在oracle10g中,如果创建用户时未指出用户的临时表空间,系统使用TEMP表空间作为该用户的临时表空间。
二、段
数据库的段可以分为四类:数据段、索引段、回退段、临时段。
1.数据段
数据段是用于存储数据的段,他存储在数据表空间中。每一个表都有一个数据段(聚簇除外),表的数据存储在数据段中,默认情况下段名与表名相同。以下语句查询段的信息:
SQL>SELECT SEGMENTNAME,TABLESPACE,NAME,BYTES,BLOCKS FROM USER_EXTENTS;
2.索引段
索引段用于存储索引,以下语句查询索引信息:
SQL>SELECT * FROM ALL_INDEXS
SQL>SELECT * FROM USER_INDEXS
3.回退段
回退段用于存储用户数据修改之前的值,因而可以在特定条件下回退数据。回退段与事务是一对多的关系,一个事务只能使用一个回退段,而一个回退段可存放一个或多个事务的回退数据。
在oracle8i及之前的版本中,管理回退段是项很复杂的工作,管理员需要根据每个事务的大小和事务数量来确定、计算回退段的数量及存储参数,在oracle9i之后,oracle增加了undo表空间,由系统自动管理它。从此不再需要考虑对回退段的管理。参数undo_management决定数据库使用的是回退段还是undo表空间,其值为auto表示使用undo表空间自动管理,manual表示手动管理回退段。
4.临时段
临时段用于order by语句的排序以及一些汇总。
三、区
区是磁盘空间分配的最小单位。磁盘按区划分,每次至少分配一个区。区存储于段中,它由连续的数据块组成。
一个段中,最小的区的个数是由参数MINEXTENTS来确定。参数MAXEXTENTS决定一个数据段中的区的最大个数。这些参数是可以在线动态修改的。
区的分配过程中,每次至分配5个区,如果所剩的空闲空间不够5个区,就会出现错误:ORA-01653。
可以通过字典dba_tablespace查询表空间中区的信息。可以通过字典user_table查询段中区的信息。可以通过字典user_extents查询区的分配状况。
四、数据块
数据块是数据中中最小的数据组织单位与管理单位,是数据文件磁盘存储空间单位,也是数据库I/O 的最小单位,数据块大小由DB_BLOCK_SIZE参数决定,不同的oracle版本DB_BLOCK_SIZE的默认值是不同的。
9i以前的版本只能设定一种块大小,在9i及10g中,可以设定多种块大小,不同表空间可以指定不同的块大小。
五、模式对象
模式对象是一种应用,包括:表、视图、聚簇、索引序列生成器、同义词、哈希、程序单元、数据库链等。模式对象以后在oracle schema专栏中详细说明。
分享到:
相关推荐
以上是对Oracle数据库体系结构的基本介绍,深入学习还包括对Oracle的SQL语法、存储过程、触发器、视图、约束、分区表等特性的理解和应用。通过理解这些核心概念,可以更好地管理和优化Oracle数据库,提升系统的稳定...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其复杂而高效的设计使得它在企业...通过深入学习Oracle数据库体系结构,不仅可以提升数据库管理技能,还能为后续的数据库优化、故障排查等工作打下坚实的基础。
Oracle数据库体系结构主要由以下几部分构成:Oracle数据库服务器、Oracle实例、Oracle数据库的物理结构和Oracle数据库的逻辑结构。接下来我们将详细探讨这些组成部分。 Oracle数据库服务器是指运行Oracle数据库软件...
本文主要探讨了Oracle数据库体系结构的逻辑层面,包括表空间、段、数据块以及模式对象。 首先,表空间(Tablespace)是Oracle数据库的最高级别的逻辑存储单元。每个表空间由一个或多个数据文件(Data Files)组成,...
综上所述,Oracle数据库体系结构是一个深度集成的系统,涉及内存管理、进程协调、数据存储和访问、事务处理、安全性等多个方面。理解和掌握这些概念对于有效地管理和优化Oracle数据库至关重要。
在深入探讨Oracle数据库体系结构之前,我们先简单了解一下Oracle的主要组件及其作用。 1. **数据库实例**:Oracle数据库实例是内存结构和后台进程的集合,它们一起管理和处理对数据库的请求。内存结构包括数据缓冲...
Oracle数据库是业界广泛应用的关系型数据库管理系统,它的体系结构是理解和管理数据库的关键。Oracle数据库的体系结构可以分为物理结构和...对于希望深入掌握Oracle数据库体系结构的读者来说,需要进一步学习和实践。
### Oracle数据库体系结构知识点 #### 一、Oracle体系结构简介 **Oracle Server**: Oracle服务器包含两个主要部分:数据库(Database)和实例(Instance)。 - **Database**: 包括数据文件(Datafiles)、控制文件...
在实验“实验2_Oracle数据库体系结构”中,我们将深入理解Oracle数据库的关键组成部分。 首先,Oracle数据库的物理存储结构由数据文件、重做日志文件、控制文件和参数文件组成。 1. **数据文件**(Data Files):...
Oracle数据库管理体系结构是指Oracle数据库的逻辑和物理结构,它包括数据库的存储结构、进程结构、内存结构等方面。 Oracle数据库管理体系结构是Oracle数据库的核心组件,负责管理和维护数据库的所有资源和数据。 ...
### Oracle数据库体系结构详解 #### 一、Oracle数据库的核心竞争力 Oracle数据库因其强大的核心竞争力而闻名于世,这些优势体现在可扩展性、可靠性和可管理性三个方面。 **1. 可扩展性** - **定义**: Oracle...
Oracle数据库是一种广泛使用的大型关系型数据库管理系统,其体系结构复杂且高效。理解Oracle数据库的体系结构对于管理和优化数据库性能至关重要。 首先,Oracle的逻辑结构主要包括以下几个部分: 1. **表空间...
Oracle数据库体系结构主要由以下几个关键组件构成: 1. **实例(Instance)**:实例是Oracle数据库在内存中的表现形式,它由系统全局区(SGA)、程序全局区(PGA)和后台进程组成。系统全局区存储共享数据,如数据...
Oracle数据库体系结构主要包括三个方面:内存结构、进程结构和存储结构。 1. **内存结构**: - **System Global Area (SGA)**:这是Oracle数据库中所有进程共享的一块内存区域,包含了数据库缓存、数据字典缓存、...
第三部分:管理Oracle数据库 第十六章:Oracle ASM 管理 第十七章:逻辑备份与恢复 第十八章:物化视图。 由于文件过大,只提供百度网盘下载地址和提取码,请放心下载。 信誉第一,如有任何问题,可以给我发私信或者...
《Oracle_Database 9i10g11g编程艺术:深入数据库体系结构(第二版)》是一本专为IT专业人士准备的深度学习Oracle数据库架构和技术的书籍。这本书的源码部分提供了丰富的实践材料,帮助读者更好地理解Oracle数据库的...
《Oracle Database 9i/10g/11g编程艺术:深入数据库体系结构(第2版)》是一本专为Oracle数据库开发者和管理员精心编写的权威指南。这本书全面覆盖了Oracle数据库9i、10g和11g版本的核心技术和最佳实践,旨在帮助...
1. **Oracle数据库体系结构概述** Oracle数据库的体系结构可以分为两个主要部分:Oracle实例和Oracle数据库。实例是Oracle运行时的内存结构,而数据库则是实际存储数据的物理文件集合。两者结合提供了完整的数据库...
1. **Oracle数据库体系结构** - Oracle数据库由数据库实例和存储结构组成。实例是运行在服务器上的后台进程和内存区域的集合,负责管理数据库;而数据库本身则是存储在磁盘上的数据文件、控制文件、日志文件等物理...