欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

【翻译自mos文章】ABMR:在asm环境中测试AutomaticBlockRecover

程序员文章站 2022-06-08 21:45:16
...

ABMR:在asm 环境中测试Automatic Block Recover 特性的方法 参考原文: ABMR: How to test Automatic Block Recover Feature with ASM setup (Doc ID 1510090.1) 适用于: Oracle Database - Enterprise Edition - Version 11.2.0.3 and later Information


ABMR:在asm 环境中测试Automatic Block Recover 特性的方法

参考原文:
ABMR: How to test Automatic Block Recover Feature with ASM setup (Doc ID 1510090.1)

适用于:
Oracle Database - Enterprise Edition - Version 11.2.0.3 and later
Information in this document applies to any platform.


目标:
警告---注意:本文提供的步骤仅限于测试abmr特性的目的,并且仅能在测试环境中执行。

本文描述了:在一个standby 环境中,产生block corruption 的步骤 以及 recover 坏块,
recover 坏块 使用的是ABMR ( Auto BMR Background Process ) 特性

本文只用于测试目的下的 使用外部冗余的asm 环境。

作为一个预先需求,主库和备库应该被适当配置并工作正常(即:同步正常)



环境是实时应用下的 physical standby database:

SQL> select DATABASE_ROLE, open_mode from v$database; --> From standby

DATABASE_ROLE OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY READ ONLY WITH APPLY


解决方案:

1) 在asm中建立一个tablespace,
SQL> create tablespace test datafile '+/..../datafile/test1.dbf' size 1M autoextend on;
2)在上一步建立的表空间中建立表,并在表中注入测试数据。
SQL> create table abmr_test tablespace test as select * from all_objects;
SQL> commit;
--->注意:commit可以不要,因为ddl是隐含提交的。原文如此。


3)Offline the tablespace,然后把datafile 拷贝到文件系统中。
SQL> alter tablespace test offline;
4)调用asmcmd
$ asmcmd -p

ASMCMD [+] > cp +/.../datafile/test1.dbf /tmp/.

5)破坏这个datafile
dd of=/tmp/test1.dbf bs=8192 conv=notrunc seek=11

6)运行dbv 确认该文件损坏(corruption)
dbv file=/tmp/test1.dbf blocksize=8192 feedback=10000


7) 把这个文件拷贝回asm,然后使用dbv验证坏块
$ asmcmd -p

ASMCMD [+] > cp /tmp/test1.dbf +/.../datafile/test1.dbf

$ dbv file= /tmp/test1.dbf +/.../datafile/test1.dbf userid=../.. blocksize=8192 feedback=10000

8)online datafile

SQL> alter tablespace test online;

9)查询表--验证 Automatic block recovery启动并修复了损坏的blocks

SQL> select * from ABMR_TEST;
10)tail -f alert.log,会看到ambr进程正在工作:

Automatic block media recovery service is active.
Automatic block media recovery requested for (file# 9, block# 11)
..........
Automatic block media recovery successful for (file# 9, block# 11)


上面的测试过程是于abmr 相关的。
当使用rman 引入(制造)一个坏块,通过拷贝file到os,损坏该文件,然后restore 到原来位置,这么制造坏块,abmr是不工作的
这是因为当restore时,rman本身会检测到corrupt 并且会在alert中爆出ora-01578错误

当rman 检测到corrupt时, the 'Auto BMR' 特性不会被触发。

参考:
Note : 1266059.1 ABMR: How to test Automatic Block Recover Feature