首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > Failure Groups in ASM
【标  题】:Failure Groups in ASM
【关键字】:Failure,Groups,in,ASM
【来  源】:http://www.cublog.cn/u/19769/showart.php?id=244125

Failure Groups in ASM

Oracle Database 10g中出现的ASM(Automatic Storage Management,自动存储管理)技术提供了一种镜像冗余的方法,用以保护可能出现的磁盘故障而导致的数据丢失。要知道,以前也许我们需要RAID来达到这样的目的,但是现在Oracle数据库本身就提供给你这样的选项了,Oracle的意思是,把所有的鸡蛋都放到Oracle这个篮子里面吧,我们是Unbreakable的。

ASM提供了3种冗余方法。

external redundancy表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术。
normal redundancy(默认方式)表示Oracle提供2路镜像来保护数据。
high redundancy表示Oracle提供3路镜像来保护数据。

先预告一下,有时间再写吧,相信我,有内部资料的(本文用词很多来自某些metalink internal资料的翻译,因为inernal所以就不做link了),呵呵。

什么是 ASM failure group?
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都损坏了,数据也是毫发无伤的。

Oracle在分配extent的时候,所有failure group中的这个将拥有相同数据的extent称为一个extent set,当Oracle将数据写入文件的时候,primary copy可能在任何一个failure group中,而second copy则在另外的failure group中,当Oracle读取数据的时候,除非是primary copy不可用,否则将优先从primary copy中读取数据,通过这种写入无序,读取有序的算法,Oracle保证了数据读取尽量分布在多个disk中。

因为公用一个硬件模块的磁盘很可能会同时损坏或者失效,所以通常我们在设计failure group时,应该把一个大的盘阵中在一个tray中的磁盘放在一个failure group中,这样我们就可以拿走一个tray,失效这个failure group,然后换上新的tray和磁盘,这跟RAID的思想是一样的。

ASM的冗余方式一经设定就无法更改,如果我们想把normal redundancy改为high redundancy就只能是创建一个新的failure group,然后把旧failure group中的文件通过RMAN或者DBMS_FILE_TRANSFER的方法移动到新failure group中去。

如果在ASM环境中没有创建failure groups情况会怎样?
即使没有显式指定,failure groups也是始终会创建的。在这种情况下,每个disk都属于一个failure group,在创建磁盘组的时候,failure group也会默认创建,名称就是disk的名字。

应该创建多少failure groups?

什么时候该用external redundancy什么时候该用normal或者high redundancy?

如果failure group出现故障怎样恢复?
- 如何使用kfed实用程序来查看ASM Disk header

我们测试的数据库是Oracle10.2.0.2,首先需要编译生成kfed程序,在其它版本的Oracle中生成kfed的方法会略有不同。
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk ikfed
此时$ORACLE_HOME/bin目录中将会产生kfed程序。

使用kfed的语法是:kfed read *devicename* text=*filename*
假设我们要读取/dev/raw/raw1的文件头,那么使用下面的语句
kfed read /dev/raw/raw1 text=raw1.out
这样raw1的文件头信息将会被dump到raw1.out文件中,大家有兴趣可以去看一下文件内容,基本上通过名字和值还是能猜测出都是些什么内容的,包括了这个ASM Disk创建时间是什么,每个block多大,Disk名字是什么,属于哪个Disk Group,Header Status是怎么样的。虽然大部分内容都可以从ASM实例的数据字典中获得,但是在我们碰到ASM磁盘故障的时候,kfed提供的信息往往更容易让我们判断问题点。

- 如何清理ASM Disk

有时候一个ASM Disk由于故障,导致我们删也删不掉,加也加不进去,通常现象是磁盘的header status状态不正确但是disk header中仍然保留了部分磁盘组的信息。此时我们就需要clear这个磁盘,然后再将它重新加入磁盘组中。
dd if=/dev/zero of= *diskname* bs= *blocksize* count=10000

ORA-01119 and ORA-27040解决办法:【上一篇】
oracle下快速删除一个表:【下一篇】
【相关文章】
  • linux下网络配置之ip配置篇
  • linux系统:mkroot: label / not found的解决方法
  • Windows下安装svn服务
  • Redhat Linux AS4使用经验记录
  • Linux常用监控和管理命令
  • 虚拟 Linux
  • 谁在禁止Novell发行Linux?
  • 三次握手协议在linux内核中的实现
  • 用机器生成的音乐监控 Linux 计算机
  • 在 Cell BE 处理器上编写高性能的应用程序,第 1 部分: 简介 PLAYSTATION 3 上的 Linux
  • 【随机文章】
  • Subversion 系统
  • window系统下的远程堆栈溢出 --《实战篇》
  • 用栈实现迷宫问题求解
  • Ethernet HOWTO Linux以太网-HOWTO (2)常见问题
  • javax.servlet.RequestDispatcher翻译
  • 锐捷网络RedGaint_Supplicant_802.1x 客户端应用软件2.45_0_0测试版破解手记
  • 使用IBatis作数据缓存
  • 家用综合布线管理系统的应用及主要问题
  • 个人推广联盟 : 个人推广联盟-无需有网站,1000积分=60元! √
  • 无线PCI适配器WMP54G
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.