oracle区管理和段空间管理详细介绍

作为一名DBA,常见的一个场景之一:

创建表空间:


代码如下:

createtablespaceThink
datafile'/u01/app/oracle/oradata/orcl/think.dbf'size100M
autoextendonnext10Mmaxsize4096M
extentmanagementlocaluniformsize256K
segmentspacemanagementauto;

创建用户:


代码如下:

createuserbin
defaulttablespaceThink
temporarytablespacetemp;

授予权限:


代码如下:

grantconnect,resourcetobin;
revokeunlimitedtablespacefrombin;
alteruserbinquotaunlimitedonThink;

在这个场景中,有两条语句:
①extentmanagementlocaluniformsize256K
②segmentspacemanagementauto
其中,前者是区管理;后者则是段空间管理

㈠区管理
区管理实际上就是表空间的管理
8i以前,是字典管理表空间,当创建或删除对象时,Oracle的空间分配或回收是通过数据字典来记录和管理
在高并发系统中,这会导致性能衰减、空间碎片等难题
这已经是门过去的技术,这里就不赘述了。
8i开始,Oracle引入本地表空间管理
在每个表空间的数据文件的头部加入了一个位图区域
一个段的第一个区的第一个块是firstlevelbitmapblock
第二个块是secondlevelbitmapblock
第三个块才是段头块
这两个块是用来管理freeblock

语法:


代码如下:

extentmanagementlocal{autoallocate|uniformsizenK/M}

是自动分配还是统一尺寸
若为自动分配,则Oracle会按照递增算法来分配空间
如果选择统一尺寸,还可以详细指定每个区间的大小
dba_extents这个视图可以看到哪些对象分配了多少区间

㈡段空间管理
Oracle以区间为单位将空间分配给对象段,而段内则是以block为单位进行空间使用和管理
我们以几个参数来理解段空间管理


代码如下:

[sql]
<spanstyle="font-size:18px;">sys@ORCL>selectextent_management,segment_space_managementfromdba_tablespaces;
EXTENT_MANSEGMEN
----------------
LOCALMANUAL
LOCALMANUAL
LOCALAUTO
LOCALMANUAL
LOCALMANUAL

从9i开始,段空间管理有两种:
①MSSM:由你设置freelists、freelistgroups、pctused、pctfree、initrans等参数来控制如何分配、使用段中的空间
②ASSM:你只需控制一个参数pctfree,其他参数即使建了也将被忽略
⑴freelist
使用MSSM表空间管理时,Oracle会在freelist中为有自由空间的对象维护HWM以下的块
freelist和freelistgroup在ASSM表空间中根本不存在,仅在MSSM表空间使用这个技术
⑵pctfree和pctused
pctfree告诉Oracle:块上应该保留多大的空间来完成将来的更新
对于MSSM,她控制着块何时放入freelist中,以及何时从freelist中取出。
如果大于pctfree,则这个块会一直在freelist上
对于ASSM,因为ASSM根本不使用freelist。在ASSM中,pctused也将被忽略。
但她仍然会限制能否将一个新行插入到一个块中
适当的设置pctfree有助于减小行迁移
⑶initrans
无论是ASSMorMSSM这个参数仍然有效
块头的事务槽的初始化大小有对象的initrans指定

(0)

