日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

使用oracle10g blockrecover恢復數(shù)據(jù)庫壞塊

 wghbeyond 2012-04-09

使用oracle10g blockrecover恢復數(shù)據(jù)庫壞塊

SQL> create tablespace block_rec;
表空間已創(chuàng)建。

SQL> select name from v$datafile;
NAME
-------------------------------------------------------------------------------
G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\SYSTEM01.DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\UNDOTBS01.DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\SYSAUX01.DBF
G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\USERS01.DBF
G:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_OMF_TEST_326SNC34_.DBF
+DG1/ora10g/datafiles/asmtbs01.dbf
G:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_BLOCK_RE_32MMQWTH_.DBF
已選擇7行。

SQL> select file#,name from v$datafile;
FILE#  NAME
-------------------------------------------------------------------------------
     G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\SYSTEM01.DBF
     G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\UNDOTBS01.DBF
     G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\SYSAUX01.DBF
     G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\USERS01.DBF
     G:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_OMF_TEST_326SNC34_.DBF
     +DG1/ora10g/datafiles/asmtbs01.dbf
     G:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_BLOCK_RE_32MMQWTH_.DBF
已選擇7行。

SQL> alter database datafile 7 resize 1m;
數(shù)據(jù)庫已更改。

SQL> create user block_rec identified by "block_rec"
  temporary tablespace temp
  default tablespace block_rec
  quota unlimited on block_rec;
用戶已創(chuàng)建。

SQL> grant resource,connect to block_rec;
授權(quán)成功。

SQL> conn block_rec/block_rec@ora10g;
已連接。
SQL> create table t(a number);

表已創(chuàng)建。

SQL> begin
  for x in 1..1000 loop
  insert into t values(x);
  commit;
  end loop;
  end;
  /

PL/SQL 過程已成功完成。
SQL> select count(*) from t;

  COUNT(*)
----------
      1000

備份當前數(shù)據(jù)庫:
C:\Documents and Settings\linyuefeng>rman target / nocatalog

恢復管理器: Release 10.2.0.1.0 - Production on 星期六 4月 21 16:54:29 2007

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

連接到目標數(shù)據(jù)庫: ORA10G (DBID=3937140947)
使用目標數(shù)據(jù)庫控制文件替代恢復目錄

RMAN> backup as backupset database plus archivelog tag='fulldatabase';
啟動 backup 于 21-4月 -07
當前日志已存檔
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=85 devtype=DISK
通道 ORA_DISK_1: 正在啟動存檔日志備份集
通道 ORA_DISK_1: 正在指定備份集中的存檔日志
輸入存檔日志線程 =1 序列 =1 記錄 ID=6 時間戳=620258970
輸入存檔日志線程 =1 序列 =2 記錄 ID=7 時間戳=620424206
輸入存檔日志線程 =1 序列 =3 記錄 ID=8 時間戳=620486944
輸入存檔日志線程 =1 序列 =4 記錄 ID=9 時間戳=620497466
輸入存檔日志線程 =1 序列 =5 記錄 ID=10 時間戳=620497621
輸入存檔日志線程 =1 序列 =6 記錄 ID=11 時間戳=620497719
輸入存檔日志線程 =1 序列 =7 記錄 ID=12 時間戳=620499360
通道 ORA_DISK_1: 正在啟動段 1 于 21-4月 -07
通道 ORA_DISK_1: 已完成段 1 于 21-4月 -07
段句柄=G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\07IFO4D2_1_1 標記=FULLDATABASE 注
釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時間:00:00:09
通道 ORA_DISK_1: 正在啟動存檔日志備份集
通道 ORA_DISK_1: 正在指定備份集中的存檔日志
輸入存檔日志線程 =1 序列 =10 記錄 ID=1 時間戳=620168764
輸入存檔日志線程 =1 序列 =11 記錄 ID=2 時間戳=620170149
輸入存檔日志線程 =1 序列 =12 記錄 ID=3 時間戳=620172357
輸入存檔日志線程 =1 序列 =13 記錄 ID=4 時間戳=620174799
輸入存檔日志線程 =1 序列 =14 記錄 ID=5 時間戳=620175861
通道 ORA_DISK_1: 正在啟動段 1 于 21-4月 -07
通道 ORA_DISK_1: 已完成段 1 于 21-4月 -07
段句柄=G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\08IFO4DB_1_1 標記=FULLDATABASE 注
釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時間:00:00:08
完成 backup 于 21-4月 -07

