背景信息:
- 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 语句会失败。这是因为磁盘已被另一个实例访问,并且无法在本地访问。