相关推荐

  • oracle区管理和段空间管理详细介绍

    作为一名DBA,常见的一个场景之一: 创建表空间: 复制代码 代码如下: createtablespaceThink datafile'/u01/app/oracle/oradata/orcl/think.dbf'size100M autoextendonnext10Mmaxsize4096M extentmanagementlocaluniformsize256K segmentspacemanagementauto; 创建用户: 复制代码 代码如下: createuserbin defaul

  • Oracle数据库自带表空间的详细说明

    需求: 需要整理现场用户创建的表空间以及其存储数据,进行规范化管理.在整理用户现场建立的表空间时,需要排除掉非用户创建的表空间,所有首先需要那些表空间是用户创建的,那些是Oracle自带的. 本机测试建立一个新库,发现自带表空间如下: 下面对每一个表空间进行简单说明(部分内容引自网络): 1.SYSAUX表空间 SYSAUX表空间在Oracle Database 10g中引入,作为SYSTEM表空间的辅助表空间.以前一些使用独立表空间或系统表空间的数据库组件现在在SYSAUX表空间中创建.SYS

  • 生产环境Oracle undo表空间管理实践

    目录 一.什么是撤销以及为什么在oracle中撤销? 二.管理undo表空间 2.1 创建undo表空间 2.2 调整 Undo 表空间大小 三.Oracle 中撤消表空间/撤消管理的最佳实践 一.什么是撤销以及为什么在oracle中撤销? Oracle 数据库有一种维护信息的方法,用于回滚或撤消对数据库的更改.Oracle 数据库在事务提交之前保留事务操作的记录,Oracle 需要此信息来回滚或撤消对数据库的更改.这些记录称为回滚或撤销记录. 这些记录用于: 回滚事务 - 发出 ROLLBAC

  • Oracle数据库的空间管理技巧

    正在看的ORACLE教程是:Oracle数据库的空间管理技巧. 在Oracle数据库中,DBA可以通过观测一定的表或视图来了解当前空间的使用状况,进而作出可能的调整决定. 一.表空间的自由空间 通过对表空间的自由空间的观察,可用来判断分配给某个表空间的空间是太多还是不够.请看下列的语句 可以看出,在FileNo为12的表空间RBS中,只有0.19%的分配空间未被使用,这个比例太小了,而在SYSTEM及TEMP等表空间中,高达80%以上的空间未被利用,对于生产型数据库,这个表空间的设置有些偏高.

  • Oracle表空间管理和用户管理介绍

    目录 Oracle介绍 1. Oracle表空间 2. Oracle用户权限管理 3. 查看用户及权限信息 总结 Oracle介绍 Oracle(甲骨文)公司 1977年,三人合伙创办(Software Development Laboratories,SDL) 1979年,更名为Relational Software Inc.,RSI 1983年,为了突出核心产品 ,RSI更名为Oracle 2002年04月26日,启用"甲骨文"作为中文注册商标 1. Oracle表空间 表空间是O

  • Linux内存管理和寻址详细介绍

    目录 1.概念 内存管理模式 地址类型划分 说明: 2.页式管理 x86架构32位cpu x86架构 64位cpu 3.地址划分 4. 调试 结语 1.概念 内存管理模式 段式:内存分为了多段,每段都是连续的内存,不同的段对应不用的用途.每个段的大小都不是统一的,会导致内存碎片和内存交换效率低的问题. 页式:内存划分为多个内存页进行管理,如在 Linux 系统中,每一页的大小为 4KB.由于分了页后,就不会产生细小的内存碎片.但是仍然也存在内存碎片问题. 段页式:段式和页式结合. 地址类型划分

  • Oracle CDB管理实现多租户管理功能

    目录 CDB的管理 1.当前容器 2.修改CDB的参数 3.修改PDB的参数 1.使用ALTER DATABASE 命令修改CDB的参数 2.使用ALTER DATABASE命令修改CDB的UNDO模式 4.CDB和PDB参数保存位置说明 CDB Fleet特性 配置CDB FLEET环境 管理PDB CDB的管理 1.当前容器 通过SYS_CONTEXT命令来查看, col con_id format a10 col con_name format a20 select sys_context

  • JavaScript自动内存管理与垃圾回收策略详细分析讲解

    目录 自动内存管理 垃圾回收策略 标记清理策略 引用计数策略 内存管理技巧 解除引用 const和let变量声明 自动内存管理 JavaScript编程语言通过自动内存管理实现内存分配和闲置资源回收. 简单来讲就是:只要确定某个变量X不会再被使用了,就将变量X占用的内存进行释放.这种判断是周期性执行的,即:垃圾回收程序隔一定时间就会自动执行一次,以释放某些不必要的内存开支. JavaScript垃圾回收过程中的难点在于:如何正确判定一块内存是否还有用? 垃圾回收策略 在C/C++程序中,我们记忆

  • powershell远程管理服务器磁盘空间的实现代码

    一.启用远程管理 1.将管理服务器的trusthost列表改为* 运行Set-item wsman:localhost\client\trustedhosts –value * 2.在远程服务器上运行Enable-PSremoting 注: 在本地服务器上以Administrator运行"Enable-Psremoting . Winrm Quickconfig .  Set-WSManQuickConfig",均提示"访问被拒绝",可能的原因如下: 1.在工作组计

  • 隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法

    版权可以在css中设置隐藏. 由于文件被ZEND所以不能删除,也不建议删除. 1.隐藏X-Space个人空间下方版权方法 修改/css/space.css找到以下代码: /*页脚*/ #xspace-footer { text-align : center; margin: 1em 0 0 0; }         #xspace-footer p { margin: 0.3em 0; }         #xspace-copyright { font: 10px Verdana, Arial

随机推荐