啟動 backup 于 21-4月 -07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 啟動全部數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定備份集中的數(shù)據(jù)文件
輸入數(shù)據(jù)文件 fno=00001 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\SYSTEM01.DBF

輸入數(shù)據(jù)文件 fno=00003 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\SYSAUX01.DBF

輸入數(shù)據(jù)文件 fno=00005 name=G:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_OMF_TEST_326
SNC34_.DBF
輸入數(shù)據(jù)文件 fno=00006 name=+DG1/ora10g/datafiles/asmtbs01.dbf
輸入數(shù)據(jù)文件 fno=00002 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\UNDOTBS01.DB
F
輸入數(shù)據(jù)文件 fno=00004 name=G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\USERS01.DBF
輸入數(shù)據(jù)文件 fno=00007 name=G:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_BLOCK_RE_32M
MQWTH_.DBF
通道 ORA_DISK_1: 正在啟動段 1 于 21-4月 -07
通道 ORA_DISK_1: 已完成段 1 于 21-4月 -07
段句柄=G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\09IFO4DL_1_1 標記=TAG20070421T1656
20 注釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時間:00:01:16
完成 backup 于 21-4月 -07

啟動 backup 于 21-4月 -07
當前日志已存檔
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在啟動存檔日志備份集
通道 ORA_DISK_1: 正在指定備份集中的存檔日志
輸入存檔日志線程 =1 序列 =8 記錄 ID=13 時間戳=620499458
通道 ORA_DISK_1: 正在啟動段 1 于 21-4月 -07
通道 ORA_DISK_1: 已完成段 1 于 21-4月 -07
段句柄=G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\0AIFO4G2_1_1 標記=FULLDATABASE 注
釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時間:00:00:03
完成 backup 于 21-4月 -07

啟動 Control File and SPFILE Autobackup 于 21-4月 -07
段 handle=G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\C-3937140947-20070421-02 commen
t=NONE
完成 Control File and SPFILE Autobackup 于 21-4月 -07

SQL> insert into t select * from t;

已創(chuàng)建1000行。

SQL> insert into t select * from t;

已創(chuàng)建2000行。

SQL> insert into t select * from t;

已創(chuàng)建4000行。

SQL> commit;

提交完成。

使用EDIT編輯數(shù)據(jù)文件
G:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_BLOCK_RE_32MMQWTH_.DBF,然后保存。
SQL> alter system flush buffer_cache;
SQL> conn block_rec/block_rec@ora10g;
已連接。
SQL> select count(*) from t;
select count(*) from t
*
第 1 行出現(xiàn)錯誤:
ORA-01578: ORACLE 數(shù)據(jù)塊損壞 (文件號 7, 塊號 15)
ORA-01110: 數(shù)據(jù)文件 7:
'G:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_BLOCK_RE_32MMQWTH_.DBF'
在ALERT.LOG文件中也會記載:
Corrupt block relative dba: 0x01c0000f (file 7, block 15)
Bad check value found during buffer read
Data in bad block:
 type: 6 format: 2 rdba: 0x01c0000f
 last change scn: 0x0000.000e92e9 seq: 0x3 flg: 0x04
 spare1: 0x0 spare2: 0x0 spare3: 0x0
 consistency value in tail: 0x92e90603
 check value in block header: 0xcf7e
 computed block checksum: 0x74c8
Reread of rdba: 0x01c0000f (file 7, block 15) found same corrupted data
Sat Apr 21 17:16:32 2007
Corrupt Block Found
         TSN = 9, TSNAME = BLOCK_REC
         RFN = 7, BLK = 15, RDBA = 29360143
         OBJN = 51507, OBJD = 51507, OBJECT = T, SUBOBJECT =
         SEGMENT OWNER = BLOCK_REC, SEGMENT TYPE = Table Segment
可以用DBV進行檢查:
C:\Documents and Settings\linyuefeng>dbv file=G:\oracle\oradata\ORA10G\DATAFILE\
O1_MF_BLOCK_RE_32MMQWTH_.DBF blocksize=8192

DBVERIFY: Release 10.2.0.1.0 - Production on 星期六 4月 21 17:23:44 2007

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

