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.表空间可以指定要导入或者导出的应用数据。

 

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