首页 > 其他分享 >11g Active Dataguard的Automatic Block Repair特性

11g Active Dataguard的Automatic Block Repair特性

时间:2022-11-02 15:35:04浏览次数:52  
标签:Repair 11g rowid DG datafile 133 Dataguard SQL test

11g出来这么多年了,虽然早就知道这个特性,但一直也没有亲自测试一下,今天正好有业务需求,简单测试了下,记录之。

1. 在主库中创建测试用户和测试表(test.adg):
create user test identified by test;   create tablespace test datafile '+dg_data' size 100m autoextend off;   create table test.adg tablespace test as select * from dba_users;
insert into  test.adg select * from dba_users;
commit;   select rowid,
     dbms_rowid.rowid_relative_fno(rowid) rel_fno,       
     dbms_rowid.rowid_block_number(rowid) blockno, 
      dbms_rowid.rowid_row_number(rowid) rowno
         from test.adg    
order by rowid;   ROWID                 REL_FNO    BLOCKNO      ROWNO
------------------ ---------- ---------- ----------
AAAVbKAAGAAAACFAAY          6        133         24
AAAVbKAAGAAAACFAAZ          6        133         25
AAAVbKAAGAAAACFAAa          6        133         26
AAAVbKAAGAAAACFAAb          6        133         27
AAAVbKAAGAAAACFAAc          6        133         28
AAAVbKAAGAAAACFAAd          6        133         29
AAAVbKAAGAAAACFAAe          6        133         30   可以看出,测试数据主要分布在6号数据文件的133号数据块中。       2. 查看6号数据文件所在位置及文件大小:
SQL> select file#||' '||name||' '||bytes from v$datafile ;   FILE#||''||NAME||''||BYTES
--------------------------------------------------------------------------------
1 +DG_DATA/sdswhxcx/datafile/system.278.1119621897 786432000
2 +DG_DATA/sdswhxcx/datafile/sysaux.277.1119621899 555745280
3 +DG_DATA/sdswhxcx/datafile/undotbs1.276.1119621901 94371840
4 +DG_DATA/sdswhxcx/datafile/users.267.1119621901 5242880
5 +DG_DATA/sdswhxcx/datafile/undotbs2.265.1119622095 26214400
6 +DG_DATA/sdswhxcx/datafile/test.301.1119639739 104857600   6 rows selected.   SQL>       3.将主库的6号数据文件从ASM中复制到文件系统中:   sql>alter tablespace test offline;   # su - grid   ASMCMD> cp +DG_DATA/sdswhxcx/datafile/test.301.1119639739 /tmp/testdg.dbf   sql>alter tablespace test online;   # chown oracle:oinstall /tmp/testdg.dbf  
4编译bbed环境,破坏主库6号数据文件的133号数据块.   [oracle@19crac1 ~]$ more filelist.txt
6 /tmp/testdg.dbf 104857600   [oracle@19crac1 ~]$ more bbed.par
blocksize=8192
listfile=filelist.txt
mode=edit
[oracle@19crac1 ~]$  
bbed parfile=bbed.par  
set file 6 block 133   modify /x 8888 offset 4  
5. dbv验证文件系统的6号数据文件已经存在一个坏块。
dbv file=/tmp/testdg.dbf  
6. 将故意损坏的数据文件拷贝回主库的ASM中:
alter tablespace test offline;   ASMCMD> cp /tmp/testdg.dbf +DG_DATA
copying  -> +DG_DATA/testdg.dbf   alter database rename file '+DG_DATA/sdswhxcx/datafile/test.301.1119639739' to'+DG_DATA/testdg.dbf';
recover datafile 6;
alter tablespace test online;       7. 备库的dataguard不是real-time apply的情况下(也即不是active dataguard):
SQL> alter database recover managed standby database cancel;
SQL> alter database recover managed standby database disconnect from session;
SQL> select open_mode from v$database;   OPEN_MODE
--------------------
READ ONLY WITH APPLY   --主库查询仍然会提示坏块
SQL> select count(*) from test.adg;
select count(*) from test.adg
                          *
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 6, block # 133)
ORA-01110: data file 6: '+DG_DATA/testdg.dbf'  
SQL>  
8. 备库的dataguard修改为real-time apply的情况下(也即是active dataguard):
SQL> alter database recover managed standby database cancel;
SQL> alter database recover managed standby database using current logfile disconnect from session;
SQL> select open_mode from v$database;   OPEN_MODE
--------------------
READ ONLY WITH APPLY   --主库查询,坏块自动修复
SQL> select count(*) from test.adg;     COUNT(*)
----------
        62   SQL>   9.此时主库自动修复坏块的日志如下所示:
Tue Nov 01 19:18:40 2022
Corrupt Block Found
         TSN = 6, TSNAME = TEST
         RFN = 6, BLK = 133, RDBA = 25165957
         OBJN = 87754, OBJD = 87754, OBJECT = ADG, SUBOBJECT =
         SEGMENT OWNER = TEST, SEGMENT TYPE = Table Segment   Tue Nov 01 19:19:26 2022
Starting background process ABMR
Tue Nov 01 19:19:26 2022
ABMR started with pid=51, OS id=2443
Automatic block media recovery service is active.
Automatic block media recovery requested for (file# 6, block# 133)
Tue Nov 01 19:19:27 2022
Automatic block media recovery successful for (file# 6, block# 133)
Automatic block media recovery successful for (file# 6, block# 133)

标签:Repair,11g,rowid,DG,datafile,133,Dataguard,SQL,test
From: https://www.cnblogs.com/missyou-shiyh/p/16851147.html

相关文章

  • 浙江理工大学入队200题——11G
    问题G:零基础学C/C++122——杨辉三角题目描述还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:1111211331输入输入数据包含多......
  • 热修复之mysqlcheck,(数据库xx is marked as crashed and should be repaired故障)
    数据库报xxismarkedascrashedandshouldberepaired故障。检查单个库中的所有表:#mysqlcheck-cbasename-uroot-pEnterpassword:如下扫描到错误:检查,优化,修......
  • dataguard基本简介及三大保护模式介绍
    一、容灾复制方案1、阵列的复制技术(硬件)磁盘柜和磁盘柜之间远程不支持通过在阵列之间进行复制,异地保存数据对存储设备和网络环境要求比较高。比如EMC存储)2、基于逻......
  • Oracle-11g静默安装-netca.rsp
    响应模板文件netca.rsp,可以静默模式运行netca命令,配置并启动Oracle网络监听listener.ora和网络服务tnsnames.ora。##复制文件以备不时之需cp/home/oracle/database/respons......
  • Oracle-11g静默安装-db_install.rsp详解
    Oracle11g静默安装文件配置和解释,大部分的数据是不需要变更的,只变更你需要改动的地方,和图形界面安装结合起来,可快速理解。详解快速查看#标注响应文件版本,这个版本必须和要安......
  • boot-repair
    sudoadd-apt-repositoryppa:yannubuntu/boot-repair&&sudoapt-getupdatesudoapt-getinstall-yboot-repair&&boot-repair......
  • Oracle-11g_图形化界面安装
    写给自己,也写给大家,每天进步一点点。。。这两天都没运动,全搞这玩意了。记录一下,别忘了。关于数据库版本和操作系统版本之间相互兼容的问题,这个需要重视,以免出现,下面我在安装......
  • Oracle 11g 客户端连接 12g 服务端,程序启动报 ORA-28040 的解决
    客户端:11.1.0服务端:12.1.0Java程序启动时报错:org.apache.commons.dbcp.SQLNestedException:CannotcreatePoolableConnectionFactory(ORA-28040:Nomatchingauthent......
  • 11g rac添加数据文件至本地文件系统的异常处理演练
    文档课题:11grac添加数据文件至本地文件系统的异常处理演练.系统:centos7.964位数据库:11.2.0.464位环境:rac(双节点)+dg应用场景:巡检客户一套核心数据库时,发现存在一个数......
  • IEEE802.11g 标准的OFDM
    首先IEEE802.11g标准的OFDM的帧结构如下所示:关于802.11g,其基本的帧结构:       短训练序列分为10段,每段长度为16个抽样点;长训练序列分为2段,每段长度为128个抽样点,总......