DBVERIFY - 開始驗證: FILE = G:\oracle\oradata\ORA10G\DATAFILE\O1_MF_BLOCK_RE_32M
MQWTH_.DBF
頁 12 標記為損壞
Corrupt block relative dba: 0x01c0000c (file 7, block 12)
Bad check value found during dbv:
Data in bad block:
 type: 6 format: 2 rdba: 0x01c0000c
 last change scn: 0x0000.000e9956 seq: 0x1 flg: 0x06
 spare1: 0x0 spare2: 0x0 spare3: 0x0
 consistency value in tail: 0x99560601
 check value in block header: 0x90b7
 computed block checksum: 0x56ad

頁 15 標記為損壞
Corrupt block relative dba: 0x01c0000f (file 7, block 15)
Bad check value found during dbv:
Data in bad block:
 type: 6 format: 2 rdba: 0x01c0000f
 last change scn: 0x0000.000e92e9 seq: 0x3 flg: 0x04
 spare1: 0x0 spare2: 0x0 spare3: 0x0
 consistency value in tail: 0x92e90603
 check value in block header: 0xcf7e
 computed block checksum: 0xaeec

 

DBVERIFY - 驗證完成

檢查的頁總數(shù): 128
處理的頁總數(shù) (數(shù)據(jù)): 11
失敗的頁總數(shù) (數(shù)據(jù)): 0
處理的頁總數(shù) (索引): 0
失敗的頁總數(shù) (索引): 0
處理的頁總數(shù) (其它): 11
處理的總頁數(shù) (段)  : 0
失敗的總頁數(shù) (段)  : 0
空的頁總數(shù): 104
標記為損壞的總頁數(shù): 2
流入的頁總數(shù): 0
最高塊 SCN            : 956758 (0.956758)

也可以使用RMAN進行檢查,然后相關的壞塊記錄會記錄到v$database_block_corruption中:
SQL> select * from v$database_block_corruption where file#=7;
未選定
RMAN> backup validate datafile 7;
啟動 backup 于 21-4月 -07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 啟動全部數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定備份集中的數(shù)據(jù)文件
輸入數(shù)據(jù)文件 fno=00007 name=G:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_BLOCK_RE_32M
MQWTH_.DBF
通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時間:00:00:03
完成 backup 于 21-4月 -07
SQL> select * from v$database_block_corruption where file#=7;
FILE#     BLOCK#     BLOCKS CORRUPTION_CHANGE# CORRUPTIO
----- ---------- ---------- ------------------ ---------
           12                          0 CHECKSUM
           15                          0 CHECKSUM

進行恢復:
RMAN> blockrecover datafile 7 block 12,15;

啟動 blockrecover 于 21-4月 -07
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在恢復塊
通道 ORA_DISK_1: 正在指定要從備份集恢復的塊
正在恢復數(shù)據(jù)文件 00007 的塊
通道 ORA_DISK_1: 正在讀取備份段 G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\09IFO4DL_
1_1
通道 ORA_DISK_1: 已從備份段 1 恢復塊
段句柄 = G:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\09IFO4DL_1_1 標記 = TAG20070421T
165620
通道 ORA_DISK_1: 塊恢復完成, 用時: 00:00:02

正在開始介質(zhì)的恢復
介質(zhì)恢復完成, 用時: 00:00:03

完成 blockrecover 于 21-4月 -07
查看數(shù)據(jù):
SQL> select count(*) from t;

  COUNT(*)
----------
      8000

SQL> select * from v$database_block_corruption where file#=7;

FILE#     BLOCK#     BLOCKS CORRUPTION_CHANGE# CORRUPTIO
----- ---------- ---------- ------------------ ---------
           12                          0 CHECKSUM
        15                          0 CHECKSUM
RMAN> backup validate datafile 7;

啟動 backup 于 21-4月 -07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 啟動全部數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定備份集中的數(shù)據(jù)文件
輸入數(shù)據(jù)文件 fno=00007 name=G:\ORACLE\ORADATA\ORA10G\DATAFILE\O1_MF_BLOCK_RE_32M
MQWTH_.DBF
通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時間:00:00:01
完成 backup 于 21-4月 -07

SQL> select * from v$database_block_corruption where file#=7;

未選定行
SQL> drop user block_rec cascade;

用戶已刪除。

SQL> drop tablespace block_rec including contents and datafiles;

表空間已刪除。
最好再進行一次全備份。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多