ORACLE的逻辑存储管理

合集下载

数据库存储设置与管理

数据库存储设置与管理
– 如果表空间正在进行联机数据备份,则不能将 该表空间设置为只读状态。
• 创建一个永久性的表空间HRTBS4,区定制
分配,段采用手动管理方式。
– CREATE TABLESPACE HRTBS4 DATAFILE
– 'D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE\
– HRTBS4_1.DBF' SIZE 50M
– EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K
• Oracle数据库物理存储结构
精品课件
4
• 数据文件:用于存储数据库中的所有数据; • 控制文件:用于记录和描述数据库的物理存储
结构信息; • 重做日志文件:用于记录外部程序对数据库的
改变操作; • 归档文件:用于保存已经写满的重做日志文件; • 初始化参数文件:用于设置数据库启动时的参
数初始值; • 跟踪文件:用于记录用户进程、数据库后台进
– INDEX01.DBF' SIZE 50M;
精品课件
13
创建大文件表空间
• 一个大文件表空间只包含一个数据文件, 该数据文件可以包含4G(232)个数据块。
• 通过查询数据字典DATABASE_PROPERTIES中 数据库的属性DEFAULT_TBS_TYPE,可以知 道数据库默认创建的是小文件表空间还是 大文件表空间。
精品课件
14
• 创建一个大文件表空间,文件大小为1G,区 的分配采用定制方式。
– CREATE BIGFILE TABLESPACE big_tbs DATAFILE – 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\big01.dbf' – SIZE 1G UNIFORM SIZE 512K;

oracle oom机制

oracle oom机制

oracle oom机制
OracleOOM机制是指Oracle数据库中的内存管理机制,OOM全称为Out Of Memory,即内存耗尽。

在Oracle数据库中,OOM机制可以保证系统在内存不足时自动回收不必要的内存资源,从而保障数据库的稳定性和可靠性。

Oracle OOM机制主要包括以下几个方面:
1. 内存结构管理:Oracle数据库中将内存划分为PGA和SGA两部分,PGA用于管理用户进程的内存,SGA用于存储数据库的元数据和缓存数据。

OOM机制可以自动管理这两部分内存,当内存不足时,会根据优先级自动回收不必要的内存资源。

2. 内存监控:Oracle数据库会监控系统的内存使用情况,当内存使用率超过设定的阈值时,会触发OOM机制,自动回收内存资源。

3. 内存回收:当系统内存不足时,Oracle数据库会自动回收不必要的内存资源,包括关闭空闲连接、关闭空闲事务、清除缓存数据等。

4. 自动调整内存大小:Oracle数据库会根据系统的负载情况自动调整内存大小,以保证系统的性能和稳定性。

总之,Oracle OOM机制是保证数据库稳定性和可靠性的重要机制,它可以自动管理内存资源,避免出现内存不足的情况,提高系统的稳定性和性能表现。

- 1 -。

Oracle 8i、9i、10g、11g不同版本的比较

Oracle 8i、9i、10g、11g不同版本的比较

Oracle 8i、9i、10g、11g不同版本的比较Oracle 9i比8i多了哪些新特性?简要说:9i更易于管理。

详细说:并发集群,8i OPS升级为9i RAC,8i结点间用硬盘交换信息,9i结点间采用高速网线的缓存熔合(Cache Fusion)技术交换信息,交换速度提高100倍以上。

9i可以在线修改内核参数和内存分配,8i不行。

数据文件和表空间管理,8i手工管理,9i自动管理。

9i比8i增强了对ANSI SQL99的支持。

9i比8i增强了故障后的快速恢复(Fast-start)。

8i只支持物理备份(physical backup)数据库,9i还增加了支持逻辑备份(logical backup)数据库,使备份数据库除了作为主数据库的镜像外,还可以提供其他数据服务.Oracle 10g比9i多了哪些新特性?简要说:10g支持网格(Grid),支持自动管理(Automatic Management)。

详细说:10g的g是”Grid”缩写,支持网格计算,即,多台结点服务器利用高速网络组成一个虚拟的高性能服务器,负载在整个网格中均衡(Load Balance),按需增删结点,避免单点故障(Single Point of Faliure)。

