7 x 24 在线支持!
介绍一种快速验证全数据库表数据的方法
介绍一种快速验证全数据库表数据的方法
我们可以通过exp full=y全库来验证全库中的数据是否能被正常读取,但是如果当数据库很大时则需要准备对应的导出空间以及耗费大量时间在写出数据到磁盘上了,这里介绍一种方法可以快速验证全库,而不需要准备大量磁盘空间。
介绍如何使用Oracle数据文件检测工具DBV DBVERIFY
介绍如何使用Oracle数据文件检测工具DBV
DBV工具提供了检测Oracle datafile数据文件中物理坏块的能力,同时其也可以检测出部分逻辑损坏问题。
DBV主要复杂检测以下的东西:
- 验证数据文件头
- 验证每一个数据块的非数据内容部分的信息的正确性
- 验证数据和索引块本身的一致性
- 验证其他块类型例如rollback回滚段的一致性
DBV如何工作?
Oracle坏块检测参数DB_BLOCK_CHECKING介绍
Oracle坏块检测参数DB_BLOCK_CHECKING介绍
DB_BLOCK_CHECKING的作用:
- 当要修改内存中的一个数据块时会执行检测
- 可以避免内存中的数据讹误,进而避免讹误的数据被写入到磁盘上
- Oracle官方介绍启用该参数引起1%~10%的性能损耗,具体损耗量与系统负载有关
DB_BLOCK_CHECKING的几个选项
Oracle中如何使用validate 验证数据对象结构
使用validate 命令验证数据对象结构的目的有2个:
- 验证索引、表或cluster的结构完整性
- 验证检测表和其所属索引的数据是否同步
如果仅仅验证索引结构并确认其每一个数据块的完整性,看看是否有坏块,则执行:
ANALYZE INDEX <index name> VALIDATE STRUCTURE;
当可以停业务情况下,可以使用如下命令来验证表的每一个数据块和行数据的完整性:
Oracle数据库坏坏块检测
- 执行对特定的表、分区或者索引的块级别检测
- 找出那些指向损坏数据行的索引记录
- 产生一张修复表
PRM 扫描抽取lob大对象的关键
直接对lob segment扫描后的抽取lob时,必要收集一些信息:
1、是blob还是clob
2、对于clob的字符集,单字节的或者UCS16,byte大小
3、chunk 大小,通过头部的page#获得
4、丢失的page
得到这些信息: data_object_id,lobid, fatpageno (chunk#), version wrap, vsn base, ts#, file#, block#
PRM 扫描抽取lob大对象的关键
直接对lob segment扫描后的抽取lob时,必要收集一些信息:
1、是blob还是clob
2、对于clob的字符集,单字节的或者UCS16,byte大小
3、chunk 大小,通过头部的page#获得
4、丢失的page
得到这些信息: data_object_id,lobid, fatpageno (chunk#), version wrap, vsn base, ts#, file#, block#