当前位置:  数据库>oracle

Oracle存储结构之数据文件和表空间

    来源: 互联网  发布时间:2017-05-01

    本文导语: Oracle存储结构,可分物理结构和逻辑结构。后者是为方便管理前者而生。oracle把数据逻辑地存放在表空间里,物理地存放在数据文件里。    有两个视图,我们可能会常用到:  dba_data_files:描述数据文件的信息  dba_tablespaces:描...


Oracle存储结构,可分物理结构和逻辑结构。后者是为方便管理前者而生。oracle把数据逻辑地存放在表空间里,物理地存放在数据文件里。
 
  有两个视图,我们可能会常用到:
  dba_data_files:描述数据文件的信息
  dba_tablespaces:描述表空间的信息




  这里先谈三个问题。

  表空间的类型?
  1)永久性表空间,如:system,sysaux,user等
    sysaux用于存放非核心功能的数据,如OEM
    查看存放了哪些非核心功能的数据:
    select occupant_name,occupant_desc,schema_name
    from v$sysaux_occupants;
  2)临时表空间
    用于排序,创建索引
    oracle建议,为每个用户创建一个临时表空间;
    10g引入临时表空间组
  3)undo表空间
    虽有多个undo表空间,但任一时点,只有一个undo表空间被激活。










  不同类型的表空间会产生不同的写入方式和时机点
  永久性表空间
  DBWn写入有两种方式多个时机点
  方式一:
  LRU机制:
    LRU list:保存最近被存取的数据块;
    Dirty list:被修改但尚未写入数据文件的数据块;
  时机点:
  1)Dirty buffer达到阀值时
  2)没有free buffer时(server process在LRU list里找不到足够多的free buffer)
  3)每3秒,DBWn会去检查dirty list,如果dirty list未到域值,就去读LRU list,将dirty buffer移到dirty list;如果dirty list已满,则写入数据文件。
  方式二:
  检查点事件:
  时机点:
  1)log switch时,要求做检查点,即:把dirty buffer flush到数据文件。也即:DBWn将dirty buffer从LRU list中移到dirty list,然后把dirty list中的dirty block flush到数据文件。
  2)表空间下线或热备时,
  3)drop一个对象时,
  4)关闭数据库时
















  表空间组成?
  段:占用存储空间的数据库对象,如:emp表又叫emp段。可跨越数据文件,但不能跨越表空间。
  区:连续分配的空间。不能跨越数据文件。注意:这里的连续可能会带来空间碎片
  块:
  1)一个数据库中允许不同块大小,主要用于可传输表空间
  2)通常,数据库中5种不同块大小:默认和非默认。在特殊情况,还存有非标准(不是2的幂)。注意:system表空间总是使用默认块大小,一个表空间中所有块的大小都相同。
  3)块组成:
 块开销:块头,表目录,行目录(指针表:指向每条记录)
 空闲空间
 数据空间
  4)块头:数据块地址,数据块类型,事务表(ITL)
     ITL:行级锁和读一致性的实现基础,每条记录含:UBA(undo block address),事务号,SCN号
     一致性读:oracle对每次用户查询都要记录查询开始的SCN号,用于和数据块中的SCN号比较,如果数据块中的SCN号大于查询SCN,oracle就会利用UBA信息构造CR块,然后再比较CR块中的SCN号和查询SCN,如果仍然大于查询SCN,则还需要继续构造,直到CR块中的SCN小于或等于查询SCN,若还是找不到,就会报ora-01555错误了。












    
 
 

您可能感兴趣的文章:

  • oracle分页存储过程 oracle存储过程实例
  • Oracle自动存储管理支持库 ASMLib
  • Oracle存储过程调试简述
  • oracle的存储过程实例讲解
  • Oracle存储过程如何返回一个结果集&如何获取
  • 关于SHELL调用oracle存储过程出现的一个小问题
  • Oracle利用存储过程造数据
  • oracle数据库中查看系统存储过程的方法
  • 求教:shell 脚本怎么获取ORACLE存储过程的返回值?
  • 帮我看一下程序,java调用oracle数据存储的问题?
  • 谁有oracle存储过程的原代码?谢谢!
  • 关键字: oracle,存储过程,数据库,查询,动态sql包,数组,参传,jdbc 1
  • oracle 在一个存储过程中调用另一个返回游标的存储过程
  • Linux下用SHELL脚本执行带输入输出参数的ORACLE存储过程并得到结果
  • Oracle ASM自动管理存储管理简介
  • Linux下Oracle RAC一个节点宕机导致共享存储无法挂载的故障排除
  • 实现Oracle数据库的存储过程中拥有“role”权限
  • 对Oracle存储过程的几点认识
  • Oracle主键自增及存储过程的实现
  • Oracle索引存储关系到数据库的运行效率
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle物理结构概述
  • 轻松理解Oracle数据库中的物理结构
  • ORACLE 修改表结构 之ALTER CONSTAINTS的使用
  • 简述Oracle数据仓库的体系结构
  • oracle复制表结构和复制表数据语句分享
  • 手把手教你Oracle数据库导出数据库结构到PowerDesigner
  • oracle 数据库学习 基本结构介绍
  • Oracle体系结构需要首先了解的两个概念
  • Oracle网络应用结构
  • Oracle两个基本概念帮你了解体系结构
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux平台下Oracle 密码文件重建
  • Oracle数据库访问参数文件的顺序
  • Oracle 对数据文件大小的限制
  • Oracle移动数据文件到新分区步骤分析
  • 在jsp文件中怎么设置oracle的路径:很简单的,只是因为我不会;
  • Oracle的spfile参数文件
  • linux下通过对文件读取方式查询oracle的版本信息
  • 求高手指点shell导入.dat文件到ORACLE数据库
  • jsp文件连接oracle失败
  • linux 安装 oracle 运行./runinstall 提示没有这个文件
  • oracle删除文件后数据库启动不了的处理方法
  • 请教:为什么删除不掉?我用超级用户删除某一文件夹rm -R oracle失败。
  • Oracle控制文件多元化处理
  • Oracle数据库逻辑备份的SH文件
  • 利用多个转储文件导出大量Oracle数据
  • 50分的题:如何给oracle减肥?在linux多目录的环境下查找体积最大的单个文件??
  • 用oracle pl/sql 从A unix机器,去读取B unix机器上的一个文件,怎么实现?
  • 读取oracle数据库表写文件慢
  • 如何向oracle中写入一个大文件?谢谢!
  • jsp文件上传smartupload到oracle数据库中没有longblob的数据类型如何处理的?
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle 数据库开发工具 Oracle SQL Developer
  • Oracle 10g和Oracle 11g网格技术介绍
  • Oracle EBS R12 支持 Oracle Database 11g
  • oracle中如何把表中具有相同值列的多行数据合并成一行


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,