安装容易,安装工作量比9i减少了一半。

新增基于浏览器的企业管理器(Enterprise Manager)。

自动存储管理(ASM),增删硬盘不再需要操作系统管理员设置的镜像、负载均衡、物理卷、逻辑卷、分区、文件系统,只要打一条Oracle命令,ASM会自动管理增加或删除的硬盘。

内存自动化,根据需要自动分配和释放系统内存。

SQL性能调整自动化。

免费提供基于浏览器的小应用开发工具Oracle Application Express(原名HTML DB),支持10g和9iR2。

快速纠正人为错误的闪回(Flashback)查询和恢复,可以恢复数据库、表甚至记录。

数据泵(Data Pump)高速导入、导出数据,比传统方法导出速度快两倍以上,导入速度快15–45倍。

oracle database21c原理

oracle database21c原理

oracle database21c原理Oracle Database 21c是一种关系型数据库管理系统,由Oracle Corporation开发和维护。

它是Oracle Database系列的最新版本,于2020年12月发布。

本文将介绍Oracle Database 21c的原理和特点。

一、新特性Oracle Database 21c引入了许多新特性,以提供更高的性能、更好的可扩展性和更强大的功能。

其中一项重要的特性是自动索引管理。

在以往的版本中,数据库管理员需要手动创建和维护索引来优化查询性能。

而在Oracle Database 21c中,数据库可以自动识别和创建适当的索引,从而减轻了管理员的负担。

另一个重要的特性是多租户架构的改进。

多租户架构允许在一个数据库实例中运行多个独立的租户,每个租户都有自己的数据和资源。

在Oracle Database 21c中,多租户架构得到了进一步的优化,提供了更好的隔离性和资源管理能力。

Oracle Database 21c还引入了内存数据库技术,即Oracle TimesTen。

TimesT en是一个高性能、低延迟的内存数据库,可以与Oracle Database集成使用。

它适用于需要快速读写和实时分析的场景,如金融交易处理和实时数据分析等。

二、架构和存储Oracle Database 21c采用了分层的架构,包括物理存储、逻辑存储和数据库实例。

物理存储层负责将数据写入磁盘和读取数据,逻辑存储层负责管理数据的逻辑结构和访问路径,数据库实例负责管理数据库的运行状态和处理用户请求。

在物理存储层,Oracle Database 21c使用了高效的数据存储和访问方式。

它采用了表空间和数据文件的概念,将数据按照表空间划分为多个逻辑存储单元,并将每个表空间映射到一个或多个数据文件上。

这种分层的存储结构可以提高数据的读写性能和存储效率。

在逻辑存储层,Oracle Database 21c使用了表、索引和视图等逻辑对象来组织和管理数据。

oracledb的逻辑结构

oracledb的逻辑结构

oracledb的逻辑结构1. 实例(instance)实例是Oracle数据库的最高层次,它包含了数据库的内存结构和后台进程。

每个Oracle数据库都有一个对应的实例。

实例负责管理数据库的内存和进程,以及处理用户的请求。

2. 数据库(database)数据库是由多个表空间组成的,每个表空间又包含多个数据文件。

数据库是存储数据的物理结构,用于持久化存储数据。

一个Oracle 数据库可以包含多个数据库。

3. 表空间(tablespace)表空间是逻辑上的存储区域,用于组织和管理数据库中的数据。

每个表空间包含多个数据文件,用于存储表和索引等数据库对象。

不同的表空间可以有不同的存储特性和管理策略。

4. 数据文件(data file)数据文件是表空间的组成部分,用于存储表和索引等数据库对象的数据。

一个数据库可以包含多个数据文件,每个数据文件都有固定的大小和位置。

5. 段(segment)段是逻辑上的存储单位,每个段对应一个表、索引或者其他数据库对象。

段由一组连续的数据块组成,用于存储实际的数据。

6. 数据块(data block)数据块是数据库的最小存储单位,每个数据块包含一定数量的字节。

