RMAN实战12:ORACLE数据块坏块的检查和恢复

数据块的故障很少见,一般是因为磁盘IO引起的,如果数量块坏块少可以执行恢复数据块的恢复,如果量大则就用数据文件或者表空间的恢复。在运行backup validate、或者backup validate命令时会进行坏块的检查。

检查数据文件和备份文件坏块的命令

  • validate (仅仅支持11G和更高版本,低版本用下面两个)
  • backup …validate
  • restore …validate

validate

摘录一段《深入理解ORACLE 12C 数据库管理》中的一段原文:
Using VALIDATE
The VALIDATE command can be used stand-alone to check for missing files or physical corruption in database data files, archive redo log files, control files, spfiles, and backup set pieces.

 #validate all data files and the control files:
RMAN> validate database;
#You can also validate just the control file, as follows:
RMAN> validate current controlfile;
#You can validate the archive redo log files, like so:
RMAN> validate archivelog all;
#You may want to combine all the prior integrity checks into one command, as shown:
RMAN> validate database include current controlfile plus archivelog;
#Under normal conditions the VALIDATE command only checks for physical corruption. You can specify that you also want to check for logical corruption by using the CHECK LOGICAL clause:
RMAN> validate check logical database include current controlfile plus archivelog;
#VALIDATE has a variety of uses. Here are a few more examples:
RMAN> validate database skip offline;
RMAN> validate copy of database;
RMAN> validate tablespace system;
RMAN> validate datafile 3 block 20 to 30;
RMAN> validate spfile;
RMAN> validate backupset <primary_key_value>;
RMAN> validate recovery area;
#If you’re using the Oracle Database 12c pluggable database feature, you can validate specific databases within the container. While connected as SYS to the root container, validate any associated pluggable databases:
RMAN> validate pluggable database salespdb;
#If RMAN detects any corrupt blocks, the V$DATABASE_BLOCK_CORRUPTION is populated. This view contains information on the file number, block number, and number of blocks affected. You can use this information to perform a block-level recovery .

关于物理坏块和逻辑坏块的解释:

physical corruption is a change to a block, such that its contents don’t match the physical format that Oracle expects. By default, rMaN checks for physical corruption when backing up, restoring, and validating data files. With logical corruption, a block is in the correct format, but the contents aren’t consistent with what Oracle expects, such as in a row piece or an index entry.

backup …validate

这个命令和validate 命令类似,就是多个backup 开头,但是适合各种版本,不以backup开头的只能在11G及以后版本使用。列出几个常用命令。

RMAN> backup validate database;

RMAN> backup validate check logical database;

RMAN> backup validate database current controlfile;

RMAN> backup validate check logical database current controlfile plus archivelog;

restore …validate

一般这个命令用来模拟数据库的restore,一般用来检查备份是否可以用来恢复。

RMAN> restore validate database;

坏块的恢复

用下面的这sql来查坏块:

SQL> select * from v$database_block_corruption;
FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO CON_ID
---------- ---------- ---------- ------------------ --------- ----------
4 20 1 0 ALL ZERO 0

找到后用这个命令进行恢复,数据库可以在mount或者open状态下都可以:

RMAN> recover corruption list;

也可指定恢复,一般推荐前者,可以自动清理v$database_block_corruption视图:

RMAN> recover datafile 4 block 20;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
RMAN-10038 是一个错误代码,它表示在执行逻辑坏块恢复过程时出现了问题。逻辑坏块恢复通常用于修复由软件错误或非硬件的数据损坏所引起的数据坏块。在进行逻辑坏块恢复时,可能会遇到 RMAN-10038 错误,需要进行以下步骤来解决问题。 首先,我们需要查看 RMAN 的日志文件,了解更具体的错误信息。在日志中,我们可能会找到有关坏块的详细信息,例如受影响的数据文件和坏块号码。这些信息可以帮助我们更好地理解问题所在。 其次,我们可以尝试使用 RMAN 的“BLOCKRECOVER”命令来手动恢复逻辑坏块。这将会使用备份集中的有效数据来替换坏块。我们可以根据日志中提供的具体信息,指定需要恢复数据文件和坏块号码,然后运行“BLOCKRECOVER”命令。 然而,如果 RMAN-10038 错误仍然存在,我们可能需要进一步的调试。我们可以尝试使用“ANALYZE”命令来检查数据文件的完整性,并查找其他的坏块。我们还可以尝试使用其他恢复方法,例如使用物理坏块恢复 (block media recovery) 或转储进行修复。 最后,我们应该确保使用最新的软件补丁和数据库版本,以避免类似的错误。我们还应该定期备份数据库,并测试备份的可用性,以确保在出现坏块或其他数据损坏时能够及时恢复。 总之,RMAN-10038 错误表示在逻辑坏块恢复过程中出现问题。我们可以通过查看日志文件,尝试手动恢复坏块,进行进一步的调试,并采取预防措施来解决这个问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贤时间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值