select username,session_num,tablespace from v$sort_usage;

Block:

  1. 块的组成

    1. Header:包含数据块的概要信息:块地址,块属于哪个段,还有段的类型
    2. 表目录:数据所属的表的信息。
    3. 行目录:插入行的逻辑地址
    4. 预留的空余空间:
    5. 行数据区:
  2. 获取关于块的信息:
    show parameter db_block_size
    select block_size from dba_tablespaces where tablespace_name='SYSTEM';

  3. 块大小的调整:一般来说是8k,必须在建库以后指定,现在允许在不同的表空间可以有不同块大小。
    show parameter cache_size
    alter system set db_16k_cache_size=100m; --16k的设置生效
    CREATE TABLESPACE tb16k BLOCKSIZE 16K DATAFILE '/path/to/datafile' size 100m autoextend on extent management local segment space management auto;
    对比查看两个表空间:
    select tablespace_name, block_size from dba_tablespaces where tablespace_name in ('TB16K','SWAT');

  4. 块剩余空间:PCTFREE
    1. 用途:用于避免行迁移。
    2. 使用范围:全局有一个10,具体针对不同的表(segment)的特性(如经常更新的表和只读的表就不一样)可以设不同的值。

Extent:

  1. 数据字典表user_extents包含的内容: 
    1. 上级信息:段名(和类型),分区名,表空间名,
    2. 自身信息:区id,字节数,块数。
  2. 区的大小设置:
    1. 一般oracle是自动分配,可以是8个块64k,也可以是128个块1m.
    2. 在创建表空间的时候可以在extent管理后面加上uniform size 10m 来手工指定。
      create tablespace tbs_ex10m datafile '/path/to/datafile.dbf' size 100m extent management local uniform size 10m segment space management auto;
      create table t2(id int) tablespace tbs_ex10m;

Segment: 表和索引是分开的segment

 