数据库中的数据被分割成多个数据块进行存储和管理。

7. 扩展(extent)扩展是一组连续的数据块,用于分配给段进行存储。

扩展是数据库的分配单位,当段需要更多的存储空间时,会向其分配新的扩展。

8. 逻辑块(logical block)逻辑块是Oracle数据库中数据的逻辑单位,每个逻辑块包含一定数量的字节。

逻辑块是对数据块的逻辑封装,用于提供更高层次的数据管理。

9. 段空间管理(segment space management)段空间管理是指如何分配和管理段的存储空间。

Oracle数据库支持两种段空间管理方式:自动段空间管理(Automatic Segment Space Management, ASSM)和手动段空间管理(Manual Segment Space Management)。

Oracle数据库基础题库【含答案】

Oracle数据库基础题库【含答案】

1、判断题,正确请写写"T",错误请写写"F",1、oracle数据库系统中,启动数据库的第一步是启动一个数据库实例。

( T )2、Oracle服务器端的监听程序是驻留在服务器上的单独进程,专门负责响应客户机的连接请求。

( F)3、oracle数据库中实例和数据库是一一对应的(非ORACLE并行服务,非集群)。

( T)4、系统全局区SGA 是针对某一服务器进程而保留的内存区域,它是不可以共享的。

( F )5、数据库字典视图ALL_***视图只包含当前用户拥有的数据库对象信息。

( F )8、数据字典中的内容都被保存在SYSTEM表空间中。

( T )9、HAVING后面的条件中可以有聚集函数,比如SUM(),AVG()等, WHERE 后面的条件中也可以有聚集函数。

( F )10、"上海西北京" 可以通过like ‘%上海_’查出来。

( F )11、表空间是oracle 最大的逻辑组成部分。

Oracle数据库由一个或多个表空间组成。

一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间。

( T )12、表空间分为永久表空间和临时表空间两种类型。

( T )13、truncate是DDL操作,不能 rollback。

( T )14、如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使用WHERE语句。

( F )15、Oracle数据库中字符串和日期必须使用双引号标识。

( F )16、Oracle数据库中字符串数据是区分大小写的。

( T )17、Oracle数据库中可以对约束进行禁用,禁用约束可以在执行一些特殊操作时候保证操作能正常进行。

( F )18、为了节省存储空间,定义表时应该将可能包含NULL值的字段放在字段列表的末尾。

( T )20、在连接操作中,如果左表和右表中不满足连接条件的数据都出现在结果中,那么这种连接是全外连接。

Oracle课件 第1章

Oracle课件 第1章
指出实例中SGA可用的最大内存量。如果该参数未设置, 而memory_target或memory_max_target参数已设置,实 例将把sga_max_size设置为二者中值较大的一个
实例后台进程
实例的后台进程共同实现对Oracle数据库的管理功能,每 个后台进程只完成一项单一的任务,主要后台进程包括: 数据库写入进程(DBWR):负责将SGA数据库缓冲区 缓存中的脏数据块写入数据文件。DBWR在下面条件下执 行写入操作:服务器进程找不到足够数量的可用干净缓冲 区,或者数据库系统执行检查点时。一个实例可启动的 DBWR数量由初始化参数DB_WRITER_PROCESSES指 定; 日志写入进程(LGWR):负责把日志缓冲区内的重做 日志写入联机重做日志文件; 归档进程(ARCH):发生日志文件切换时,如果数据 库运行在归档模式下,归档进程将把填写过的联机重做日 志文件复制到指定位置进行归档 ;
Oracle数据库中的其它文件
除以上三种Oracle数据库文件之外,Oracle数据库管理系 统在管理数据库时还使用其它一些辅助文件,其中包括 : 参数文件:记录Oracle数据库的初始化参数设置,如实 例使用的内存量、控制文件的数量及其存储路径等。它相 当于实例的属性文件,实例启动时首先打开并读取它; 口令文件:用于存储被授予SYSDBA、SYSOPER和 SYSASM权限的数据库用户及口令,以便在数据库还未打 开时用于验证具有这些特殊权限的数据库管理员的身份 ; 警告日志文件:这是一个文本文件,其名称是 alertdb_name.log(db_name是数据库名),它相当于一 个数据库的“编年体”日志,按照时间的先后顺序完整记 录从数据库创建开始,直到删除之前发生的重大事项,如 可能出现的内部错误或警告,数据库的启动与关闭操作, 表空间的创建、联机和脱机操作等信息;

