修复DataGuard备库中的datafile坏块一例

简介: 模拟备库块损坏使用swingbench给主库施加一定的压力

模拟备库块损坏

使用swingbench给主库施加一定的压力

./oewizard -cl -create -scale 1 -cs //192.168.×:1521/guangxi -dbap dingjia -u soe1 -p soe1  -ts soe1  -df /u01/app/oracle/oradata/guangxi/soe1.dbf  -s 
./charbench  -c ../configs/SOE_Server_Side_V2.xml -u soe1 -p soe1 -r hu.xml -stats full -dbap dingjia -dbau "sys as sysdba" -uc 1 -rt 0:01 -cs //192.168.×/guangxil

手工用dd在备库上制作一个坏块。


$ dd of=/u01/app/oracle/oradata/guangxist/system01.dbf bs=8192 conv=notrunc seek=23  <<EOF
> Corrupt block! Corrupt block! Corrupt block! Corrupt block! Corrupt block!
> EOF
0+1 records in
0+1 records out
75 bytes (75 B) copied, 0.00150869 s, 49.7 kB/s


检查备库,发现已经有坏块了:

RMAN>  backup validate check logical tablespace system;
Starting backup at 09-JUN-20
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1149 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/guangxist/system01.dbf
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
List of Datafiles
=================
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
1    FAILED 0              18740        41600           2616809   
  File Name: /u01/app/oracle/oradata/guangxist/system01.dbf
  Block Type Blocks Failing Blocks Processed
  ---------- -------------- ----------------
  Data       0              14917           
  Index      0              4865            
  Other      1              3078            
validate found one or more corrupt blocks
See trace file /u01/app/oracle/diag/rdbms/guangxi1/guangxist/trace/guangxist_ora_22286.trc for details
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
List of Control File and SPFILE
===============================
File Type    Status Blocks Failing Blocks Examined
------------ ------ -------------- ---------------
SPFILE       OK     0              2               
Control File OK     0              596             
Finished backup at 09-JUN-20
SQL> select * from v$database_block_corruption;
     FILE#     BLOCK#   BLOCKS CORRUPTION_CHANGE# CORRUPTIO
---------- ---------- ---------- ------------------ ---------
  1    23        1    0 CORRUPT
SQL> set linesize 200
select d.DB_UNIQUE_NAME,d.open_mode,d.log_mode,d.DATABASE_ROLE,d.PROTECTION_MODE from v$database d;SQL> 
DB_UNIQUE_NAME         OPEN_MODE     LOG_MODE  DATABASE_ROLE   PROTECTION_MODE
------------------------------ -------------------- ------------ ---------------- --------------------
guangxi1         MOUNTED      ARCHIVELOG  PHYSICAL STANDBY MAXIMUM PERFORMANCE
SQL>



在主库执行被损坏的表空间的备份并传输到备库

RMAN> backup datafile 1 format '/u01/app/oracle/oradata/guangxi/systembk-%U.dbf';
[oracle@oracle11-1 ~]$ scp  /u01/app/oracle/oradata/guangxi/systembk-0* oracle@192.168.×:/u01/app/oracle/oradata
oracle@192.168.×'s password: 
systembk-0rv2api9_1_1.dbf                                                                                                                                                 100%  191MB  10.6MB/s   00:18    
systembk-0sv2apig_1_1.dbf                                                                                                                                                 100% 9632KB   4.7MB/s   00:02

在备库上恢复

停止备库的同步


SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;


使用rman恢复备份集:

RMAN> catalog start with '/u01/app/oracle/oradata/systembk-0rv2api9_1_1.dbf';
RMAN> catalog start with '/u01/app/oracle/oradata/systembk-0sv2apig_1_1.dbf';
RMAN> restore datafile 1;
Starting restore at 09-JUN-20
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=13 device type=DISK
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/guangxist/system01.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/oradata/systembk-0rv2api9_1_1.dbf
channel ORA_DISK_1: piece handle=/u01/app/oracle/oradata/systembk-0rv2api9_1_1.dbf tag=TAG20200609T134648
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:15
Finished restore at 09-JUN-20


恢复完成再检验,发现坏块已经修复:

RMAN> backup validate check logical tablespace system;
Starting backup at 09-JUN-20
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/guangxist/system01.dbf
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07
List of Datafiles
=================
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
1    OK     0              11572        41601           2693637   
  File Name: /u01/app/oracle/oradata/guangxist/system01.dbf
  Block Type Blocks Failing Blocks Processed
  ---------- -------------- ----------------
  Data       0              14917           
  Index      0              4865            
  Other      0              10246           
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
List of Control File and SPFILE
===============================
File Type    Status Blocks Failing Blocks Examined
------------ ------ -------------- ---------------
SPFILE       OK     0              2               
Control File OK     0              596             
Finished backup at 09-JUN-20
RMAN>




启动主库备库的数据同步


SQL> select * from v$database_block_corruption;
no rows selected
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Database altered.



验证数据同步正常


image.png

image.png

相关文章
|
分布式计算 DataWorks NoSQL
DataWorks操作报错合集之从MongoDB同步数据到MaxCompute(ODPS)时,出现报错,该怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
DataWorks操作报错合集之从MongoDB同步数据到MaxCompute(ODPS)时,出现报错,该怎么解决
|
存储 机器学习/深度学习 人工智能
重磅联名 | 阿里云&百奥利盟构建云上精准医疗与创新生物药信息化管理平台
阿里云计算巢与为全球生命科学信息化解决方案服务商百奥利盟达成合作,百奥利盟®系统 + 计算巢强强优势联合,构建云上精准医疗与创新生物药信息化管理平台。
606 0
重磅联名 | 阿里云&百奥利盟构建云上精准医疗与创新生物药信息化管理平台
|
7天前
|
人工智能 运维 安全
|
5天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
623 23
|
6天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
12天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
991 110