Tablespace:

  1. 表空间分类

    1. 系统表空间
    2. 临时表空间
    3. 回滚表空间
    4. 用户表空间
  2. 创建表空间
    1. 普通表空间

      CREATE TABLESPACE name
      DATAFILE '/path/to/datafile.dbf' SIZE 100M
      EXTENT MANAGEMENT local
      SEGMENT SPACE MANAGEMENT auto;

    2. 临时表空间
      CREATE TEMPORARY TABLESPACE name
      TEMPFILE '/path/to/datafile.dbf' SIZE 100M;

    3. 回滚段表空间
      CREATE UNDO TABLESPACE name
      DATAFILE '/path/to/datafile.dbf' SIZE 100M;

  3. 查看表空间相关的参数
    1. 数据字典dba_data_files:
      1. 数据库操作系统文件信息:文件名,文件号,
      2. 对应的表空间:表空间名,字节数,块数,状态,相关文件号,自动加区,最大字节,最大块数,加区增量,用户字节,用户块数,在线状态
      3. 没有all/user_data_files
    2. 查阅普通表空间的文件名
      COL FILE_NAME FORMAT A50
      SET LINESIZE 1000
      SELECT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE,BYTES
      FROM DBA_DATA_FILES WHERE TABLESPACE_NAME='tablesapcename'ORDER BY SUBSTR(FILE_NAME,-12);

    3. 查阅临时表空间的文件名
      SELECT FILE_NAME, AUTOEXTENSIBLE,BYTES
      FROM DBA_TEMP_FILES WHERE TABLESPACE_NAME='tablesapcename'
      ORDER BY SUBSTR(FILE_NAME,-12);

    4. 查看所有表空间
      SELECT TABLESPACE_NAME,FILE_NAME, AUTOEXTENSIBLE,BYTES FROM DBA_DATA_FILES;
      SELECT TABLESPACE_NAME,FILE_NAME, AUTOEXTENSIBLE,BYTES FROM DBA_TEMP_FILES;

    5. 查看永久空间类型
      SELECT TABLESPACE_NAME,CONTENTS FROM DBA_TABLESPACES;

    6. 创建用户时指定默认表空间
      CREATE USER username IDENTIFIED BY passwd DEFAULT TABLESPACE name TEMPORARY TABLESPACE name;

    7. 在默认表空间内查EXTENT相关信息
      col TAB format a10
      col TS format a10
      select segment_name TAB,extent_id,tablespace_name TS, bytes/1024 K, blocks from user_extents where rownum<100;

    8. 查看SEGMENT相关信息:哪个表空间?占用多少资源:块,区,字节?使用那个共享池buffer_pool?
      select segment_name,segment_type,tablespace_name,blocks,extents,bytes/1024/1024 M from user_segments where segment_name='T5C';

    9. 查看表空间剩余多少:从DBA_FREE_SPACE里面查
      select sum(bytes)/1024/1024 from dba_free_space where tablespace_name='SWAT';

    10. 查看表空间有多少空间:从DBA_DATA_FILES里面查
      select SUM(BYTES)/1024/1024 from dba_DATA_FILES where tablespace_name='SWAT';

    11. 表空间不足有两种方法:1.对表空间加数据文件。2.对数据库的数据文件打开自动扩展。
      ALTER TABLESPACE TBS_XX ADD DATAFILE '/path/to/datafilexxx.dbf' size 100m;
      ALTER DATABASE DATAFILE '/path/to/datafilexxx.dbf' autoextend on;

    12. 删除表空间,创建可自动增长的表空间:
      drop tablespace tb16k including contents and datafiles;
      create tablespace tbs_xxx datafile '/path/to/datafilexxx.dbf' size 100m autoextend on next 64k maxsize 5G;

    13. 回滚段表空间:undo表空间可以多个,当前只能使用1个(RAC环境例外)
      show parameter undo
      select tablespace_name, status from dba_tablespaces where contents='UNDO';
      alter system set undo_tablespace=undotbs2 scope=both;

    14. 建用户时可以指定表空间和临时表空间
      SELECT DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE FROM DBA_USERS WHERE USERNAME='SWAT';
      ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp02;

    15. 临时表空间组:dba_tablespace_groups为同一个用户在不同的session配不同的临时表空间,减少IO竞争,分配时自动分配空间给特定session。
      create temporary tablespace temp1_1 tempfile '/tmp/temp01.dbf' size 10m tablespace group tmpgrp1;
      create temporary tablespace temp1_2 tempfile '/tmp/temp02.dbf' size 10m tablespace group tmpgrp1;

      select * from dba_tablespace_groups;

      create temporary tablespace temp1_3 tempfile '/tmp/temp03.dbf' size 10m;

      alter tablespace temp1_3 tablespace group tempgrp1;

      alter user SWAT temporary tablespace tmpgrp1;

      select username,session_num,tablespace from v$sort_usage;

