小编der*_*ert的帖子

如何让 Oracle ASM 扫描并修复无法纠正的 ECC 错误(坏扇区)?

我在 SATA 磁盘(WD Raptors)上运行具有正常冗余的 Oracle ASM (11gR2)。如果重要的话,这是在物理备用数据库上。有时,磁盘扇区会出现读取错误(ECC 故障)。发生这种情况时,该块不再被镜像,但 ASM 不知道这一点。

如何让 ASM 读取它控制的分区,并确保每个块都是可读的?

理想情况下,它还将确认镜像的双方匹配,并重写磁盘报告无法纠正的 ECC 错误的任何扇区。

(即,我想要相当于 mdraidecho 'repair' > /sys/block/md0/md/sync_action或硬件 RAID 控制器的背景一致性检查。)

2012 年 1 月 3 日更新:到目前为止,我发现的最好方法是更改​​磁盘组以删除磁盘,等待重新平衡完成,使用操作系统实用程序将磁盘归零,然后重新添加磁盘。这当然不会比较镜像的两侧,但至少会重新分配任何坏道。似乎必须有更好的方法。很难相信 ASM 缺少这样一个标准的 RAID 功能。

oracle oracle-11g-r2 oracle-asm

6
推荐指数
1
解决办法
1755
查看次数

在两台服务器的 dataguard 设置中,我可以将恢复目录存储在同一个数据库中吗?

我们目前有一个使用 rman 备份的 Oracle 11gR2 数据库,rman 记录存储在控制文件中。控制文件自动备份已开启。备份到磁盘(最终通过 Bacula 备份到更多磁盘和磁带,但 rman 不知道这一点)。

我计划使用 Data Guard Redo Apply 添加物理备用数据库。Data Guard 和 RMAN 文档都告诉我现在必须使用恢复目录。实际上,据我所知,我并不需要恢复目录的任何功能。控制文件很好。我不需要从主数据库卸载备份;它有足够的能力自己完成它们(并且工作量基本上保证了情况总是如此)。

所以,我会把它放在同一个数据库中(我用 rman 备份的那个),但那些相同的文件告诉我我不能,但他们到目前为止我发现的唯一原因是:

为了说明为什么建议进行数据分离,假设您将数据库 prod1 的目录存储在 prod1 中。如果 prod1 遭受完全介质故障,并且 prod1 的恢复目录也存储在 prod1 中,那么如果您丢失了数据库,您也会丢失恢复目录。

但这不是真的。恢复目录仍然存在于备用数据库上。即使主数据库和备用数据库同时损坏(比如,由于一个疯子sqlplus提示,但也会破坏单独数据库中的恢复目录),他们说:

此时,唯一的选择是恢复 prod1 控制文件的自动备份,并使用它来恢复和恢复数据库,而无需使用恢复目录中存储的任何信息。(“保护恢复目录”来自Oracle 数据库备份和恢复用户指南 11g 第 2 版 (11.2),第 13-15 页。)

使用控制文件备份的“唯一选择”听起来一点也不糟糕。

我错过了什么吗?将恢复目录放在同一个数据库中是否有一些不明显的缺点,或者这真的只是更大操作中的一个问题?

(也会标记这个恢复目录和数据保护,但似乎我不能在这里少于 300 个代表)

oracle oracle-11g-r2 rman

4
推荐指数
1
解决办法
1273
查看次数

标签 统计

oracle ×2

oracle-11g-r2 ×2

oracle-asm ×1

rman ×1