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

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

背景信息:

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

故障组 Alpha 位于磁盘 1 上,故障组 Bravo 位于磁盘 2 上

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

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

  • 有没有办法告诉 Oracle 在故障组关闭的情况下启动实例,我们不关心,我们稍后会修复磁盘问题?
  • 或者我们是否必须先插入一个新磁盘才能重新启动实例?

这发生在我们的一个暂存区,我们想找出未来可以做些什么......特别是在没有备用磁盘的情况下。

答案1

磁盘组不会自动挂载,但您可以手动执行此操作:

ALTER DISKGROUP 你的磁盘组名称 MOUNT FORCE

使用 FORCE 选项安装磁盘组

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

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

如果 ASM 在磁盘组中找到至少一组完整的扩展区,则磁盘组挂载成功。如果 ASM 确定一个或多个磁盘不可用,则 ASM 会将这些磁盘移出线并在 DISK_REPAIR_TIME 到期后丢弃 [原文如此!] 这些磁盘。

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

相关内容