Oracle逻辑体系:数据文件黑盒的内在洞天

Block:

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

Extent:

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. 查阅普通表空间的文件名

      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);

    2. 查阅临时表空间的文件名

      SELECT FILE_NAME, AUTOEXTENSIBLE,BYTES
      FROM DBA_TEMP_FILES WHERE TABLESPACE_NAME=‘tablesapcename‘
      ORDER BY SUBSTR(FILE_NAME,-12);

    3. 查看所有表空间

      SELECT TABLESPACE_NAME,FILE_NAME, AUTOEXTENSIBLE,BYTES FROM DBA_DATA_FILES;
      SELECT TABLESPACE_NAME,FILE_NAME, AUTOEXTENSIBLE,BYTES FROM DBA_TEMP_FILES;

    4. 查看永久空间类型

      SELECT TABLESPACE_NAME,CONTENTS FROM DBA_TABLESPACES;

    5. 创建用户时指定默认表空间

      CREATE USER username IDENTIFIED BY passwd DEFAULT TABLESPACE name TEMPORARY TABLESPACE name;

时间: 2024-10-17 03:33:51

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

Oracle 逻辑体系

Oracle 逻辑体系 主题 Oracle 逻辑体系 参考资料 Oracle 逻辑体系 表空间.模式.用户.段.区.块 Oracle中的数据逻辑上存储于表空间,物理上则存储于属于表空间tablespace的数据文件上(DBF文件).表空间的物理体现是一个或多个DBF文件.数据库由一个或多个被称为表空间的逻辑存储单元构成.表空间是数据库恢复的最小单元.表空间是个逻辑上的概念. 模式schema就是指一个用户下所有对象的集合:创建一个新用户,该用户下没有对象则schema不存在,如果创建一个对象,则

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

服务器系统为 windows 2008 R2 64位,由于C盘空间将满,要将C盘的oracle的DBF数据文件迁移到D盘下,步骤如下: 1.输入cmd,启动 cmd.exe窗口 2.输入 sqlplus /nolog 3.输入 conn sys/[email protected] as sysdba 4.输入sql:select name from v$datafile; 查看相关data文件存放路径 5. shutdown immediate 关闭 6. startup mount; 7. a

Oracle快速导出数据文件

数据文件生成方式有多种,但是大多效率低下,对于大型数据仓库来说,高效导出文件是迫切需求: 这里通过shell+java的方式集成老熊写的数据文件生成工具,效率比普通的导出方法高70%: shell文件生成脚本: Java调用脚本:这里implement Callable接口,实现了多线程的调用方式: /** * @Title: Db2FileSync.java * @Package etl.etlUtils * @Description: TODO * @author Lubin Su * @d

Oracle OMF管理数据文件

1.什么是OMF? Oracle managed file的缩写,简单的理解,就是oracle自己管理自己的文件,可以是dbf,redolog 等等,具体可以参考官方文档Adiministrator中的17.Using Oracle Managed Files 2.如何查看当前系统是否使用了OMF? show parameter db_create; 参数的值是空的,说明我们没有使用OMF. 3.开启OMF alter system set db_create_file_dest='/oracl

oracle的dmp数据文件的导出和导入以及创建用户

关于dmp文件我们用的还是比较多的,dmp文件它是作为oracle导入和导出表使用的文件格式,今天就将dmp文件导出和导入进行学习. dmp文件导出 dmp文件导出用的比较多的一般是三种,他们分别是:导出整个数据库实例下的所有数据.导出指定用户的所有表.导出指定表. 这里已我的数据库为例,进行介绍,我的Oracle数据库实例为"ORACLE",查看自己数据库实例可以从"任务管理器-->服务"中进行查看,如下图 打开命令行: 1,将数据库ORACLE完全导出,用

oracle rman恢复数据文件路径不一致

编辑恢复脚本:vi recover.txt run{allocate channel c1 type sbt;allocate channel c2 type sbt;allocate channel c3 type sbt;allocate channel c4 type sbt;allocate channel c5 type sbt;allocate channel c6 type sbt;allocate channel c7 type sbt;allocate channel c8 t

Oracle 数据文件误删除的不完全恢复

应用环境: 我的一个表被人不小心误删除了,这时候,我不可以把整个库都恢复回去,那样太麻烦了. 所以现在我就从新到一个新库,只将这一个数据文件拷贝过来恢复. 那我们Oracle在恢复文件的时候是不可以只恢复一部分数据文件的,因为oracle  要保证数据文件块头信息一致,所以如果我们要恢复部分文件的话,就得采取以下这种方法: 可以另起一个库,再把要恢复的数据文件拷贝过来,恢复.(当然不单单是该数据文件,还要包括system表空间,undo表空间) 1)另起一个库很简单,可以搞出参数文件,在参数文件

在ORACLE中移动数据库文件

转载: --ORACLE数据库由数据文件,控制文件和联机日志文件三种文件组成. --由于磁盘空间的变化,或者基于数据库磁盘I/O性能的调整等, --我們可能会考虑移动数据库文件. --下面以LUNIX平台为例,分别讨论三种数据库文件的移动方法. 一.移动数据文件: -- 可以用ALTER DATABASE,ALTER TABLESPACE两种方法移动数据文件. 1. ALTER DATABASE方法: -- 用此方法,可以移动任何表空间的数据文件. STEP 1. 下数据库: $ sqlplus

移动数据文件的方法

有时某个磁盘的I/0可能过于繁忙,这可能影响到数据库系统的整体效率.此时就应该将一个或几个数据文件移动到其他磁盘上以平衡磁盘的I/O.另外在磁盘损坏的情况下也应该考虑移动数据文件.oracle提供了两条移动数据文件的指令. 一.移动非系统数据文件 alter tablespace tablespace_name rename datafile 'file_name.dbf' to 'file_name.dbf'; 该语句适合于上面没有活动的还原数据或者临时数据段的非系统表空间中的数据文件,要求在