nocode 发表于 2011-12-23 01:23

测试ASM的Failure Group功能

<P>ASM提供了3种冗余方法。</P>
<P>external redundancy表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术。 <BR>normal redundancy(默认方式)表示Oracle提供2路镜像来保护数据。 <BR>high redundancy表示Oracle提供3路镜像来保护数据。</P>
<P>什么又是ASM failure group呢?</P>
<P>Oracle通过failure group来提供数据的高可用性。ASM使用的镜像算法并不是镜像整个disk,而是作extent级的镜像。所以很明显如果为各个failure group使用不同容量的disk是不明智的,因为这样在Oracle分配下一个extent的时候可能就会出现问题。在normal redundancy模式下,ASM环境中每分配一个extent都会有一个primary copy和一个second copy,ASM的算法保证了second copy和primary copy一定是在不同的failure group中,这就是failure group的意义。通过这个算法,ASM保证了即使一个failure group中的所有disk都损坏了,数据也是毫发无伤的。</P>
<P>Oracle在分配extent的时候,所有failure group中的这个将拥有相同数据的extent称为一个extent set,当Oracle将数据写入文件的时候,primary copy可能在<STRONG>任何一个</STRONG>failure group中,而second copy则在另外的failure group中,当Oracle读取数据的时候,除非是primary copy不可用,否则将<STRONG>优先从primary copy中读取数据</STRONG>,通过这种写入无序,读取有序的算法,Oracle保证了数据读取尽量分布在多个disk中。</P>
<P><a href="http://blog.chinaunix.nethttp://blog.chinaunix.net/attachment/201110/25/3634_13195238341nnF.gif" target="_blank"><IMG .load="imgResize(this, 650);" border=0 src="http://blog.chinaunix.nethttp://blog.chinaunix.net/attachment/201110/25/3634_13195238341nnF.gif" ;></A></P>
<P>因为公用一个硬件模块的磁盘很可能会同时损坏或者失效,所以通常我们在设计failure group时,应该把一个大的盘阵中在一个tray中的磁盘放在一个failure group中,这样我们就可以拿走一个tray,失效这个failure group,然后换上新的tray和磁盘,这跟RAID的思想是一样的。</P>
<P>ASM的冗余方式一经设定就无法更改,如果我们想把normal redundancy改为high redundancy就只能是创建一个新的failure group,然后把旧failure group中的文件通过RMAN或者DBMS_FILE_TRANSFER的方法移动到新failure group中去。</P>
<P>&nbsp;</P>
<P><FONT color=#f00000>主要内容参考 </FONT><A href="http://candon123.blog.51cto.com/704299/398462" target=_blank><FONT color=#f00000>http://candon123.blog.51cto.com/704299/398462</FONT></A></P>
页: [1]
查看完整版本: 测试ASM的Failure Group功能