ocp-manage管理处理数据库损坏_第1页
ocp-manage管理处理数据库损坏_第2页
ocp-manage管理处理数据库损坏_第3页
ocp-manage管理处理数据库损坏_第4页
ocp-manage管理处理数据库损坏_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程目标学完本课后,应能完成下列工作:确定数据库损坏的原因:–

硬件–使用下列功能检测数据库损坏:––––YZEDBVERIFYDB_BLOCK_CHECKINGDBMS_REPAIR使用

RMAN

修复数据库损坏7-2©2007,Oracle.

。块损坏只要对块执行读或写操作,就会执行下列一致性检查块版本高速缓存中的

DBA(数据块地址)值与块缓冲区中的DBA

值比较的结果块校验和(如果启用)由于下列原因之一确定为损坏的块:介质损坏逻辑(或)损坏7-3©2007,Oracle.

。块损坏故障现象:ORA-01578错误ORA-01578:“ORACLE

data

block

corrupted(file

#

%s,

block

#

%s)”:发现损坏的数据块时生成此信息始终返回绝对文件号和绝对块号返回到发布查询的会话(该查询在发现损坏时执行)在alert.log

文件中显示7-4©2007,Oracle.

。如何处理损坏检查

日志和操作系统日志文件。使用可用的

工具,找出损坏的类型。多次运行检查功能,确定错误是否持续存在。根据需要,从损坏的对象中恢复数据。7-5©2007,Oracle.

。如何处理损坏解决硬件问题:内存条磁盘控制器磁盘根据需要,从损坏的对象中恢复或还原数据7-6©2007,Oracle.

。与损坏相关的功能功能检测到的损坏修复损坏DBVERIFY物理FALSEYZE逻辑FALSEDB_BLOCK_CHECKING逻辑FALSEDB_BLOCK_CHECKSUM物理FALSEexp物理FALSE闪回逻辑TRUEDBMS_REPAIR逻辑TRUE块介质恢复无TRUE7-7©2007,Oracle.

。DBVERIFY

实用程序只能检查数据文件;不能检查重做日志文件检查块一致性可以在打开数据库的情况下使用该实用程序的名称:dbv$

dbv

file=/u01/oradata/users01.dbf\blocksize=81927-8©2007,Oracle.

。解释

DBVERIFY

输出TotalPagesExamined:12800TotalPagesProcessed(Data)

:4408TotalPagesFailing(Data)

:0Total..PagesProcessed(Index):1264.Total

Pages

Marked

Corrupt

:

4Total

Pages

Influx :

0Highest

block

SCN :

654836

(0.654836)一个“page”表示一个块。如果块的头尾不匹配,DBVERIFY

就会重新

此块。如果块的头尾匹配,则报告一个流入块;否则报告一个块损坏。7-9©2007,Oracle.

。YZE

命令执行逻辑块检查不将块标记为软损坏;只报告软损坏情况验证索引项和表项SQL> YZE

TABLE

table_name

VALIDATE2

STRUCTURE

CASCADE;SQL> YZE

INDEX

index_name

VALIDATE2

STRUCTURE;7-11©2007,Oracle.

。实时验证块完整性:DB_BLOCK_CHECKINGDB_BLOCK_CHECKING

初始化参数:在对每个块执行自我一致性检查时,控制检查的处理程度可防止内存和数据损坏可以使用ALTER

SESSION

或ALTER

SYSTEMDEFERRED命令进行设置7-12©2007,Oracle.

。实时验证块完整性:DB_BLOCK_CHECKSUMDB_BLOCK_CHECKSUM

初始化参数:确定是否保持校验和,以及是否对每个块都进行验证可以防止由底层I/O

系统引起的损坏a14f7-13©2007,Oracle.

。使用EXP

检测损坏可以使用常规导出来检测损坏。$

exp

hr/hr

tables=departmentsAbout

to

export

specified

tables

via

Conventional

Path....

.

exporting

table

DEPARTMENTSEXP-00056:

ORACLE

error

1578

encounteredORA-01578:

ORACLE

data

block

corrupted

