Oracle 11gR2 - 当 2 个故障组中的 1 个出现故障时,如何从正常冗余中恢复

Chr*_*kes 11 oracle oracle-asm

背景资料:

  • 甲骨文 11gR2
  • 2 个故障组 - 正常冗余
  • 每个故障组与单个磁盘关联

故障组 Alpha 在磁盘 1 上,故障组 Bravo 在磁盘 2 上

我们最近在我们的一台 Oracle 服务器上遇到了一个问题。我们的一个磁盘(我们称之为磁盘 1/故障组 Alpha)在 Oracle 运行时出现故障。当我们重新启动服务器时,Oracle 无法启动,因为我们没有足够的磁盘来满足我们的冗余要求。

我们怎样才能从这次失败中恢复过来?

  • 有没有办法告诉Oracle在故障组down的情况下启动实例,我们不在乎,我们稍后会修复磁盘问题?
  • 或者我们是否必须在实例再次启动之前弹出一个新磁盘?

这发生在我们的一个暂存区,我们想弄清楚将来可以做什么……特别是如果没有备用磁盘可用。

kub*_*zyk 1

磁盘组不会自动挂载,但您可以手动挂载:

更改磁盘组 your_disk_group_name MOUNT FORCE

使用 FORCE 选项安装磁盘组

在FORCE模式下,即使ASM无法发现属于该磁盘组的所有设备,也会尝试挂载该磁盘组。如果正常或高冗余磁盘组中的某些磁盘在卸载磁盘组时变得不可用,则此设置非常有用。

如果 ASM 发现磁盘组中的所有磁盘,则 MOUNT FORCE 失败。因此,仅当某些磁盘不可用时才使用 MOUNT FORCE 设置。否则,使用 NOFORCE [默认值]。

如果 ASM 在磁盘组中找到至少一组完整的盘区,则磁盘组挂载成功。如果 ASM 确定一个或多个磁盘不可用,则 ASM 会将这些磁盘移至脱机状态,并在 DISK_REPAIR_TIME 到期后删除[原文如此!] 这些磁盘。

在集群 ASM 环境中,如果 ASM 实例不是第一个挂载磁盘组的实例,则使用 MOUNT FORCE 语句会失败。这是因为磁盘已被另一个实例访问并且磁盘不可在本地访问。