ORACLE_ASM_概述

ORACLE_ASM_概述

ORACLE_ASM_概述Oracle ASM(Automatic Storage Management)是Oracle数据库管理系统中的一项功能强大的存储管理技术。

它提供了一个集成的、高性能的存储解决方案,用于管理数据库文件、控制数据分布和提供高可用性。

下面将对Oracle ASM进行详细的概述。

Oracle ASM的主要目标是简化数据库存储的管理和维护。

它将数据文件和日志文件直接映射到操作系统的文件系统,而无需使用文件系统路径来引用它们。

这样做的好处是,ASM可以自动管理多个存储设备(如磁盘组),并为数据库文件提供统一的访问接口。

这样,数据库管理员就可以更轻松地管理存储设备,并且不需要了解底层的物理存储细节。

ASM使用逻辑概念来管理存储,这使得它与底层的物理存储设备解耦。

例如,ASM使用概念上的“磁盘组”来组织存储设备。

磁盘组是一个逻辑容器,它包含多个物理设备(如磁盘)并提供统一的命名空间。

ASM将数据文件分布在磁盘组的多个磁盘上,以提高性能和可靠性。

它还使用“重定义”来保持文件的完整性,并提供与文件相关的一致性保护机制。

使用ASM,数据库管理员可以更容易地配置和管理数据库存储。

例如,他们可以使用ASM命令来创建和管理磁盘组、向磁盘组添加/删除磁盘、创建/删除ASM实例等。

此外,ASM还提供了许多性能和可靠性方面的优势。

例如,ASM可以自动在磁盘组的多个磁盘上分布数据库文件,以提高I/O性能。

它还可以通过数据文件重定义来自动修复数据坏块,从而提供更高的数据可靠性。

另一个重要的特性是ASM可以与Oracle数据库实例无缝集成。

ASM可以自动识别ASM实例中的数据库文件,并为每个文件提供统一的命名约定。

这意味着数据库管理员可以在ASM文件系统中直接引用数据文件,而无需指定文件系统路径。

这大大简化了数据库管理中的一些重要任务,如备份和恢复操作。

值得注意的是,ASM并不是Oracle数据库的唯一存储选项。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ORACLE的逻辑存储管理Oracle在逻辑存储上分4个粒度:表空间Tablespace、段Segment、盘区Extent、块Block。

Oracle数据库在逻辑上是由多个表间组成的,表空间中存储的对象叫段,段由区组成,区是磁盘分配的最小单位。

每个区的大小是数据块大小的整数倍,区的大小可以不相同。

数据块是数据库中最小的I/O单位,同时也是内存数据缓冲区的单位,及数据文件存储空间单位。

一、数据库由一个或多个表空间组成;二、表空间由一个或多个数据文件组成,一个表空间包含多个段;三、段由一个或多个区组成(Oracle的分区表可以包括多个分区,每个分区都是一个独立的段);一个段对应唯一的表空间。

四、区是数据文件中一个连续的分配空间,由一个或多个块组成;五、块是数据库中最小、最基本的单位,是数据库使用的最小的I/O单元。

一、块(Block)数据块Block是Oracle存储数据信息的最小单位。

Oracle就是通过数据块来屏蔽不同操作系统存储结构的差异。

无论是Windows环境,还是Unix/Linux环境,他们的操作系统存储结构和方式、甚至字符排列的方式都是不同的。

Oracle利用数据块将这些差异加以屏蔽,全部数据操作采用对Block的操作,相当于是一个层次的抽象。

Oracle所有对数据的操作和空间分配,实际上都是针对数据块Block的操作。

