日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
Oracle數據塊損壞恢復總結

在恢復前使用DBV命令檢查數據文件是否存在壞塊

dbv file=d:\oracle\oradata\mydb\RONLY.DBF blocksize=8192

 

查看數據壞塊所在數據文件號及塊號可以對表進行一次全表掃描,如:

select count(*) from tablename;

 

1 沒有備份的情況下:

1.1、使用exp/imp恢復

在這種情況下肯定會造成數據的丟失,在這種情況下應采取將數據導出然后重建表再進行導入的方法,來盡量恢復損壞數據塊中的數據,但是在有壞塊的情況下是不允許導出的,如下命令:

Exp test/test file=t.dmp tables=t;

 

  導出命令在執(zhí)行中會報ORA-01578錯誤,在這錯誤提示中會提示那個文件號的文件以及這個文件中的哪個塊被損壞,如:ORA—01578:ORACLE 數據塊損壞(文件號 4,塊號 35)

  針對以上的提示首先查詢那些對象被損壞:

 

Select tablespace_name,segment_type,owner,segment_name From dba_extents Where file_id=4 and 35 between block_id and block_id+blocks-1;

 

如果被損壞的塊是索引,通??梢酝ㄟ^索引重建來解決,如果損壞的是數據(segment_type為table),那么通過設置如下內部事件使得Exp操作跳過壞塊。

Alter session set events=’10231 trace name context forever,level 10’;

 

然后重新執(zhí)行導出命令,導出相關的表,然后執(zhí)行Drop Table命令刪除相關表,之后重建表最后導入數據。

1.2、使用DBMS_REPAIR恢復

用DBMS_REPAIR當然也會丟失數據。這里不做詳細的介紹,有興趣的可以查看oracle的在線文檔

2 使用Rman進行恢復:

首先要存在Rman的最新備份集,然后執(zhí)行如下命令:

RMAN>backup validate datafile 4;

檢查4號數據文件是否存在壞塊

執(zhí)行查詢:

select * from v$database_block_corruption where file#=4;

 

如果4號文件存在壞塊的話,那么將在結果集中有所顯示,會顯示損壞的塊號,根據顯示結果執(zhí)行如下命令進行恢復:

RMAN>blockrecover datafile 4 block 35 from backupset;

 

該命令執(zhí)行后即可恢復壞塊,并且不會造成數據丟失,但是要求數據庫必須要運行在歸檔模式下,否則RMAN無法發(fā)揮作用,而且通過RMAN做過最新的數據庫備份

3 使用bbed恢復

使用bbed恢復時必須有數據文件的拷貝。

bbed就是英文block browse edit的縮寫,用來直接查看和修改數據文件數據的一個工具。

在windows和linux上面都有

但在linux下需要編譯:

然后把$ORACLE_HOME/rdbms/lib加到環(huán)境變量的PATH里面,就可以直接在命令中bbed了。

BBED的缺省口令為blockedit,For Oracle Internal Use only 請謹慎使用Oracle不做技術支持。

[oracle@test oracle]$ cd $ORACLE_HOME/rdbms/lib

[oracle@test lib]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed


 

進入bbed后,可以使用help查看幫助:

BBED> help

【編輯推薦】

  1. Oracle數據塊原理深入剖析
  2. Oracle數據庫的備份及恢復策略研究
  3. 實戰(zhàn)Oracle數據庫備份與恢復

當前名稱:Oracle數據塊損壞恢復總結
網站地址:http://m.5511xx.com/article/ccdjdco.html