【翻譯自mos文章】ABMR:在asm 環境中測試Automatic Block Recover 特性的方法,mosabmr
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