我们从数据表中搜索出一行,实际中Oracle就会从内存缓冲区(或者硬盘)中读取到该行所在的数据块,再返回该数据块上的指定数据行。

数据块是有大小的,在一个数据库建立的时候,通过参数进行设置。

(注意:Oracle数据库参数中,数据块大小的参数db_block_size 是建库之后不能进行修改的)。

数据库中每个块的大小都是相同的,而且所有的块都有相同的格式,由“块头+表目录+行目录+空闲空间+数据空间”组成。

块头包含着块类型(比如是表块、还是索引块)的信息、磁盘上块的位置等信息。

表目录(table directory),如果有的话,包含着此块中存储各行的表的信息(如果一个块中存有多个表中的数据)。

行目录(row directory)包含着数据行的描述信息,它是一个指针数组,指示了每一行在数据块中的物理位置。

块头、表目录、行目录统称为块开销(block overhead),是oracle原来统计、管理块本身的。

剩下的两部分很简单,已经存有数据的就是数据空间,暂时没存的就是空闲空间。

数据块的大小是通过KB字节个数来指定的,默认为8KB。

相关参数为db_block_size。

查看参数设置:show parameter db_block_size;设置数据块的大小是依据不同类型的系统的。

如果数据块设置比较大,那么一次读取的数据行较多,相应对SGA内存消耗比较大,特定查询引发的换入换出可能较多。

如果设置的过小,频繁的IO逻辑物理读也会引起性能问题。

与数据块有关系的另一个参数就是db_file_multiblock_read_count。

表示一次从物理存储中读取的数据块数量。

对一些数据挖掘系统,可以考虑调节此参数略大一些。

查看参数设置:show parameter db_file_multiblock_read_count;二、区(Extent)区Extent是比数据块大一级的存储结构,表示的是一连串连续的数据块集合。

我们知道,物理存储通常是随机的读写过程,即使在同一个文件里,我们也不能保证相同的一个信息是存储在绝对连续的物理存储空间的。

Oracle数据存储同样如此。

在进行存储数据信息的时候,Oracle将分配数据块进行存储,但是不能保证所有分配的数据块都是连续的结构。

所以,出现分区Extent的概念,表示一系列连续的数据块集合。

区是磁盘空间分配的最小单位。

磁盘按区划分,每次至少分配一个区。

视图Dba_Extents(或者All_Extents、User_Extents)是我们研究区结构的重要手段。

从视图结构中,我们可以清晰看出区的几个特点。

首先,分区是带有段特定性的。

数据段Segment是区的上层组织单位,一个数据库对象对应一个Segment,数据库对象是归属在不同的Schema(Owner)上的。

所以,通过不同的数据段名称、不同的Owner,乃至不同的Tablespace表空间信息,就可以定位到数据区Extent 的信息描述。

其次,另一部分信息是关于该区Extent的分配信息,如所在文件编号,起始数据块Block编号和数据块数量等内容。

三、段(Segment)段是oracle数据库中的分配单位,对象如表、索引等都是以段为单位进行分配。

当创建一个表时将创建一个表段,创建一个索引时就创建一个索引段。

每一个消耗存储空间的对象最终被存储到一个单一的段中。

多个Extent区构成一个数据段,每个数据段实际上就是数据库一个对象的代表。

从dba_Segments/ User_Segments视图中,可以看清数据段的结构。

Oracle中的段可以分成4种类型:数据段、索引段、回滚段、临时段。

数据段是与数据库对象相对应,一般一个数据库对象对应一个数据段。

索引段用来存储系统、用户的索引信息。

回滚段用来存储用户数据修改前的值,回退段与事务是一对多的关系,一个事务只能使用一个回退段,而一个回退段可存放一个或多个事务的回退数据。

每个表都有一个对应的回滚段,其名称和数据表的名字相同。

一个对象创建出来之后,在segment层次上是分配一个分区extent和八个数据块block。

有一个问题需要注意,通常我们的数据段是与数据对象相关。

一个数据对象对应一个segment。

但是,分区表的时候,一个分区要对应一个segment对象。

