`
nesta2001zhang
  • 浏览: 70758 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle表空间管理

 
阅读更多

129人阅读 评论 (0) 收藏 举报

extent--最小空间分配单位 --tablespace management
block --最小i/o单位      --segment    management

create tablespace james
datafile '/export/home/oracle/oradata/james.dbf'
size 100M       --初始的文件大小 
autoextend On     --自动增长
next 10M      --每次自动增长大小 
maxsize 2048M     --最大文件大小
extent management local --表空间采用本地表空间管理
uniform size 128k    --uniform设置extent每次分配的大小统一为128k(如果是db_block_size=8k
,则每次分配16个块) 
                            --如果不指定大小,则为1M,即为1024/8个block
                           --autoallocate设置extent大小由系统自动分配
                           --不管系统大小分配为多少,但统一尺寸是64k(在bitmap中标记位的大小)。
                            --autoallocate在dba_extents中的allocation_type中显示为 SYSRTEM
segment space management auto;
                        --segment中的block管理有两种:MSSM(Manual Segment Space Management),
ASSM(Auto Systemt Space Management)
                        --Auto 模式时只有pctfree参数起作用
--Manual 模式时freelist,pctfree,pctused参数起作用。



Tablespace 管理方式有两种:(管理extent)


1 数据字典空间管理 dictionary managed tablespace
   通过管理两个主要的数据字典表,UET$(Used EXtends) 和FET$(Free EXtends)来实现
   在9i以后已淘汰
   缺点:1 并发访问争用
              2 产生大量redo undo
              3 空间碎片

2 本地表空间管理 Local managed tablespace
   位图管理
   数据文件头部加入位图区域
   extent management local
  
   具体空间分配方式:
   1 autoallocate ----allocation_type=system
   2 uniform         ----allocation_type=uniform

ALLOCATION_TYPE 这个值有3个选项:
1、system:一旦设定该值,next_extent将为空,只有extents值。该值是默认值。这个选项的最小是64K
2、 user:一旦设定该值,就允许我们可以控制next_extent了。只有两种情况出现users:一是该ts是数据字典管理的;另外一个是该ts是从 数据字典管理转移到local的(用dbms_space_admin.tablespace_migrate_to_local)
3、uniform:将标明所有的extent的大小将一致,temp表空间只能采用这个方式;以上两个情况的extent的大小将不一致;uniform中的默认值为1M


             
未使用过的tablespace中新建第一个表t1

james@O10G>create table t1 (x int);

Table created.

sys@O10G>select extent_id,file_id,blocks,block_id,owner from dba_extents where owner='JAMES';

EXTENT_ID    FILE_ID     BLOCKS   BLOCK_ID OWNER
---------- ---------- ---------- ---------- ------------------------------
         0            7          16             9                 JAMES

bolck_id直接从9开始,前面的8个block留作他用
1-2位
 是文件头信息
3-8位 是位图信息

dump 出这个文件头看看

主要信息如下
File Space Bitmap Block:
BitMap Control:
RelFno: 7, BeginBlock: 9, Flag: 0, First: 1, Free: 63487
已经分配了1个extent 还有63487是free可以使用的



Segment 管理方式有两种:(管理Block)

1 MSSM(Manual Segment Space Management)
2 ASSM(Auto Systemt Space Management)


1 MSSM(Manual Segment Space Management)
通过在segment的段头分配自由列表(freelist) 来管理block
通过两个参数 pctfree pctused来管理block如何进出freelist
pctfree 值表示预留多少%的block空间用于更新
pctused 值表示低于这个值是,block会重新加入到freelist上

通过dba_tables,dba_indexes查看freelist,pctfree,pctused等参数的设置

2 ASSM(Auto Systemt Space Management)
通过在segment的段头分配位图(bitmap) 来管理block
不再需要freelist
不在需要pctused,因为不需要从freelist上摘除block。

前面提到了数据文件上block1-2是数据头文件,block3-8是extent的位图。
block9-10是ASSM的block的一级和二级位图。
ASSM最大支持三级为图,但是一般非常难见到使用三级目录的

分享到:
评论

相关推荐

    oracle 表空间管理

    然而,从Oracle 8i开始,引入了本地管理表空间(Local Managed Tablespace,简称LMT),以提供更高效、更自动化的空间管理机制。 **本地管理表空间(LMT)的优势** 1. **性能提升**:LMT使用位图来跟踪数据文件中...

    oracle表空间管理汇总.docx

    Oracle 表空间管理汇总 Oracle 表空间(Tablespace)是 Oracle 数据库中用于存储数据和索引的逻辑存储单元。...本文对 Oracle 表空间管理进行了总结,希望能够帮助数据库管理员更好地管理表空间。

    oracle 表空间 控制数据日志文件 备份还原

    实验4“Oracle表空间管理”旨在让学生掌握如何创建、扩展和删除表空间,理解表空间与数据文件的关系。在Oracle中,表空间的创建通常涉及以下步骤: 1. **规划表空间**:确定表空间的用途,例如用户数据、临时数据等...

    Oracle表空间操作命令

    根据提供的文件信息,我们可以深入探讨Oracle表空间管理的相关知识点,包括如何查看表空间的状态、类型、大小等信息,以及如何创建、调整表空间大小、设置自动扩展等。 ### Oracle表空间概念 在Oracle数据库中,表...

    获取oracle表空间脚本

    ### 获取Oracle表空间脚本 #### 背景与需求 在进行数据库备份与恢复的过程中,经常需要获取当前Oracle数据库中的表空间信息及其创建脚本。这样做的目的是为了确保在恢复过程中能够快速重建原有的数据库环境,包括...

    Oracle表空间介绍

    ### Oracle表空间详解 ...随着企业对数据处理能力的需求日益增长,合理规划和管理表空间已经成为Oracle数据库管理中的一个关键环节。因此,作为Oracle数据库管理员,深入了解并掌握表空间的相关知识是非常必要的。

    第17章 Oracle表空间的管理.ppt

    总之,Oracle表空间管理是一个复杂而关键的任务,理解并熟练掌握表空间的概念、分类和管理方法对于优化数据库性能和保证数据安全性至关重要。通过选择合适的表空间类型和管理策略,可以有效地支持数据库的日常操作和...

    Oracle本地管理表空间

    **本地管理表空间**是Oracle 8i版本引入的一种新的表空间管理模式。相比于之前的**字典管理表空间**,它采用了更加高效的空间管理机制,主要通过在每个数据文件的头部添加位图来追踪空间的使用情况,而非依赖数据...

    Oracle表空间命令

    ### Oracle表空间管理知识点 #### 一、Oracle表空间概述 在Oracle数据库中,表空间是逻辑存储单元,用于组织和管理数据文件。一个表空间可以包含多个数据文件,而每个数据文件只能属于一个表空间。Oracle中的表...

    \Oracle 表空间与数据文件

    通过以上内容,我们详细了解了Oracle中的表空间与数据文件的概念、分类以及它们在Oracle数据库存储结构中的作用,并学习了如何通过SQL查询来查看和管理这些表空间和数据文件。这对于管理和优化Oracle数据库的性能至...

    oracle表空间误操作

    提供的“收藏过的oracle学习网站.txt”文件可能包含一系列Oracle学习资料链接,这些链接可能涵盖表空间管理、数据库备份恢复、SQL查询优化等多个方面,对于深入理解Oracle表空间的管理至关重要。 6. **工具使用**...

    oracle 表空间创建

    在实际应用中,创建表空间是非常重要的操作,因为它可以帮助用户更好地管理数据库中的数据,并提高数据库的性能。 此外,还可以使用 Oracle 的其他功能,如创建索引、视图、存储过程等,以满足不同的应用需求。 在...

    oracle表空间命令语句大全

    表空间管理是 Oracle 数据库管理的重要组成部分。本文将对 Oracle 表空间命令语句进行详细的介绍和讲解。 一、建立表空间 建立表空间是 Oracle 数据库管理的基本操作。使用 CREATE TABLESPACE 命令可以创建一个新...

    学习oracle创建一个表空间创建临时表空间创建用户表空间资源的权限

    创建和管理表空间及用户资源权限是数据库管理员(DBA)的重要工作之一。以下将详细介绍如何在Oracle中创建表空间、临时表空间以及赋予用户对表空间的权限。 首先,我们来了解如何创建一个常规表空间: 1. **创建表...

    oracle表空间详解

    在 Oracle8i 之后,创建表空间都推荐使用“本地管理表空间”,这种表空间中的分区是一个固定大小的值。语法结构如下: ``` CREATE TABLESPACE 空间名称 DATAFILE '文件名 1' SIZE 数字 M [,'文件名2' SIZE 数字….] ...

    oracle定时删除表空间的数据并释放表空间

    2. **自动段空间管理(Automatic Segment Space Management, ASSM)**:Oracle从9i版本开始引入ASSM,它简化了表空间的空间管理,通过位图块来跟踪空闲空间,提高了空间利用率和删除效率。 3. **purge操作**:Purge...

    从一个表空间 另一个表空间

    根据提供的标题、描述、标签及部分内容,我们可以总结出与Oracle表空间管理相关的多个知识点,具体如下: ### 一、理解Oracle表空间的概念 在Oracle数据库中,表空间是由一个或多个数据文件组成的逻辑存储单元。它...

    如何正确的删除Oracle表空间数据文件

    1. 数据文件必须是ONLINE状态才能执行此命令,如果文件已经OFFLINE,只有在字典管理表空间(DMT)中才能执行,对本地管理表空间(LMT)则不行。 2. 不能删除表空间的第一个数据文件或唯一的数据文件,否则会引发错误...

    oracle表空间查询命令

    ### Oracle表空间查询与管理命令详解 #### 一、Oracle表空间概述 在Oracle数据库中,表空间是逻辑存储单元,用于组织数据文件。每个Oracle数据库至少包含一个表空间,默认情况下,系统会在创建数据库时自动创建`...

Global site tag (gtag.js) - Google Analytics