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; <---当 AMBR starts and repairs时, 这一步会被 pause。



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

【翻译自mos文章】ABMR:在asm 环境中測试Automatic Block Recover 特性的方法的更多相关文章

  1. 【翻译自mos文章】回收 asm磁盘空间的方法

    回收 asm磁盘空间的方法 參考原文: How To Reclaim Asm Disk Space? (Doc ID 351866.1) 适用于: Oracle Database - Enterpri ...

  2. 【翻译自mos文章】在Oracle GoldenGate中循环使用ggserr.log的方法

    在OGG中循环使用ggserr.log的方法: 參考原文: OGG How Do I Recycle The "ggserr.log" File? (Doc ID 967932.1 ...

  3. 【翻译自mos文章】使用asm来部署 超大数据库(10TB到PB 范围)--针对oracle 10G

    使用asm来部署 超大数据库(10TB到PB 范围) 參考原文: Deployment of very large databases (10TB to PB range) with Automati ...

  4. 【翻译自mos文章】在12c数据库中,哪种audit trail 受到支持?

    在12c数据库中,哪种audit trail 受到支持? 来源于:What Audit Trail Types Are Supported For A 12c Database? (文档 ID 198 ...

  5. 【翻译自mos文章】11.2.0.4及更高版本号的asm实例中MEMORY_TARGET 和 MEMORY_MAX_TARGET的默认值和最小值

    [翻译自mos文章]11.2.0.4及更高版本号的asm实例中MEMORY_TARGET 和 MEMORY_MAX_TARGET的默认值和最小值 来源于: Default and Minimum ME ...

  6. Stack Overflow 排错翻译 - Closing AlertDialog.Builder in Android -Android环境中关闭AlertDialog.Builder

    Stack Overflow 排错翻译  - Closing AlertDialog.Builder in Android -Android环境中关闭AlertDialog.Builder 转自:ht ...

  7. 【翻译自mos文章】使用asmcmd命令在本地和远程 asm 实例之间 拷贝asm file的方法

    使用asmcmd命令在本地和远程 asm 实例之间 拷贝asm file的方法 參考原文: How to Copy asm files between remote ASM instances usi ...

  8. 【翻译自mos文章】11gR2中的asm后台进程

    11gR2中的asm后台进程 參考原文: ASM Background Processes in 11.2 (Doc ID 1641678.1) 适用于: Oracle Database - Ente ...

  9. 【翻译自mos文章】注意: ASMB process exiting due to lack of ASM file activity

    注意: ASMB process exiting due to lack of ASM file activity 參考原文: NOTE: ASMB process exiting due to la ...

随机推荐

  1. php 过滤敏感关键词

    php 过滤敏感关键词 function badwords($content){ $keywords=M("config")->where("name='badwo ...

  2. poj1958-汉诺四塔问题(三种方法)

    链接:http://poj.org/problem?id=1958 大意:汉诺塔升级版,四根柱子,n个盘子,求最少移动次数: 两种方法 递推or递归(当然还有思路3--打表) 思路1:递推(或者DP? ...

  3. Python 1:环境搭建及运行第一个程序

    在计算机控制面板中找到系统,然后点击高级系统设置,再点击环境变量,把安装的python.exe的目录复制到下面系统变量的path栏最后面,复制前加个分号以隔开前面的变量,然后按3次确定即可退出配置.具 ...

  4. TopK代码

    Hash表 #ifndef _HASH_H #define _HASH_H #include<string.h> #include<stdio.h> class HashTab ...

  5. 大白话理解promise对象

    Promise  代表了未来某个将要发生的事件(通常是一个异步操作)  Promise 是异步编程的解决方案,能够简化多层回调嵌套,代表了未来某个将要发生的事件.Promise是一个构造函数,本身有a ...

  6. ORACLE锁表解锁

    SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s W ...

  7. Assembly之Instruction之Byte and Word

    Byte and word issues The MSP430 is byte-addressed, and little-endian. Word operands must be located ...

  8. 安卓JNI使用C++类

    安卓JNI使用C++类,同时可使用C++的类成员变量,这就必须保证程序持续保存Native状态,即长期维护C++对象的地址.完成初始化之后,需要使用对象成员的java层函数需要传入对象的地址. 一.N ...

  9. Android使用NDK---函数参数传递-基本类型和数组

    参考链接:http://www.cnblogs.com/luxiaofeng54/archive/2011/08/19/2145486.html 数据传输可分为 基本数据类型传输 和 引用数据类型的传 ...

  10. 作业07之《MVC模式》

    MVC(Model View Controller)模型-视图-控制器 MVC与模板概念的理解 MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的 ...