还有就是,segment对象是可以指定存储在那个表空间里,实现存储划分的基础也就在于此。

不同类型的segment 划分建立在不同的表空间里,才有可能存放在不同的文件中,最后分布在不同的物理存储。

只有分区表存在分开存储的可能。

一般一个对象是不会跨物理存储进行存放的,分区表是对应的多个segment。

所以,分区表分开存储空间是可能的。

四、表空间(Tablespace)表空间是Oracle数据库最大的逻辑结构。

一个Oracle数据库在逻辑上由多个表空间组成,一个表空间只隶属于一个数据库。

建立一个表空间的时候,是需要指定存储的文件。

一个表空间可以指定多个数据文件,多个文件可以在不同的物理存储上。

一个表空间可以有多数据文件,但是一个数据文件只能属于一个表空间。

表空间通过V$Tablespace进行访问。

Bigfile,是一个标志位,标志表空间是不是所谓的大文件表空间。

Flashback_On,表示表空间的闪回特性是否开启。

表空间的作用:1、控制数据库占用的磁盘空间2、dba可以将不同数据类型部署到不同的位置。

这样有利于提高i/o性能,同时利于备份和恢复等管理操作。

五、SchemaSchema是一个组织概念,是来自于经典数据库理论范畴。

在Oracle中,Schema就是一个组织概念,一个User对应的就是一个Schema。

Schema 为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的 Schema 下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个Schema,Schema 里面包含了各种对象如:Tables,Views,Sequences,Stored Procedures,Synonyms,Indexes,Clusters,And Database Links。

一个用户(User)一般对应一个 Schema,该用户的 Schema 名等于用户名,并作为该用户缺省的 Schema。

这也就是我们在企业管理器的 Schema 下看到 Schema 名都为数据库用户名的原因。

Oracle 数据库中不能新创建一个 Schema,要想创建一个 Schema,只能通过创建一个 User 的方法解决(Oracle 中虽然有 Create Schema 语句,但是它并不是用来创建一个 Schema 的),在创建一个 User 的同时为这个 User 创建一个与用户名同名的 Schem 并作为该用户的缺省 Shcema。

即 Schema 的个数同 User 的个数相同,而且 Schema 名字同 User 名字一一对应并且相同,所有我们可以称 Schema 为User 的别名,虽然这样说并不准确,但是更容易理解一些。

一个 User 有一个缺省的 Schema,其 Schema 名就等于用户名,当然一个 User 还可以使用其他的 Schema。

如果我们访问一个表时,没有指明该表属于哪一个 Schema 中的,系统就会自动给我们在表上加上缺省的 Sheman 名。

比如我们在访问数据库时,访问 Scott 用户下的 Emp 表,通过Select * From Emp; 其实,这 Sql 语句的完整写法为 Select * From Scott.Emp。

在数据库中一个对象的完整名称为 Schema.Object,而不属 User.Object。

类似如果我们在创建对象时不指定该对象的 Schema,在该对象的 Schema 为 User 的缺省Schema。

这就像一个 User 有一个缺省的 Tablespace,但是该 User 还可以使用其他的 Tablespace,如果我们在创建对象时不指定Tablespace,则对象存储在缺省 Tablespace 中,要想让对象存储在其他Tablespace 中,我们需要在创建对象时指定该对象的Tablespace。

Schema 是数据库对象的逻辑归属和分类,而 Tablespace 是数据库对象的物理和实际存放位置。

六、分区表Oracle的分区表可以包括多个分区,每个分区都是一个独立的段(SEGMENT),可以存放到不同的表空间中。

查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询。

分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。

七、Create Table当我们创建了一个表,即使我没有插入任何一行记录, ORACLE 还是给它分配了8个块。

当然这个跟建表语句的INITIAL参数及MINEXTENTS参数有关。

如:STORAGE(INITIAL 64KMINEXTENTS 1MAXEXTENTS UNLIMITED);也就是说,在这个对象创建以后,ORACLE至少给它分配一个区,初始大小是64K,一个标准块的大小是8K,刚好是8个BLOCK。

相关文档
最新文档