[转]RMAN检测数据库坏块
backup validate check logical database;
select * from v$database_block_corruption;
RMAN> backup validate check logical database; Starting backup at -SEP-
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID= device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID= 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= name=/u02/app/oradata/ORCL/system01.dbf
input datafile file number= name=/u02/app/oradata/ORCL/rlst01.dbf
input datafile file number= name=/u02/app/oradata/ORCL/mssm01.dbf
channel ORA_DISK_2: starting full datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
input datafile file number= name=/u02/app/oradata/ORCL/sysaux01.dbf
input datafile file number= name=/u02/app/oradata/ORCL/undotbs01.dbf
input datafile file number= name=/u02/app/oradata/ORCL/users01.dbf
channel ORA_DISK_2: backup set complete, elapsed time: ::
List of Datafiles
=================
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
OK
File Name: /u02/app/oradata/ORCL/sysaux01.dbf
Block Type Blocks Failing Blocks Processed
---------- -------------- ----------------
Data
Index
Other File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
OK
File Name: /u02/app/oradata/ORCL/undotbs01.dbf
Block Type Blocks Failing Blocks Processed
---------- -------------- ----------------
Data
Index
Other File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
OK
File Name: /u02/app/oradata/ORCL/users01.dbf
Block Type Blocks Failing Blocks Processed
---------- -------------- ----------------
Data
Index
Other channel ORA_DISK_2: starting full datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
including current control file in backup set
channel ORA_DISK_2: backup set complete, elapsed time: ::
List of Control File and SPFILE
===============================
File Type Status Blocks Failing Blocks Examined
------------ ------ -------------- ---------------
Control File OK
channel ORA_DISK_2: starting full datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_2: backup set complete, elapsed time: ::
List of Control File and SPFILE
===============================
File Type Status Blocks Failing Blocks Examined
------------ ------ -------------- ---------------
SPFILE OK
channel ORA_DISK_1: backup set complete, elapsed time: ::
List of Datafiles
=================
File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
OK
File Name: /u02/app/oradata/ORCL/system01.dbf
Block Type Blocks Failing Blocks Processed
---------- -------------- ----------------
Data
Index
Other File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
OK
File Name: /u02/app/oradata/ORCL/mssm01.dbf
Block Type Blocks Failing Blocks Processed
---------- -------------- ----------------
Data
Index
Other File Status Marked Corrupt Empty Blocks Blocks Examined High SCN
---- ------ -------------- ------------ --------------- ----------
OK
File Name: /u02/app/oradata/ORCL/rlst01.dbf
Block Type Blocks Failing Blocks Processed
---------- -------------- ----------------
Data
Index
Other Finished backup at -SEP-
利用数据字典表查询是否有坏块
SQL> desc v$database_block_corruption
Name Null? Type
----------------------------------------- -------- ----------------------------
FILE# NUMBER
BLOCK# NUMBER
BLOCKS NUMBER
CORRUPTION_CHANGE# NUMBER
CORRUPTION_TYPE VARCHAR2() SQL> select * from v$database_block_corruption; no rows selected
如果存在坏块可使用以下脚本查询:
SELECT e.owner,
e.segment_type,
e.segment_name,
e.partition_name,
c.file#,
greatest(e.block_id, c.block#) corr_start_block#,
least(e.block_id + e.blocks - , c.block# + c.blocks - ) corr_end_block#,
least(e.block_id + e.blocks - , c.block# + c.blocks - ) -
greatest(e.block_id, c.block#) + blocks_corrupted,
null description
FROM dba_extents e, v$database_block_corruption c
WHERE e.file_id = c.file#
AND e.block_id <= c.block# + c.blocks -
AND e.block_id + e.blocks - >= c.block#
UNION
SELECT s.owner,
s.segment_type,
s.segment_name,
s.partition_name,
c.file#,
header_block corr_start_block#,
header_block corr_end_block#,
blocks_corrupted,
'Segment Header' description
FROM dba_segments s, v$database_block_corruption c
WHERE s.header_file = c.file#
AND s.header_block between c.block# and c.block# + c.blocks -
UNION
SELECT null owner,
null segment_type,
null segment_name,
null partition_name,
c.file#,
greatest(f.block_id, c.block#) corr_start_block#,
least(f.block_id + f.blocks - , c.block# + c.blocks - ) corr_end_block#,
least(f.block_id + f.blocks - , c.block# + c.blocks - ) -
greatest(f.block_id, c.block#) + blocks_corrupted,
'Free Block' description
FROM dba_free_space f, v$database_block_corruption c
WHERE f.file_id = c.file#
AND f.block_id <= c.block# + c.blocks -
AND f.block_id + f.blocks - >= c.block#
order by file#, corr_start_block#;
SELECT tablespace_name, segment_type, owner, segment_name
FROM dba_extents
WHERE file_id = &fileid
and &blockid between block_id AND block_id + blocks - ;
参考:http://www.cnblogs.com/macleanoracle/archive/2013/03/19/2968101.html
[转]RMAN检测数据库坏块的更多相关文章
- 13 oracle数据库坏块-逻辑坏块(模拟/修复)
13 oracle数据库坏块-逻辑坏块 逻辑数据坏块的场景1)oracle bug也可能导致逻辑坏块的产生. 特别是parallel dml. 例如:Bug 5621677 Logical corru ...
- 12 oracle 数据库坏块--物理坏块-ORA-01578/ORA-01110
oracle 数据库坏块--物理坏块 数据坏块的类型物理坏块:通常是由于硬件损坏如磁盘异常导致.内存有问题.存储链有问题. IO有问题.文件系统有问题. Oracle本身的问题等逻辑坏块:可能都是软件 ...
- undo丢失恢复异常恢复,运维DBA反映Oracle数据库无法启动报错ORA-01157 ORA-01110,分析原因为Oracle数据库坏块导致
本文转自 惜纷飞 大师. 模拟基表事务未提交数据库crash,undo丢失恢复异常恢复,运维DBA反映Oracle数据库无法启动报错ORA-01157 ORA-01110,分析原因为Oracle数据库 ...
- 对Oracle数据库坏块的理解
1.物理坏块和逻辑坏块 在数据库中有一个概念叫做数据块的一致性,Oracle的数据块的一致性包括了两个层次:物理一致性和逻辑一致性,如果一个数据块在这两个层次上存在不一致性,那就对应到了我们今天要要说 ...
- Oracle数据库坏块的恢复
模拟数据块坏块: 对于发生数据块不一致的数据块,如果当前数据库有备份且处于归档模式,那么就可以利用rman工具数据块恢复功能 对数据块进行恢复,这种方法最简单有效,而且可以在数据文件在线时进行,不会发 ...
- 使用BBED模拟Oracle数据库坏块
BBED(OracleBlockBrowerandEDitor Tool),用来直接查看和修改数据文件数据的一个工具,是Oracle一款内部工具,可以直接修改Oracle数据文件块的内容,在一些极端恢 ...
- ORACLE模拟一个数据文件坏块并使用RMAN备份来恢复
1.创建一个实验用的表空间并在此表空间上创建表 create tablespace blocktest datafile '/u01/oradata/bys1/blocktest.dbf' size ...
- oracle坏块问题的处理
一.背景 今天有用户反映数据库连不上了,查看日志发现有数据库坏块. 查看数据库日志,有如下报错: ORA-01578: ORACLE , 93642) ORA-01110: 1: '/oracle/a ...
- ORACLE 坏块的模拟和查看
坏块的模拟和查看使用bbed工具修改数据文件的块,然后使用dbv和rman工具查看坏块. 1.创建数据:根据dbv查看没有坏块Total Pages Marked Corrupt : 0create ...
随机推荐
- CF memsql Start[c]UP 2.0 A
CF memsql Start[c]UP 2.0 A A. Golden System time limit per test 1 second memory limit per test 256 m ...
- Go - 项目收藏
谷歌官方维护了一个基于go语言的开源项目列表: https://github.com/golang/go/wiki/Projects Web框架 web.go.beego Go项目 httpmq:A ...
- 安卓TabHost页面
<?xml version="1.0" encoding="UTF-8"?> <!-- TabHost组件id值不可变--> <T ...
- jquery 用attr修改src 淡入淡出
$("#wanwan").animate({ opacity: 'toggle' }, "slow", null, function () { $(" ...
- redmine问题集锦
当我新建LDAP认证模式时,遇到如下错误:
- Burpsuite+sqlmap批量扫描sql漏洞
1.burpsuite设置导出log n'd'k 输入文件名保存 2.sqlmap批量扫描 python sqlmap.py -l 文件名 --batch -smart batch:自 ...
- 开发ios的语言
iOS发展这么多年了,很多第三方语言都向开发一种自己的iOS,于是多种跨平台诞生了! Object-c.swift: 当然是开发iOS的首先,毕竟是苹果自己的东西,也是最流行.最适合开发ios的,无论 ...
- How to Install The Alpha Control Packages.
Uninstalling previous version of the package If you have a previous version of the package already i ...
- java ArrayList 实现
关于ArrayList的实现和原理,原文出处:http://www.cnblogs.com/ITtangtang/p/3948555.html 我觉得他写的非常好,真的很好. 做一个记录和总结吧 pu ...
- 转:asp.net TreeView CheckChanged 事件浅谈
http://blog.csdn.net/xiage/article/details/5128755 在开发中经常可以碰到类似的问题: 想通过一个树父节点的TreeNodeCheckChanged 事 ...