搜索
首页数据库mysql教程Oracle 11g 的 逻辑存储结构和物理存储结构

逻辑存储结构 在操作系统中无法找到逻辑存储结构所对应的文件,但通过查询Oracle数据库的数据字典,可以找到逻辑存储结

逻辑存储结构

        在操作系统中无法找到逻辑存储结构所对应的文件,但通过查询Oracle数据库的数据字典,可以找到逻辑存储结构的描述。

        逻辑存储结构包括表空间,段,区,块。简单的说,逻辑存储结构之间的关系是:多个块组成区,多个区组成段,多个段组成表空间,多个表空间组成逻辑数据库。

        一个区只能在一个数据文件中,一个段中的各个区可以分别在多个数据文件中。组成区的块是连续的。由于逻辑的块对应磁盘空间中某个固定大小的尺寸(一般为操作系统数据库的整数倍),所以逻辑存储结构也是有大小的。

一、 表空间(tablespace) 

下面的表格显示的是oracle11g自动创建的表空间名称及其说明

名称

分类

说明

EXAMPLE

非系统表空间

示例表空间,存放示例数据库的方案对象信息及其培训资料

SYSAUX

系统表空间

辅助系统表空间,用于减少system表空间的负荷,提高系统的工作效率。是oracle 10g新增加的表空间

SYSTEM

系统表空间

系统表空间,存放关于表空间名称、控制文件、数据文件等管理信息,存放着方案对象(如表,索引,同义词,序列)的定义信息,存放着所有pl/sql 程序(如过程,函数,包,触发器)的源代码,是oracle数据库中最重要的表空间。它属于SYS和SYSTEM方案,仅被SYS和SYSTEM或其他具有足够权限的用户使用。即使是SYS 和SYSTEM用户也不能删除或重命名该空间。他是用户的默认表空间,即当用户在创建一个对象时,如果没有指定特定的表空间,该对象的数据也会被保存在SYSTEM表空间中。

TEMP

系统表空间

临时表空间,存放临时表和临时数据,用于排序。每个数据库都应该有一个(或创建一个)临时表空间,以便在创建用户时将其分配给用户,否则就会将TEMP表空间作为临时表空间。

UNDOTBS1

非系统表空间

重做表空间,存放数据库的有关重做的相关信息和数据

USERS

非系统表空间

用户表空间,存放永久性的用户对象的数据和私有信息,因此也被称为数据表空间。每个数据库都应该有一个(或创建一个)用户表空间,以便在创建用户时将其分配给用户,否则将会使用SYSTEM表空间来保存数据,而这种做法是不好的。一般讲,系统用户使用SYSTEM表空间,而非系统用户使用USERS表空间

 

二、 段(segment)(这块儿没有详细记录)

        段用于存储表空间中某一种特定的、具有独立存储结构的数据库对象的数据,它有一个或多个连续的区组成。当创建表、索引、簇等对象时,oracle就会为这些对象分配存储空间(即段),以便存储它们的数据。按照段中所存储的数据的特征、用途不同,可以分为以下几种:

段类型

名称

段类型

名称

Index partition

索引分区段

Deferred rollback

延迟回退段

Table partition

表分区段

Undo

撤销段(还原段)

Table

表段(数据段)

Temporary

临时段

Cluster

簇段

Cache

高速缓存段

Index

索引段

Lob

二进制大对象段

Rollback

回退段

Lobindex

二进制大对象索引段

        段随着存储数据的增加而逐渐变大。段的增大过程是通过增加区得个数而实现的(每次增加一个区)。每个区的大小事块得整数倍。

三、 区(extent)

        区是由物理上连续存放的块所组成的。区 是oracle存储分配的最小单位。一个或多个块组成区,一个或多个区组成段。一个区只能属于一个数据文件。

        当在数据库中创建带有实际存储结构的方案对象时(如表、索引),oracle将为方案对象分配若干个区(视该方案的初始大小而定),以便组成一个对应的段,来为该方案对象提供初始的存储空间。当段中已分配的区都写满,oracle就要在该方案对象所在的表空间中为该段分配下一个新的空白区,以便容纳更多的数据。 

四、 块(block)

        块是最小的数据管理单位,即oracle的所有存储的i/o操作都是以块为单位的。相对应的,操作系统执行i/o操作的最小单位是操作系统块。块得大小是操作系统块得大小的整数倍。

        块得大小是一个表空间的属性。SYSTEM和SYSAUX表空间具有相同的、标准的块大小,这个大小是在创建数据库时(会同时创建这两个表空间)由DB_BLOCK_SIZE初始化参数指定的,但在创建数据库之后这个参数值不能改变。

物理存储结构

        物理存储结构是实际的数据存储单元,对应于操作系统文件,比逻辑存储结构更易理解。oracle数据库就是由驻留在服务器的磁盘上的这些操作系统文件组成的。这些文件有控制文件,数据文件和重做日志文件。

        与oracle数据库有关,但从技术上说不属于oracle数据库的附属文件有密码文件(PWD.ORA),参数文件(SPFILE.ORA),归档重做日志文件。

        物理存储结构与逻辑存储结构之间在操作上的一个区别是,逻辑存储结构只有创建、删除的操作,而物理存储结构除了创建、删除之外,还有一个重要的、将其移动到另外一个位置(包括改变其名称)的操作,这样就可以实现多路复用(控制文件、中作日志文件)和将它们安排到不同磁盘位置、更换名称的功能了。

