system数据文件520块损坏修复--dd+rman

上一篇文章使用bbed破坏数据块,并使用离线备份和原来的值还原了数据
这里再从OS层面以及不使用bbed而使用dd+rman的方式进行破坏和修复,进一步理解。

首先备份数据库

  1. RMAN> backup database;

  2. 启动 backup 于 27-6月 -16
  3. 使用通道 ORA_DISK_1
  4. 通道 ORA_DISK_1: 正在启动全部数据文件备份集
  5. 通道 ORA_DISK_1: 正在指定备份集内的数据文件
  6. 输入数据文件: 文件号=00001 名称=/oracle/oradata/sdk/system01.dbf
  7. 输入数据文件: 文件号=00002 名称=/oracle/oradata/sdk/sysaux01.dbf
  8. 输入数据文件: 文件号=00004 名称=/oracle/oradata/sdk/users01.dbf
  9. 输入数据文件: 文件号=00003 名称=/oracle/oradata/sdk/undotbs01.dbf
  10. 输入数据文件: 文件号=00005 名称=/oracle/oradata/sdk/example01.dbf
  11. 输入数据文件: 文件号=00006 名称=/oracle/scripts/sql/TBS_A.DBF
  12. 通道 ORA_DISK_1: 正在启动段 1 于 27-6月 -16
  13. 通道 ORA_DISK_1: 已完成段 1 于 27-6月 -16
  14. 段句柄=/oracle/flash_recovery_area/SDK/backupset/2016_06_27/o1_mf_nnndf_TAG20160627T235006_cq2lshlh_.bkp 标记=TAG20160627T235006 注释=NONE
  15. 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:45
  16. 通道 ORA_DISK_1: 正在启动全部数据文件备份集
  17. 通道 ORA_DISK_1: 正在指定备份集内的数据文件
  18. 备份集内包括当前控制文件
  19. 备份集内包括当前的 SPFILE
  20. 通道 ORA_DISK_1: 正在启动段 1 于 27-6月 -16
  21. 通道 ORA_DISK_1: 已完成段 1 于 27-6月 -16
  22. 段句柄=/oracle/flash_recovery_area/SDK/backupset/2016_06_27/o1_mf_ncsnf_TAG20160627T235006_cq2lws73_.bkp 标记=TAG20160627T235006 注释=NONE
  23. 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
  24. 完成 backup 于 27-6月 -16
dd破坏数据文件

  1. [root@kvm61 ~]# dd if=/dev/zero of=/oracle/oradata/sdk/system01.dbf bs=8192 seek=520 count=1 conv=notrunc
  2. 记录了1+0 的读入
  3. 记录了1+0 的写出
  4. 8192字节(8.2 kB)已复制,0.000719519 秒,11.4 MB/
数据库启动失败

  1. SQL> shutdown immediate
  2. 数据库已经关闭。
  3. 已经卸载数据库。
  4. ORACLE 例程已经关闭。
  5. SQL> startup
  6. ORACLE 例程已经启动。

  7. Total System Global Area 513585152 bytes
  8. Fixed Size 2214856 bytes
  9. Variable Size 289408056 bytes
  10. Database Buffers 213909504 bytes
  11. Redo Buffers 8052736 bytes
  12. 数据库装载完毕。
  13. ORA-01092: ORACLE instance terminated. Disconnection forced
  14. ORA-00704: bootstrap process failure
  15. ORA-01578: ORACLE data block corrupted (file # 1, block # 520)
  16. ORA-01110: data file 1: '/oracle/oradata/sdk/system01.dbf'
  17. 进程 ID: 3700
  18. 会话 ID: 125 序列号: 5
检查损坏的数据文件


  1. [oracle@kvm61 ~]$ dbv file=/oracle/oradata/sdk/system01.dbf blocksize=8192
  2. DBVERIFY: Release 11.2.0.1.0 - Production on 星期二 6月 28 00:18:27 2016
  3. Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
  4. DBVERIFY - 开始验证: FILE = /oracle/oradata/sdk/system01.dbf
  5. 页 520 标记为损坏
  6. Corrupt block relative dba: 0x00400208 (file 1, block 520)
  7. Completely zero block found during dbv:
  8. DBVERIFY - 验证完成
  9. 检查的页总数: 88320
  10. 处理的页总数 (数据): 59589
  11. 失败的页总数 (数据): 0
  12. 处理的页总数 (索引): 12419
  13. 失败的页总数 (索引): 0
  14. 处理的页总数 (其他): 3417
  15. 处理的总页数 (段) : 1
  16. 失败的总页数 (段) : 0
  17. 空的页总数: 12894
  18. 标记为损坏的总页数: 1
  19. 流入的页总数: 0
  20. 加密的总页数 : 0
  21. 最高块 SCN : 2423027 (0.2423027)
启动数据库到mount状态


  1. SQL> connect / as sysdba
  2. 已连接到空闲例程。
  3. SQL> startup nomount
  4. ORACLE 例程已经启动。

  5. Total System Global Area 513585152 bytes
  6. Fixed Size 2214856 bytes
  7. Variable Size 289408056 bytes
  8. Database Buffers 213909504 bytes
  9. Redo Buffers 8052736 bytes

  10. SQL> alter database mount;

  11. 数据库已更改。

rman恢复被损坏的数据块

  1. RMAN> blockrecover datafile 1 block 520;

  2. 启动 recover 于 28-6月 -16
  3. 分配的通道: ORA_DISK_1
  4. 通道 ORA_DISK_1: SID=10 设备类型=DISK

  5. 通道 ORA_DISK_1: 正在还原块
  6. 通道 ORA_DISK_1: 正在指定要从备份集还原的块
  7. 正在还原数据文件 00001 的块
  8. 通道 ORA_DISK_1: 正在读取备份片段 /oracle/flash_recovery_area/SDK/backupset/2016_06_27/o1_mf_nnndf_TAG20160627T235006_cq2lshlh_.bkp
  9. 通道 ORA_DISK_1: 段句柄 = /oracle/flash_recovery_area/SDK/backupset/2016_06_27/o1_mf_nnndf_TAG20160627T235006_cq2lshlh_.bkp 标记 = TAG20160627T235006
  10. 通道 ORA_DISK_1: 已从备份片段 1 还原块
  11. 通道 ORA_DISK_1: 块还原完成, 用时: 00:00:25

  12. 正在开始介质的恢复
  13. 介质恢复完成, 用时: 00:00:01

  14. 完成 recover 于 28-6月 -16

对应的告警日志


  1. Tue Jun 28 00:21:18 2016
  2. alter database recover datafile list clear
  3. Completed: alter database recover datafile list clear
  4. Started Block Media Recovery
  5. Recovery of Online Redo Log: Thread 1 Group 1 Seq 73 Reading mem 0
  6. Mem# 0: /oracle/oradata/sdk/redo01.log
  7. Completed Block Media Recovery
打开数据库

SQL> alter database open;

 

数据库已更改。




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29023300/viewspace-2121079/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29023300/viewspace-2121079/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值