(file

#

5,

block

#51)ORA-01110:

data

file

5:'/u01/app/oracle/oradata/orcl/example01.dbf‘7-14©2007,Oracle.

。使用闪回检查逻辑损坏DBA用户撤消SQL或闪回表发现损坏的数据闪回版本查询闪回事务查询7-15©2007,Oracle.

。DBMS_REPAIR

程序包可用过程•••••••CHECK_OBJECTFIX_CORRUPT_BLOCKSDUMP_ORPHAN_KEYSREBUILD_FREELISTSSEGMENT_FIX_STATUSSKIP_CORRUPT_BLOCKSADMIN_TABLES7-16©2007,Oracle.

。使用DBMS_REPAIR检测并报告损坏。SET

SERVEROUTPUT

ONDECLARE

num_corrupt

INT;BEGINnum_corrupt

:=

0;DBMS_REPAIR.CHECK_OBJECT

(schema_name

=>

‘HR',object_name

=>

'DEPARTMENTS',repair_table_name

=>

'REPAIR_TABLE',corrupt_count

=>

num_corrupt);END;评估DBMS_REPAIR

的成本和优势。7-17©2007,Oracle.

。使用DBMS_REPAIR3.

使对象变为可用。SET

SERVEROUTPUT

ONDECLARE

num_fix

INT;BEGINnum_fix

:=

0;DBMS_REPAIR.FIX_CORRUPT_BLOCKS

(schema_name

=>

'HR',object_name

=>

'DEPARTMENTS',object_type

=>

DBMS_REPAIR.TABLE_OBJECT,repair_table_name

=>

'REPAIR_TABLE',fix_count

=>

num_fix);END;7-19©2007,Oracle.

。使用DBMS_REPAIR4.

修复损坏并重建丢失的数据。SET

SERVEROUTPUT

ONDECLARE

num_orphans

INT;BEGINnum_orphans

:=

0;DBMS_REPAIR.DUMP_ORPHAN_KEYS

(schema_name

=>

'SCOTT',object_name

=>

'PK_DEPT',object_type

=>

DBMS_REPAIR.INDEX_OBJECT,repair_table_name

=>

'REPAIR_TABLE',orphan_table_name

=>

'ORPHAN_KEY_TABLE',key_count

=>

num_orphans);DBMS_OUTPUT.PUT_LINE('orphan

key

count:

'

||TO_CHAR(num_orphans));END;7-20©2007,Oracle.

。块介质恢复(BMR)块介质恢复:降低平均恢复时间(MTTR)提高介质恢复期间的可用性恢复期间数据文件保持联机状态只有正在恢复的块是不可

的可以通过RMAN

使用

BLOCKRECOVER

命令进行调用从可用备份中还原个别块与服务器协调工作恢复块介质7-21©2007,Oracle.

。BLOCKRECOVER

命令RMAN

BLOCKRECOVER

命令:归档日志来管理块介质识别包含要进行恢复的块的备份备份并将请求的块累积到内存缓冲区必要时,通过从备份中恢复会话不能用于不完全恢复RMAN>

BLOCKRECOVER

DATAFILE

6

BLOCK

3;7-22©2007,Oracle.

。使用BLOCKRECOVER

的示例恢复一组损坏的块按还原类型限制块介质恢复按备份标记限制块介质恢复按时间、SCN

或日志序列限制块介质恢复7-23©2007,Oracle.

。RMAN

BMR

接口动态视图显示损坏的当前状态。V$DATABASE_BLOCK_CORRUPTION

视图显示当前损坏的数据库块的列表。V$BACKUP_CORRUPTION

视图显示数据文件备份中损坏的块的列表。V$COPY_CORRUPTION

视图显示图像文件副本中损坏的块的列表。RMAN>

BLOCKRECOVER

CORRUPTION

LIST2>

RESTORE

UNTIL

TIME

'sysdate

10';7-25©2007,Oracle.

。可以采用的替代操作表:损坏的块中的数据已丢失。删除然后重新创建表,再从导出转储中导入数据。使用SQL

或PL/SQL,将数据从该表移到一个新建的表。索引:删除然后重新创建索引。7-26©2007,Orac

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论