一、 控制文件

        控制文件是一个很小的(通常是数据库中最小的)文件,大小一般在1~5M左右,为二进制文件。但它是数据库中的关键性文件,它对数据库的成功启动和正常运行都是至关重要的,因为它存储了在其他地方无法获得的关键信息,这些信息包括:

        1、数据库的名称

        2、数据文件和重做日志文件的名称、位置、联机\脱机状态和大小

        3、发生磁盘故障或用户错误时,用于恢复数据库的信息(日志序列号,检查点)

        在数据库的运行过程中,每当出现数据库检查点或修改数据库的结构之后,oracle(只能有oracle本身)就会修改控制文件的内容。DBA可以通过OEM工具修改控制文件中的部分内容,但DBA和用户都不应该认为的修改控制文件中的内容,否则会破坏控制文件。

二、 数据文件

        数据文件是实际存储插入到数据库中的实际数据的操作系统文件。数据以一种oracle特有的格式被写入到数据文件,其他程序无法读取数据文件中的数据。

        数据文件的大小与他们所存储的数据量的大小直接相关。写入数据后会由于自动分配新区而增大,但删除数据却不会使其减少,而只能使得其中有更多的空闲区。

        除了SYSTEM表空间之外,任何表空间都可以有联机状态切换为脱机状态。当表空间进入脱机状态时,组成该表空间的数据文件也就进入脱机状态了。可以将表空间的某一个数据文件单独的设置为脱机状态,以便进行数据库的备份或恢复,否则是不能备份的。

三、 重做日志文件

        当用户对数据库进行修改的时候,实际上是先修改内存中的数据,过一段时间后,再集中将被村中的修改结果成批的写入到上面的数据文件中。oracle采取这样的做法,主要是出于性能上的考虑,因为针对数据操作而言,内存的速度比硬盘的速度要快成千上万倍。

        oracle利用“(联机)重做日志文件”随时保存修改结果,即oracle随时将内存中的修改结果保存到“重做日志文件”中。“随时”表示在将修改结果写入到数据文件之前,可能已经分几次写入到“重做日志文件”。因此,即使发生故障导致数据库崩溃,,oracle也可以利用重做日志文件中的信息来恢复丢失的数据。只要某项操作的重做信息没有丢失,就可以利用这些重做信息来重现该操作。

        oracle是以循环方式来使用重做日志文件的,所以每个数据库至少需要两个重做日志文件。当第一个重做日志文件被写满后,后台进程LGWR(日志写进程)开始写入第二个重做日志文件;当第二个重做日志文件被写满后,又始写入第二个重做日志文件,以此类推。 

四、 其他文件(这块儿没仔细看)

        其他文件包括参数文件、口令文件、归档重做日志文件、预警和跟踪文件等。

Oracle 11g 的 逻辑存储结构和物理存储结构

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
减少在Docker中使用MySQL内存的使用减少在Docker中使用MySQL内存的使用Mar 04, 2025 pm 03:52 PM

本文探讨了Docker中的优化MySQL内存使用量。 它讨论了监视技术(Docker统计,性能架构,外部工具)和配置策略。 其中包括Docker内存限制,交换和cgroups

mysql无法打开共享库怎么解决mysql无法打开共享库怎么解决Mar 04, 2025 pm 04:01 PM

本文介绍了MySQL的“无法打开共享库”错误。 该问题源于MySQL无法找到必要的共享库(.SO/.DLL文件)。解决方案涉及通过系统软件包M验证库安装

如何使用Alter Table语句在MySQL中更改表?如何使用Alter Table语句在MySQL中更改表?Mar 19, 2025 pm 03:51 PM

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

在 Linux 中运行 MySQl(有/没有带有 phpmyadmin 的 podman 容器)在 Linux 中运行 MySQl(有/没有带有 phpmyadmin 的 podman 容器)Mar 04, 2025 pm 03:54 PM

本文比较使用/不使用PhpMyAdmin的Podman容器直接在Linux上安装MySQL。 它详细介绍了每种方法的安装步骤,强调了Podman在孤立,可移植性和可重复性方面的优势,还

什么是 SQLite?全面概述什么是 SQLite?全面概述Mar 04, 2025 pm 03:55 PM

本文提供了SQLite的全面概述,SQLite是一个独立的,无服务器的关系数据库。 它详细介绍了SQLite的优势(简单,可移植性,易用性)和缺点(并发限制,可伸缩性挑战)。 c

在MacOS上运行多个MySQL版本:逐步指南在MacOS上运行多个MySQL版本:逐步指南Mar 04, 2025 pm 03:49 PM

本指南展示了使用自制在MacOS上安装和管理多个MySQL版本。 它强调使用自制装置隔离安装,以防止冲突。 本文详细详细介绍了安装,起始/停止服务和最佳PRA

如何为MySQL连接配置SSL/TLS加密?如何为MySQL连接配置SSL/TLS加密?Mar 18, 2025 pm 12:01 PM

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么?哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什么?Mar 21, 2025 pm 06:28 PM

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境