易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle ASM存储方式浅析


AU
ASM的最小分配单元,默认是1M,可以在创建diskgroup时指定。在diskgroup中的每个盘都被切分为很多个AU,可以是1, 2, 4, 8, 16, 32, or 64MB。
File Extent
由一个或多个AU组成,一个file extent总是在一块磁盘上(不跨磁盘分配AU),这里的file extent和数据库中的extent是不同的,我们可以这样理解,这里的file extent是物理容器,而数据库中的extent是逻辑概念。
下图是AU和file extent的示意图,可以看到刚开始时一个file extent对应一个AU,到达某个数量级后,一个file extent对应8个AU,Oracle称之为Variable size file extent.
Mirror和Stripe
ASM如何做mirror和stripe,其实我们可以把ASM想象为一个存储设备,ASM的方式不是常见的磁盘对磁盘作RAID的方式,我猜测是类似于3PAR这种存储所采用的虚拟化方式,我们看看3PAR是如何处理的。3PAR将每块磁盘都切分为256M的单元(称为chunklet),创建logical disk(定义RAID类型),我们假设为RAID 10,系统自动选取不同磁盘上的chunklet先作mirror,然后再在这些mirror后的chunklet pair上做stripe,条带跨在logical disk上的所有物理磁盘,这样做的好处是因为磁盘被切分为很小的单元,可以实现动态负载迁移。而我们通常的存储,是要先固定的选取一些磁盘,比如8块磁盘,然后创建RAID group,然后在RAID group上创建逻辑盘,这种方式RAID group是固定的,除非重建否则没有办法动态调整。
Oracle ASM也有动态负载迁移的功能,我想Oracle应该是采用差不多的方式,所以Oracle也对磁盘首先划分为AU,AU组成了file extent,然后用file extent来做mirror,但并不是磁盘相同位置的extent来作mirror,Oracle只确保mirror的extent在不同的磁盘或者failure group上。有人问我一个问题,Oracle ASM是RAID10还是RAID 01,我的回答是从AU的角度去看,ASM是RAID 10,因为是先做了mirror,再做stripe。但是如果从磁盘的角度去看,因为不存在两个镜像盘的概念,所以它不是RAID 10,而是介于两者之间的一个东西。假设一个disk group中坏了一块磁盘,这时如果另一个disk group中包含了损坏的disk group上的mirror AU的磁盘也同时损坏,这个ASM就不可以恢复了。但ASM不是RAID 01,因为一个disk group中坏掉一块磁盘,并不意味着整个disk group坏掉,因为RAID 01的概念也是针对于磁盘的。
ASM的stripe有两种,分别是fine和Coarse,fine的stripe depth是128K,coarse的stripe depth等于AU的大小,默认是1M。Ora


相关文档:

Oracle 分区表

Oracle 分区表
Oracle提供了分区技术以支持VLDB(Very Large DataBase)。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。
Oracle的分区表可以包括多个分区,每个分区都是一个独立的段(SEGMENT),可以存放到不同的表空间中。查询时可以通过查询表来访问各个分区中的数据,也可以 ......

oracle Cursor使用大全

使用Cursor:
--测试一下,今天才申请使用itpub.net 的blog
declare
RoomID Room.RoomID%Type;
RoomName Room.RoomName%Type;
cursor crRoom is
select RoomID,RoomName
from Room;
begin
open crRoom;loop;
fetch crRoom into RoomID,RoomName;
exit when crRoom%notFound;
end loop;
close crRoom;
end;
& ......

Oracle中rownum的用法

1、查询第几行的记录
select sal from emp where rownum=1; //查询得到第一行记录
select sal from emp where rownum=5; //不可以查询到第五行记录,因为rownum 总是从1开始查询的,故这种方式不可以直接得到第几行的记录。若想得到第五行记录,应采用如下方式:
select r,sal from (select rownum r,sal from emp) wher ......

Oracle数据库中索引的维护

本文只讨论Oracle中最常见的索引,即是B-tree索引。本文中涉及的数据库版本是Oracle8i。
  一. 查看系统表中的用户索引
  在Oracle中,SYSTEM表是安装数据库时自动建立的,它包含数据库的全部数据字典,存储过程、包、函数和触发器的定义以及系统回滚段。
  一般来说,应该尽量避免在SYSTEM表中存储非SYSTEM用户的 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号