• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

EPYC

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

ORACLE DATABASE 11G 体系结构 一. 逻辑存储部分 -----数据块,块转储,区,段

oracle的逻辑结构组件从小到大为:数据块,区,段,表空间

 

数据块:最小的数据块由存储系统中磁盘空间的一定量的字节组成。

数据块对应物理结构中的磁盘块,有2,4,8,16,32KB。

在设定数据块大小时,如果行比较小且访问比较随机(添加了索引),最好使用较小的数据块,当行比较小且访问是连续的或者行比较长时,需要使用较大尺寸的数据块。如果无法确定,推荐使用8KB。

某些情况下需要设置不同的数据块大小,如果选择了配置多个不同尺寸的数据块,则需要在SGA中进行配置(在高速缓存中配置相应子高速缓存),此配置仅为在具有不同数据块尺寸的数据库之间传送表空间。

 

当需要查看数据块中的实际数据时,可以通过转储块的内容查看(数据块默认二进制存储,需要转换),在转储过程中,有时会遇到块讹误,此时可以使用rman从讹误数据块恢复数据。

以下sql可以确定文件和块id的查询

sql>select segement_name;

  file_id,

  block_id,

FROM dba_extents

WHERE owner = 'OE'

AND segment_name LIKE 'ORDERS%';

或者select header_file,header_block FROM dba_segments

  WHERE segment_name = 'persons';

 

接着使用相应的文件和块号发布以下命令得到的所需转储块

SQL>alter system dump datafile xxx block xxx;

以上命令将在oracle数据库的默认跟踪目录(dump)下产生一个块转储

例如:dump file /u02/app/oracle/oradata/oracle/admin/pasu/udump/pasu_ora_1481594066.trc


以上可以从数据块中得到一些简单的信息,若想要查询更重要的数据,嘿嘿,我还不会。

 

区:几个相邻的数据块组成区,在创建表或者索引时,需要指定区的大小(第一个区)和下一个区(后续扩增的区)的大小。

段:分配给任一数据库对象的所有空间,即custome表对应custome段。

 

表空间:是数据库的主要逻辑结构,一般情况下,相关联的表会放在一个表空间下,表空间中的数据文件组成了数据库存放数据的物理空间。

默认情况下,oracle有5个表空间必须在安装实例时创建:SYS表空间,SYSAUX表空间,(撤销)undo表空间,(临时)temporary表空间和默认参数表空间。

为何sql server无表空间但是oracle有?

  1.表空间更容易将空间分配个不同用户

  2.数据仓库可以分配在几个表空间上,以此提高性能。

  3.可以offline单个表空间而不用停掉整个数据库。

  4.表空间可以指定要导入或者导出的应用数据。

 

 

posted on 2021-09-30 10:46  EPYC  阅读(221)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3