花瓣小跑 发表于 2024-8-24 15:23:26

OCP-042之:数据库逻辑机构

数据库逻辑布局

1 存储关系

Oracle数据库逻辑上是由一个或多个表空间组成的。
表空间物理上是由一个或多个数据文件组成的;而在逻辑上表空间又是由一个或多个段组成的。
数据库空间分配的逻辑单元是数据块,扩展区,段和表空间。在物理级别,数据存储在磁盘上的数据文件中。数据文件中的数据存储在操纵系统块中。
在Oracle数据库中,通过为每种不同的数据对象分配不同的段,来保存数据。比方EMP表的全部数据会存放在EMP段中。在Oracle数据库中,段是由一个或多个区组成的,而区又是由一连存储的数据块所组成的。块则是数据库的I/O最小的单位。
1.1 存储布局

https://i-blog.csdnimg.cn/direct/36d83cc5a0ba41fb8475e706e927fb10.png#pic_center
Oracle数据库将表空间数据存储在物理数据文件中。
每个非分区的模式对象和对象的每个分区都存储在它自己的段中,该段只属于一个表空间。比方,非分区表的数据存储在单个段中,而该段又存储在一个表空间中。表空间和数据文件密切相干,但有紧张区别:
每个表空间由一个或多个数据文件组成,这些文件符合运行Oracle数据库的操纵系统。数据库的数据共同存储在位于数据库的每个表空间中的数据文件中。段可以跨越一个或多个数据文件,但不能跨越多个表空间。数据库必须具有SYSTEM和SYSAUX表空间。SYSTEM在数据库创建期间,Oracle数据库会自动为表空间分配任何数据库的第一个数据文件。该SYSTEM表包含了数据字典,一组表包含数据库的元数据。通常,数据库还具有undo表空间和temp表空间(通常以其命名TEMP)。
数据库可分别为被称为表空间的逻辑存储单元。每一个表空间可以包含很多的Oracle逻辑数据块。
DB_BLOCK_SIZE参数指定了逻辑块的大小。逻辑块的大小范围为2KB至32KB,默认大小为8KB。特定命目标相邻逻辑块构成了一个区。为特定逻辑布局分配的一组区构成了一个段。Oracle数据块是逻辑I/O的最小单位。
SYS@orcl>show parameter db_block

NAME                                     TYPE       VALUE
------------------------------------ ----------- ------------------------------
db_block_buffers                     integer       0
db_block_checking                     string       FALSE
db_block_checksum                     string       TYPICAL
db_block_size                             integer       8192
1.2 如何存储表数据

创建表时,就会创建段来保存表数据。表空间包含一组段。从逻辑上讲,表包含由列值组成的行。行最终将以行片断的情势存储在数据库块中。之以是称为行片断,是由于某些环境下,不可以在一个位置存储一整行。当插入行由于太长而不适合单个块时,或者由于更新而导致现有行大小超出了行的当前空间时,就会发生这种环境。
2 表空间和数据文件

Oracle 数据库(tablespace)是由多少个表空间构成的。任何数据库对象在存储时都必须存储在某个表空间中。表空间对应于多少个磁盘文件,即表空间是由一个或多个磁盘文件构成的。表空间相称于操纵系统中的文件夹,也是数据库逻辑布局与物理文件之间的一个映射。每个数据库至少有一个表空间,表空间的大小即是全部附属于它的数据文件大小的总和。
2.1 常用表空间


[*]系统表空间
系统表空间(system tablespace)是每个Oracle数据库都必须具备的。其功能是在系统表空间中存放诸如表空间名称、表空间所含数据文件等数据库管理所需的信息。系统表空间的名称是不可更改的。系统表空间必须在任何时间都可以用,也是数据库运行的须要条件。因此,系统表空间是不能脱机的。

[*]SYSAUX表空间
SYSAUX表空间是随着数据库的创建而创建的,它充当SYSTEM的辅助表空间,主要存储除数据字典以外的其他对象。SYSAUX也是很多Oracle数据库的默认表空间,它减少了由数据库和DBA管理的表空间数量,低落了SYSTEM表空间的负荷。

[*]临时表空间
相对于其他表空间而言,临时表空间(temp tablespace)主要用于存储Oracle数据库运行期间所产生的临时数据。数据库可以建立多个临时表空间。当数据库关闭后,临时表空间中全部数据将全部被清除。除临时表空间外,其他表空间都属于永世性表空间。
一个临时表空间中仅包含会话时间短暂的数据。永世模式对象不能驻留在临时表空间中。一个临时文件存储临时表空间的数据。临时表空间可以改善不适合内存的多个排序操纵的并发性。这些表空间还进步了各种空间管理操纵的效率。

[*]撤销表空间
Oracle数据库利用撤消数据实验以下操纵:回滚活动事务,恢复已终止的交易,提供读取同等性,实验一些逻辑闪回操纵。
2.2 表空间和数据文件的关系

数据库、表空间和数据文件是紧密相干的,但它们之间又有着紧张区别:


[*]Oracle数据库由一个或多个称为表空间的逻辑存储单元组成,表空间作为一个整体存储数据库中的全部数据,而且一个表空间只能属于一个数据库。数据库的大小是该数据库中所表空间大小总和。
[*]从物理讲,Oracle数据库内的每个表空间由一个或多数据文件组成,而且一个数据文件只能属于一个表空间。表空间大是全部数据文件大小的总和。这些数据文件与Oracle运行所在的操纵系统的文件有一样的物理布局。
[*]数据库的全部数据都存储在数据文件中,数据库的每个表空间都由这些数据文件组成。比方,最简单的Oracle数据库只有一个表空间和一个数据文件。
从Oracle Database 12c开始,您可以利用该ALTER DATABASE MOVE DATAFILE语句在数据库打开并访问该文件时将在线数据文件从一个物理文件移动到另一个物理文件。您可以利用此技能来实现以下目标:


[*]将表空间从一种存储移动到另一种存储
[*]将不经常访问的数据文件移动到较低本钱的存储
[*]将表空间设置为只读并将其数据文件移动到一次写入存储,比方一次写入多次读取(WORM)驱动器
[*]将数据库移动到Oracle ASM
2.3 数据字典管理和本地管理方式

在表空间中区是最小的空间分配单位,对表空间的管理是以区为单位举行的。根据管理方式的不同,表空间分为本地管理表空间和字典管理表空间:

[*]本地管理方式的表空间:在表空间内通过位图管理区。在本地管理的表空间中,每个数据文件内都维护一个位图,以相识该数据文件内块的空闲或利用状态。位图中的每个位对应于一个块或一组块。其特点是分配了的某个区或

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: OCP-042之:数据库逻辑机构