当前位置:  数据库>oracle

检测Oracle数据块损坏的方法汇总

    来源: 互联网  发布时间:2017-06-11

    本文导语: 1:使用初始化参数 使用初始化参数db_block_checksumdb_block_checking可以设置数据库对块的物理一致性和逻辑一致性检查。 Db_block_checksum:物理一致性检查,默认开启。始终对system表空间数据进行检查,如果开启还会对日志进行检查,...

1:使用初始化参数

使用初始化参数db_block_checksumdb_block_checking可以设置数据库对块的物理一致性和逻辑一致性检查。

Db_block_checksum:物理一致性检查,默认开启。始终对system表空间数据进行检查,如果开启还会对日志进行检查,开启后会有1~2%的性能影响,建议开启。

Db_block_checking:逻辑一致性检查,默认未开启。始终对system表空间进行检查,如果开启会有1~10%的性能影响。DML越频繁,性能影响越大。不建议开启。

有关该参数的详细内容可以参考:

2:使用dbv工具

使用dbv可以进行物理和逻辑一致性检查,但是不会检测表数据和索引数据的匹配关系。使用该工具有以下特点:

只读方式打开数据文件

可以在线检查数据文件,数据库无需关闭

不可以检测控制文件和日志文件

可以检测asm文件

有时文件名称需要有后缀名,并且有时不可以检测超过2G大小的文件

3:使用analyze命令

语法格式:analyze table validate structure cascade online (offline).

该命令会同时进行物理和逻辑检查,同时还可以进行表数据和索引数据的匹配性检查,检查分区表的记录是否在正确的分区中,检测结果会存储在trace文件中。

如果没有使用cascade关键字,则只会进行表数据的检测,使用cascade后会进行表数据和索引数据的检测。

如果使用了online关键字,则可以对表数据进行在线检查,此时不会对表添加锁,DML语句可以继续进行,如果使用了offline关键字,则会对表加锁,此时用户不能对该表进行修改操作。

如果需要检测分区表记录是否在正确的分区内,可以使用如下语句:

Anlyze table table_name validte structure into invalid_rows.

使用该命令前,请使用utlvalid.sql 脚本创建相应的invalid_rows表。

--------------------------------------推荐阅读 --------------------------------------

RMAN 配置归档日志删除策略

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

--------------------------------------分割线 --------------------------------------

4:使用rman工具

使用rman备份工具时,oracle会将数据先读入读缓冲区,然后将数据写入写缓冲区,最后写入磁盘,在从读缓冲区转移到写缓冲区时,rman工具会进行数据一致性检测。

语法格式:backup validate database.

使用backup validate 命令会对数据文件进行物理一致性检测(前提是db_block_checksum启用), 此时并不会生成备份文件。如:

RMAN> backup validate database;
 
Starting backup at 2014-11-05 15:44:21
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/home/app/oraten/oradata/oraten/system01.dbf
input datafile fno=00003 name=/home/app/oraten/oradata/oraten/sysaux01.dbf
input datafile fno=00002 name=/home/app/oraten/oradata/oraten/undotbs01.dbf
input datafile fno=00005 name=/home/app/oraten/oradata/oraten/test01.dbf
input datafile fno=00004 name=/home/app/oraten/oradata/oraten/users01.dbf
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2014-11-05 15:44:23
 
RMAN> list backup;
 
 
RMAN>

更多详情见请继续阅读下一页的精彩内容:


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jquery检测input checked 控件是否被选中的方法
  • 在内核中检测USB正在传输数据的方法?
  • php检测iis环境是否支持htaccess的方法
  • 在一个线程中的run()方法里面用无限循环的方式来检测某一个类中的变量的状态,当检测到该状态为true时,再判断该变量如果连续维持true状
  • asp.net 检测数组中是否存在某值的方法
  • php检测文件编码的方法示例
  • 检测php多维数组维度的方法
  • utf8编码检测方法分享
  • linux 下有类似MFC中FindFirstChangeNotification检测硬盘上文件生成的方法吗?
  • windows服务器中检测PHP SSL是否开启以及开启SSL的方法
  • jquery1.9 下检测浏览器类型和版本的方法
  • C#检测是否有危险字符的SQL字符串过滤方法
  • android 检测耳机是否插入方法
  • Python编写检测数据库SA用户的方法
  • Android和IOS的浏览器中检测是否安装某个客户端的方法
  • php get_headers检测URL是否有效的方法
  • Android检测Cursor泄漏的原理以及使用方法
  • 2款Python内存检测工具介绍和使用方法
  • 请问如何在JSP中检测重复的输入,并用JavaScript的alert方法提示?
  • 求LAN中IP冲突的检测方法
  • php中检测变量是否是一个对象的is_object函数介绍及用法举例
  • 编一个程序,检测Linux系统下机器网卡的状态(只要检测网络线是否被拔掉?)
  • redhat声卡检测能检测到声卡,为什么没有声音啊??
  • Web 应用安全检测工具 Rational AppScan
  • jquery代码-如何检测各种浏览器
  • 怎样用java编写网络检测程序???(好象和snmp有关)
  • 开源智能分布式检测框架 Razorback
  • 每次启机都会检测硬盘 浪费时间
  • 内核内存泄露检测
  • 入侵检测程序 OSSEC
  • javascript开源软件 iis7站长之家


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,