Oracle数据库系统结构一(存储结构)
1.Oracle数据库系统结构概述
Oracle数据库由存放在磁盘上的数据库(DB)和对磁盘上的数据库进行管理的数据库管理系统(DBMS)两部分构成,分别对应着数据库的存储结构和软件结构。
Oracle数据库的存储结构(Storage Structure)分为物理存储结构和逻辑存储结构两种,分别描述了在操作系统中和数据库系统内部数据的组织管理方式。其中,物理存储结构表现为操作系统中一系列文件)逻辑存储结构是对物理存储结构的逻辑组织与管理。
Oracle数据库的软件结构,即Oracle实例(Instance),包括内存结构与后台进程结构两部分。
具体关系如下图所示:
用户的所有操作都是通过实例完成的,首先在内存结构中进行,在一定条件下由数据库的后台进程结构写入数据库的物理存储结构做永久保存。
2.Oracle数据库存储结构
oracle 数据库的存储结构分为物理存储结构和逻辑存储结构两种。物理存储结构主要用于描述oracle 数据库外部数据的存储,即在操作系统层面中如何组织和管理数据,与具体的操作系统有关。逻辑存储结构主要描述oracle 数据库内部数据的组织和管理方式,即在数据库管理系统的层面中如何组织和管理数据,与操作系统没有关系。
物理存储结构具体表现为一系列的操作系统文件,是可见的;而逻辑存储结构时候物理存储结构的抽象体现,是不可见的,可以通过查询数据库数据字典了解逻辑结构信息。
物理存储结构主要指的是存储在磁盘上的数据文件、控制文件、重做日志文件、归档文件等。 逻辑存储结构包括表空间、段、区和块4种。
oracle 数据库的物理存储结构与逻辑存储结构既相互独立又相互联系,如下图:
从物理角度上看,数据库由数据文件构成,数据存储在数据文件中,从逻辑角度上看,数据库是由表空间构成的,数据存储在表空间中。一个表空间包含一个或者多个数据文件,但一个数据文件只能属于一个表空间。
物理存储结构
控制文件
(1)控制文件是ORALCE数据库中最重要的物理文件,用于描述整个数据库的结构信息。
控制文件是一个二进制文件,由ORACLE进程读/写,在数据库运行于维护阶段,数据文件及重做日志文件的结构变化信息都记录在控制文件中。
Oracle建议最少有两个控制文件,通过多路镜像技术,将其分散到不同的物理磁盘中。
(2)一个控制文件包括:
DB名称和标识
DB创建的时间
表空间名称
数据文件和重做日志文件的名称和位置
当前重做日志文件的序号
检查点的信息
回退段的开始和结束
重做日志的归档信息
备份信息
(3)V$CONTROLFILE: 列出了与实例有关的所有控制文件的名称和状态
SHOW PARAMETERS CONTROL_FILES: 列出控制文件的名称、状态和位置
数据文件
(1)数据文件用于存储数据库中的所有数据,一个数据库由多个数据文件构成。
(2) 与数据文件相关的数据字典主要有:
v$datafile
dba_data_files
(3). 数据文件默认情况下都是以.dbf结尾的文件,默认情况下与控制文件同一个目录.
重做日志文件
(1)重做日志文件用于记录对数据库的变更操作,在用户对数据库的操作出现故障时,可使用该文件进行恢复,以保证数据库系统的安全.
(2)重做日志文件是成组使用的,即日志文件组,每个数据库应至少有两个重做日志文件组,采用循环写的方式工作。每个组可以有一个或多个日志文件,同一组日志文件可进行镜像,且镜像的日志文件应存储在不同的物理磁盘中.
(3)查看重做日志文件信息
V$log:查询重做日志文件组的基本信息。
V$logfile:查询重做日志文件的信息。
归档日志文件
1、数据库运行模式
(1) 非归档模式noarchivelog
(2) 归档模式archivelog
Oracle数据库逻辑结构
Oracle的逻辑结构是一种层次结构。主要由:表空间、段、区和数据块等概念组成。逻辑结构是面向用户的,用户使用Oracle开发应用程序使用的就是逻辑结构。数据库存储层次结构及其构成关系,结构对象也从数据块到表空间形成了不同层次的粒度关系。
一个或多个连续的oracle 数据块构成区,一个或多个区构成段,一个或多个段构成表空间,所有表空间构成数据库。
数据块(Data Block)
数据库块大小是在Oracle创建数据库或表空间时设定的,数据块的大小在创建后是不可以修改的。
数据块是Oracle读写数据的基本单位,也是输入/输出操作的最小单位.
数据块的大小必须是服务器操作系统块大小的整数倍。
(盘)区(Extent)
1.概念
也称为数据区,是物理上一组连续的数据块构成的逻辑存储单元。
盘区是段中数据增长的基本单位,即是ORACLE存储空间分配与回收的最小单位。
一个或多个盘区组成一个段,当一个段的空间被使用完后,系统将自动为该段分配一个新的盘区。
一个盘区不能跨越多个文件,因为它必须包含连续的数据块
数据段中,盘区的个数受盘区控制参数控制
2.区的管理
(1)区的分配
表空间的本地管理(LOCAL)方式下,区分配方式:
统一大小:UNIFORM,指定段的初始区和后续区具有统一的大小。
自动分配:AUTOALLOCATE,由Oracle系统决定后续区的大小,用户不能干预分配。
表空间的字典管理(DICTIONARY)方式下,区的分配方式: 使用STORAGE子句设置存储参数。
(2)区的回收
通常不论区中的数据块是否被使用,分配给段的区会一直保留在段中,只有当段所属的对象被删除时,段中所有的区才会被回收。
段(Segment)
段是由一个或多个连续或不连续的盘区构成的逻辑存储单元,用来保存特定对象,如表、索引、回滚数据、临时数据等。段是表空间的组织单位。
(1)段内包含的数据区可以不连续,并且可以跨越多个文件。
(2)段类型
数据段:用来存储表或簇的数据,普通表数据段、分区表数据段、簇数据段
索引段:存放索引数据(ROWID、索引键值)
临时段:存储临时数据
回滚(退)段:存储数据库的回滚信息
表空间(Tablespace)
(1)表空间概念
表空间是ORACLE数据库最大的逻辑存储单元,一个表空间包含一个或多个数据文件,一个数据文件只能从属于一个表空间,数据库对象就是存储在表空间对应的一个或多个数据文件中。
(2)表空间类型
在Oracle11g中有以下几种比较特殊的表空间:
⑴SYSTEM表空间(System Tablespace):系统表空间
⑵SYSAUX表空间(SYSAUX Tablespace):系统辅助表空间
⑶TEMP表空间(Temp Tablespace):临时表空间
⑷撤消UNDOBS1表空间(Undo Tablespace):撤消表空间
(5)USERS表空间:普通用户表空间
(6)示例EXAMPLE 表空间:示例表空间
(3)表空间的存储管理方式
*本地管理方式
本地管理(Local)的表空间:
创建本地管理方式的表空间时,可指定区的分配方式:
自动方式:AUTOALLOCATE (默认方式)
统一方式:UNIFORM
*字典管理方式
(4)查看表空间信息
V$tablespace:查询数据库下表空间信息。
Dba_tablespaces:查询数据库下表空间信息。
Oracle数据库系统结构一(存储结构)相关推荐
- Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作
Oracle数据库:sql语言结构,数据查询语言DQL,select * from table;算术,别名,连接,去重等操作 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很 ...
- 数据库oracle11g的存储结构
数据库的存储结构分为:逻辑存储结构和物理存储结构 逻辑存储结构: 表空间.段.区.块. 块是最小的数据库管理单位,对应磁盘空间某个对应大小的尺寸.数据库所有的I/O操作都是以块为单位的.因为操作系统的 ...
- 直播预告丨Oracle数据库网络及存储技术详解-2022云和恩墨大讲堂
文末有惊喜福利哟~ Oracle数据库网络及存储技术详解 点此" 预约 ",即刻报名↓ DBA需要掌握些什么?这是一个老生常谈的话题了.很多时候数据库出了问题,到底是数据库本身的 ...
- Oracle数据库有哪些应用结构?
Oracle数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能:作为一个关系数据库,它是一个完备关系的产品:作为分布式数据库它实现了分布式处理功能.但它 ...
- 如何将oracle数据库中的表结构导入到sqlserver中,Oracle转换成SqlServer数据库的步骤...
1 背景 ITM系统目前支持MysqL.Oracle数据库,由于现在需要和CA产品进行结合,用CA产品的采集功能进行数据采集,因此需要使用CA产品的sqlServer数据库,为了使得系统支持sqlse ...
- oracle数据库是三级模式结构,什么是数据库三级模式结构?
什么是模式?简单说来,模式类似于定式,就是遇到反复出现的同一问题时所固定使用的解决方案.下围棋的朋友可能对"定式"这个词比较熟悉,定式包含着下棋时做遇到的各种情况下的下法.急所.手 ...
- ORACLE数据库系统结构
ORACLE数据库系统为具有管理ORACLE数据库功能的计算机系统.每一个运行的ORACLE数据库与一个ORACLE实例(INSTANCE)相联系.一个ORACLE实例为存取和控制一数据库的软件机制. ...
- 编程开发之--Oracle数据库--存储过程和存储函数(2)
上一小结我们简单介绍了存储过程和存储函数,对存储过程和存储函数有了一个基本的了解,接下来介绍在java程序中如何调用我们创建的存储过程和存储函数 1.在应用程序中调用我们的存储过程 创建一个简单的Ja ...
- oracle数据库卡住了无法保存,Oracle数据库使用NFS存储,启动报错提示无法锁定文件...
Oracle报错信息: SQLgt; startup gt; ORA-10997: another startup/shutdown operation of this instance inprog ...
最新文章
- Android Studio中架包打包和依赖冲突解决
- python调用tcpdump抓包过滤
- python中是干嘛的-python中def是做什么的
- Android studio 查看sha1
- WebP图片格式,压缩提高28%
- php中的大括号用法
- 对象并不一定都是在堆上分配内存的
- oracle sys连接不上,oracle – 为什么我不能在SYS拥有的对象上创建触发器?
- 公司电脑可以做无盘系统吗?怎么优化速度?
- python三次方函数_python函数基础------第三次作业讲解(二)
- openldap备份与还原
- Redis与数据库数据同步解决方案
- 被称为史上最高效学习方法——费曼学习法
- 驾驶证北京到期满换证 异地期满换领 异地驾驶证到期在北京换证 驾驶证异地换证
- 数据挖掘:概念与技术笔记(一)引言
- 如何把计算机课讲得生动些,谈小学阶段如何上好计算机课(5页)-原创力文档...
- python-非零整数代表True
- 博实结将在创业板上会:计划募资25亿元,周小强为实际控制人
- HRSID舰船检测数据集标签格式转换,json转为xml
- linux下远程桌面remmina安装,Linux-远程桌面连接工具remmina