Oracle逻辑体系:数据文件黑盒的内在洞天的更多相关文章

  1. Oracle 逻辑体系

    Oracle 逻辑体系 主题 Oracle 逻辑体系 参考资料   Oracle 逻辑体系   表空间.模式.用户.段.区.块 Oracle中的数据逻辑上存储于表空间,物理上则存储于属于表空间tabl ...

  2. oracle 11g dbf数据文件从C盘迁移到D盘

    服务器系统为 windows 2008 R2 64位,由于C盘空间将满,要将C盘的oracle的DBF数据文件迁移到D盘下,步骤如下: 1.输入cmd,启动 cmd.exe窗口 2.输入 sqlplu ...

  3. 浅谈Oracle中物理结构(数据文件等。。。)与逻辑结构(表空间等。。。。。)

    初始Oracle时很难理解其中的物理结构和逻辑结构,不明白内存中和硬盘中文件的区别和联系,我也是初学Oracle,这里就简单的谈谈我我看法. 首先,你需要明白的一点是:数据库的物理结构是由数据库的操作 ...

  4. ORACLE模拟一个数据文件坏块并使用RMAN备份来恢复

    1.创建一个实验用的表空间并在此表空间上创建表 create tablespace blocktest datafile '/u01/oradata/bys1/blocktest.dbf' size ...

  5. oracle数据库单个数据文件的大小限制

    之前没有仔细想过这个问题,因为总是不会用到,也没有犯过类似错误. 顺便提一下学习方法吧. 卤肉的学习方法是:常用知识点,熟悉理论并反复做实验,深入理解:不常用的知识点,相关内容都了解大概,遇到问题时想 ...

  6. Oracle 10g DG 数据文件迁移

    背景:某客户Oracle 10g 的DG由于空间不足,之前将部分数据文件迁移到其他目录,如今原目录扩容成功,要将之前迁移的数据文件再次迁移回来. 环境:Oracle 10.2.0.5 DG 单机 首先 ...

  7. Oracle OMF管理数据文件

    1.什么是OMF? Oracle managed file的缩写,简单的理解,就是oracle自己管理自己的文件,可以是dbf,redolog 等等,具体可以参考官方文档Adiministrator中 ...

  8. oracle数据库丢失数据文件、控制文件、重做日志文件、初始化文件恢复方法

    rman  target/ list backup; 查看是否已备份,如果没有,那就不知道了 模拟故障,删除/u01/app/oracle/oradata/ORCL文件夹下的所有文件 sqlplus ...

  9. Linux环境下利用句柄恢复Oracle误删除的数据文件

    在误删除Oracle的数据文件后,如果未关闭数据库,文件句柄还没有释放,且被删除的数据文件占用的磁盘块未被复写,则可以利用句柄的方式来恢复数据文件.下面模拟恢复过程. (一)环境 OS版本:redha ...

随机推荐

  1. 伪分布式下的hadoop简单配置

    今天大概尝试了一下伪分布式下的hadoop部署,简单的来总结一下 首先我们需要下载hadoop的压缩包文件:http://hadoop.apache.org/releases.html这里是hadoo ...

  2. latex之设置字体大小

    \tiny\scriptsize\footnotesize\small\normalsize\large\Large\LARGE\huge\Huge

  3. VS2012添加ADO实体数据模型

    最近更新了开发工具为VS2012,在使用EntityFramework创建实体数据模型的时候,在添加选项中找不到这个选项. 确定了自己已经安装了EntityFramework,猜到估计是版本的问题,于 ...

  4. OpenShare文档管理不完整功能清单

    文档结构管理 以网站集-网站的方式建立各部门的文档管理中心,让文档管理更加规范,使用户更加方便地进行浏览.查找和使用文档资源. 文档全生命周期管理 结合定制开发的工作流平台对文档的全生命周期(创建.获 ...

  5. freeCodeCamp:Where art thou

    写一个 function,它遍历一个对象数组(第一个参数)并返回一个包含相匹配的属性-值对(第二个参数)的所有对象的数组.如果返回的数组中包含 source 对象的属性-值对,那么此对象的每一个属性- ...

  6. x64、x86_64、x64三者的区别

    x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,ntel官方文档里面称为“IA ...

  7. Hadoop集群错误

    1.Hadoop集群所有的DataNode都启动不了解决办法 删除从节点.../usr/hadoop/tmp/dfs/ 下内容,再重新格式化namenode

  8. iOS-GCD多线程

    GCD GCD -- Grand Central Dispatch 是基于C语言的底层API 用Block定义任务,将任务添加到线程中使用.集中管理 1.GCD的执行函数 //同步 dispatch_ ...

  9. 20150225--ASP.NET基础(2)

    一.引用外部样式表或JS,在<head>-</head>标签之间添加: <link href="yangshi.css" type="tex ...

  10. While readingiphone真机无法显示图片,而模拟器可以正常显示

    可能,很多开发IOS程序的遇到过在模拟器里,加载图片都是正常的,但是在真机里就会出现图片资源不能加载的问题. 其中一种原因是,在Simulator里面,例如:图片资源名称为:a.PNG,在代码你里,你 ...