惜分飞oracle,惜分飞 - 提供7*24专业数据库(Oracle,SQL Server,MySQL等)恢复和Oracle技术服务@Tel:+86 13429648788...
又一起win rac的asm disk被格式化為ntfs,導致數據庫異常恢復的請求,客戶描述有一個500G的data磁盤組(只有一個磁盤,被誤操作進行了格式化).格式化asm disk之后
asm的alert日志報錯
Tue Jul 09 17:09:45 2019
NOTE: ASM client orcl1:ORCL disconnected unexpectedly.
NOTE: check client alert log.
NOTE: Trace records dumped in trace file D:\APP\ADMINISTRATOR\diag\asm\+asm\+asm1\trace\+asm1_ora_5376.trc
Tue Jul 09 17:10:19 2019
Errors in file D:\APP\ADMINISTRATOR\diag\asm\+asm\+asm1\trace\+asm1_lgwr_1448.trc:
ORA-27070: async read/write failed
OSD-04008: WriteFile() 失敗, 無法寫入文件
O/S-Error: (OS 21) 設備未就緒。
WARNING: Write Failed. group:1 disk:0 AU:15 offset:876544 size:4096
NOTE: unable to write any mirror side for diskgroup DATA
NOTE: cache initiating offline of disk 0 group DATA
NOTE: process _lgwr_+asm1 (3764:1448) initiating offline of disk 0.4042281525 (DATA_0000) with mask 0x7e in group 1
Tue Jul 09 17:10:19 2019
WARNING: Disk 0 (DATA_0000) in group 1 mode 0x7f is now being offlined
WARNING: Disk 0 (DATA_0000) in group 1 in mode 0x7f is now being taken offline on ASM inst 1
NOTE: initiating PST update: grp = 1, dsk = 0/0xf0f05235, mask = 0x6a, op = clear
GMON updating disk modes for group 1 at 10 for pid 15, osid 1448
ERROR: Disk 0 cannot be offlined, since diskgroup has external redundancy.
ERROR: too many offline disks in PST (grp 1)
WARNING: Disk 0 (DATA_0000) in group 1 mode 0x7f offline is being aborted
WARNING: Offline of disk 0 (DATA_0000) in group 1 and mode 0x7f failed on ASM inst 1
Tue Jul 09 17:10:20 2019
NOTE: halting all I/Os to diskgroup 1 (DATA)
NOTE: unable to offline disks after getting write error for diskgroup DATA
Tue Jul 09 17:10:20 2019
NOTE: cache dismounting (not clean) group 1/0xBDB0A2C0 (DATA)
NOTE: disk 0 had IO error
NOTE: messaging CKPT to quiesce pins Windows thread id: 520528, image: ORACLE.EXE (B000)
Tue Jul 09 17:10:20 2019
NOTE: Deferred communication with ASM instance
Errors in file D:\APP\ADMINISTRATOR\diag\asm\+asm\+asm1\trace\+asm1_ora_6140.trc:
ORA-15130: diskgroup "DATA" is being dismounted
NOTE: deferred map free for map id 4
NOTE: LGWR doing non-clean dismount of group 1 (DATA)
NOTE: LGWR sync ABA=38.3028 last written ABA 38.3029
數據庫的alert日志報錯
Tue Jul 09 17:09:12 2019
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl1\trace\orcl1_lgwr_5396.trc:
ORA-27072: 文件 I/O 錯誤
WARNING: IO Failed. group:1 disk(number.incarnation):0.0xf0f05235 disk_path:\\.\ORCLDISKDATA0
AU:1305 disk_offset(bytes):1368456704 io_size:512 operation:Write type:asynchronous
result:I/O error process_id:5396
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl1\trace\orcl1_lgwr_5396.trc:
ORA-15080: 與磁盤的同步 I/O 操作失敗
WARNING: failed to write mirror side 1 of virtual extent 23 logical extent 0
of file 261 in group 1 on disk 0 allocation unit 1305
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl1\trace\orcl1_lgwr_5396.trc:
ORA-00345: 重做日志寫入塊 47231 計數 1 出錯
ORA-00312: 聯機日志 1 線程 1: '+DATA/orcl/onlinelog/group_1.261.909498607'
ORA-15081: 無法將 I/O 操作提交到磁盤
ORA-15081: 無法將 I/O 操作提交到磁盤
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl1\trace\orcl1_lgwr_5396.trc:
ORA-27070: 異步讀取/寫入失敗
OSD-04006: ReadFile() 失敗, 無法讀取文件
O/S-Error: (OS 21) 設備未就緒。
機器上查看磁盤信息
這個客戶比較幸運,asm disk被格式化之后,沒有進行任何寫操作,理解對現場進行了保護,沒有任何的二次破壞.因為處理過多起類似故障(oracle asm disk格式化恢復—格式化為ntfs文件系統,oracle asm disk格式化恢復—格式化為ext4文件系統又一例asm格式化文件系統恢復),有一定的經驗,一般三種方案恢復數據文件:
1)運氣好直接通過kfed進行修復asm disk,然后mount起來,然后把數據文件拷貝到文件系統中
2)通過相關工具把asm disk中相關的數據文件拷貝到文件系統中
3)如果損壞的嚴重,通過底層碎片,把相關數據文件恢復到文件系統中
拷貝完成數據文件之后,然后根據文件的情況有幾種可能性:
1)直接open數據庫,處理可能的其他壞塊
2)通過一些方法強制拉庫,然后對其進行導出導入新庫
3)通過工具直接恢復表數據,甚至恢復部分核心數據
這次的恢復運氣不錯,對asm disk進行一系列修復之后,asm 磁盤組mount成功
C:\Users\Administrator>asmtool -list
NTFS \Device\Harddisk0\Partition1 80000M
NTFS \Device\Harddisk0\Partition2 491133M
ORCLDISKOCR0 \Device\Harddisk1\Partition1 34132M
ORCLDISKOCR1 \Device\Harddisk1\Partition2 34132M
ORCLDISKOCR2 \Device\Harddisk1\Partition3 34133M
ORCLDISKDATA0 \Device\Harddisk2\Partition1 511997M
ORCLDISKFRA0 \Device\Harddisk3\Partition2 1225000M
NTFS \Device\Harddisk3\Partition3 1225800M
\Device\Harddisk3\Partition4 1314861M
C:\Users\Administrator>sqlplus / as sysasm
SQL*Plus: Release 11.2.0.1.0 Production on 星期六 7月 13 11:20:02 2019
Copyright (c) 1982, 2010, Oracle. All rights reserved.
連接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
SQL> alter diskgroup data mount;
Diskgroup altered.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64
bit Production
With the Real Application Clusters and Automatic Storage Management options
mount數據庫拷貝文件
C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期六 7月 13 16:02:08 2019
Copyright (c) 1982, 2010, Oracle. All rights reserved.
已連接到空閑例程。
SQL> startup mount;
ORACLE 例程已經啟動。
Total System Global Area 3.4206E+10 bytes
Fixed Size 2192864 bytes
Variable Size 7516195360 bytes
Database Buffers 2.6642E+10 bytes
Redo Buffers 45727744 bytes
數據庫已裝載
RMAN> backup as copy database format 'I:\rmanback\df_%U.dbf';
啟動 backup 于 13-7月 -19
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
使用通道 ORA_DISK_3
使用通道 ORA_DISK_4
通道 ORA_DISK_1: 啟動數據文件副本
輸入數據文件: 文件號=00006 名稱=+DATA/orcl/datafile/XFF5.dmp
通道 ORA_DISK_2: 啟動數據文件副本
輸入數據文件: 文件號=00016 名稱=+DATA/orcl/datafile/XFF53
通道 ORA_DISK_3: 啟動數據文件副本
輸入數據文件: 文件號=00017 名稱=+DATA/orcl/datafile/XFF54
通道 ORA_DISK_4: 啟動數據文件副本
輸入數據文件: 文件號=00018 名稱=+DATA/orcl/datafile/XFF55
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-XFF5_FNO-16_0VU6I1FO.DBF
標記=TAG20190713T120927 RECID=2 STAMP=1013517954
通道 ORA_DISK_2: 數據文件復制完畢, 經過時間: 00:36:29
通道 ORA_DISK_2: 啟動數據文件副本
輸入數據文件: 文件號=00019 名稱=+DATA/orcl/datafile/XFF5.281.988042407
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-XFF5_FNO-17_10U6I1FO.DBF
標記=TAG20190713T120927 RECID=1 STAMP=1013517951
通道 ORA_DISK_3: 數據文件復制完畢, 經過時間: 00:36:29
通道 ORA_DISK_3: 啟動數據文件副本
輸入數據文件: 文件號=00020 名稱=+DATA/orcl/datafile/XFF5.282.988042943
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-XFF5_FNO-18_11U6I1FO.DBF
標記=TAG20190713T120927 RECID=3 STAMP=1013517962
通道 ORA_DISK_4: 數據文件復制完畢, 經過時間: 00:36:37
通道 ORA_DISK_4: 啟動數據文件副本
輸入數據文件: 文件號=00021 名稱=+DATA/orcl/datafile/XFF5.283.988043279
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-XFF5_FNO-6_0UU6I1FO.DBF
標記=TAG20190713T120927 RECID=4 STAMP=1013518052
通道 ORA_DISK_1: 數據文件復制完畢, 經過時間: 00:38:12
通道 ORA_DISK_1: 啟動數據文件副本
輸入數據文件: 文件號=00022 名稱=+DATA/orcl/datafile/XFF5.284.988043721
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-XFF5_FNO-20_13U6I3K5.DBF
標記=TAG20190713T120927 RECID=5 STAMP=1013519584
通道 ORA_DISK_3: 數據文件復制完畢, 經過時間: 00:27:10
通道 ORA_DISK_3: 啟動數據文件副本
輸入數據文件: 文件號=00009 名稱=+DATA/orcl/datafile/XFF51.dmp
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-XFF5_FNO-21_14U6I3KD.DBF
標記=TAG20190713T120927 RECID=6 STAMP=1013519586
通道 ORA_DISK_4: 數據文件復制完畢, 經過時間: 00:27:03
通道 ORA_DISK_4: 啟動數據文件副本
輸入數據文件: 文件號=00010 名稱=+DATA/orcl/datafile/XFF52.dmp
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-XFF5_FNO-19_12U6I3K5.DBF
標記=TAG20190713T120927 RECID=7 STAMP=1013519599
通道 ORA_DISK_2: 數據文件復制完畢, 經過時間: 00:27:26
通道 ORA_DISK_2: 啟動數據文件副本
輸入數據文件: 文件號=00003 名稱=+DATA/orcl/datafile/undotbs1.258.909498475
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-XFF5_FNO-22_15U6I3NC.DBF
標記=TAG20190713T120927 RECID=8 STAMP=1013519695
通道 ORA_DISK_1: 數據文件復制完畢, 經過時間: 00:27:19
通道 ORA_DISK_1: 啟動數據文件副本
輸入數據文件: 文件號=00005 名稱=+DATA/orcl/datafile/undotbs2.264.909498739
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-UNDOTBS1_FNO-3_18U6I57K.DB
F 標記=TAG20190713T120927 RECID=9 STAMP=1013520920
通道 ORA_DISK_2: 數據文件復制完畢, 經過時間: 00:22:02
通道 ORA_DISK_2: 啟動數據文件副本
輸入數據文件: 文件號=00012 名稱=+DATA/orcl/datafile/XFF5.275.954036129
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-UNDOTBS2_FNO-5_19U6I5AJ.DB
F 標記=TAG20190713T120927 RECID=10 STAMP=1013521015
通道 ORA_DISK_1: 數據文件復制完畢, 經過時間: 00:22:03
通道 ORA_DISK_1: 啟動數據文件副本
輸入數據文件: 文件號=00013 名稱=+DATA/orcl/datafile/XFF5.276.954036233
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-XFF5_FNO-10_17U6I574.DBF
標記=TAG20190713T120927 RECID=11 STAMP=1013521231
通道 ORA_DISK_4: 數據文件復制完畢, 經過時間: 00:27:30
通道 ORA_DISK_4: 啟動數據文件副本
輸入數據文件: 文件號=00002 名稱=+DATA/orcl/datafile/sysaux.257.909498475
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-XFF5_FNO-9_16U6I574.DBF
標記=TAG20190713T120927 RECID=12 STAMP=1013521244
通道 ORA_DISK_3: 數據文件復制完畢, 經過時間: 00:27:37
通道 ORA_DISK_3: 啟動數據文件副本
輸入數據文件: 文件號=00023 名稱=+DATA/orcl/datafile/XFF60.dmp
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-XFF5_FNO-12_1AU6I6GU.DBF
標記=TAG20190713T120927 RECID=13 STAMP=1013522267
通道 ORA_DISK_2: 數據文件復制完畢, 經過時間: 00:22:25
通道 ORA_DISK_2: 啟動數據文件副本
輸入數據文件: 文件號=00024 名稱=+DATA/orcl/datafile/XFF61.dmp
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-XFF5_FNO-13_1BU6I6JU.DBF
標記=TAG20190713T120927 RECID=15 STAMP=1013522367
通道 ORA_DISK_1: 數據文件復制完畢, 經過時間: 00:22:26
通道 ORA_DISK_1: 啟動數據文件副本
輸入數據文件: 文件號=00011 名稱=+DATA/orcl/datafile/system.dmp
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-SYSAUX_FNO-2_1CU6I6QM.DBF
標記=TAG20190713T120927 RECID=14 STAMP=1013522361
通道 ORA_DISK_4: 數據文件復制完畢, 經過時間: 00:18:50
通道 ORA_DISK_4: 啟動數據文件副本
輸入數據文件: 文件號=00001 名稱=+DATA/orcl/datafile/system.256.909498475
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-XFF5_FNO-23_1DU6I6QT.DBF
標記=TAG20190713T120927 RECID=16 STAMP=1013522400
通道 ORA_DISK_3: 數據文件復制完畢, 經過時間: 00:19:19
通道 ORA_DISK_3: 啟動數據文件副本
輸入數據文件: 文件號=00025 名稱=+DATA/orcl/datafile/XFF62.dmp
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-XFF5_FNO-25_1HU6I7V4.DBF
標記=TAG20190713T120927 RECID=17 STAMP=1013522490
通道 ORA_DISK_3: 數據文件復制完畢, 經過時間: 00:01:35
通道 ORA_DISK_3: 啟動數據文件副本
輸入數據文件: 文件號=00026 名稱=+DATA/orcl/datafile/XFF63.dmp
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-SYSTEM_FNO-1_1GU6I7U0.DBF
標記=TAG20190713T120927 RECID=18 STAMP=1013522526
通道 ORA_DISK_4: 數據文件復制完畢, 經過時間: 00:02:47
通道 ORA_DISK_4: 啟動數據文件副本
輸入數據文件: 文件號=00007 名稱=+DATA/orcl/datafile/precise.dbf
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-SYSTEM_FNO-11_1FU6I7U0.DBF
標記=TAG20190713T120927 RECID=20 STAMP=1013522576
通道 ORA_DISK_1: 數據文件復制完畢, 經過時間: 00:03:33
通道 ORA_DISK_1: 啟動數據文件副本
輸入數據文件: 文件號=00004 名稱=+DATA/orcl/datafile/users.259.909498477
RMAN-03009: backup 命令 (ORA_DISK_3 通道上, 在 07/13/2019 14:03:01 上) 失敗
ORA-19566: 超出損壞塊限制 0 (文件 +DATA/orcl/datafile/XFF63.dmp)
繼續執行其他作業步驟, 將不重新運行失敗的作業
通道 ORA_DISK_3: 啟動數據文件副本
輸入數據文件: 文件號=00014 名稱=+DATA/orcl/datafile/test.280.972807149
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-PRECISE_FNO-7_1JU6I837.DBF
標記=TAG20190713T120927 RECID=19 STAMP=1013522572
通道 ORA_DISK_4: 數據文件復制完畢, 經過時間: 00:00:46
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-USERS_FNO-4_1KU6I84L.DBF
標記=TAG20190713T120927 RECID=21 STAMP=1013522591
通道 ORA_DISK_1: 數據文件復制完畢, 經過時間: 00:00:15
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-TEST_FNO-14_1LU6I84L.DBF
標記=TAG20190713T120927 RECID=22 STAMP=1013522591
通道 ORA_DISK_3: 數據文件復制完畢, 經過時間: 00:00:15
輸出文件名=I:\RMANBACK\DF_DATA_D-ORCL_I-1437279340_TS-XFF5_FNO-24_1EU6I7R0.DBF
標記=TAG20190713T120927 RECID=23 STAMP=1013522974
通道 ORA_DISK_2: 數據文件復制完畢, 經過時間: 00:11:44
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: backup 命令 (ORA_DISK_3 通道上, 在 07/13/2019 14:03:01 上) 失敗
ORA-19566: 超出損壞塊限制 0 (文件 +DATA/orcl/datafile/XFF63.dmp)
運氣不錯,除+DATA/orcl/datafile/XFF63.dmp文件上面有壞塊之外其他文件沒有發現壞塊,對該文件進行特殊方式拷貝處理
dbv檢查該文件
C:\Users\Administrator>dbv file=i:/rmanback/26.dbf
DBVERIFY: Release 11.2.0.1.0 - Production on 星期六 7月 13 14:09:32 2019
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
DBVERIFY - 開始驗證: FILE = I:\RMANBACK\26.DBF
頁 132735 流入 - 很可能是介質損壞
Corrupt block relative dba: 0x0682067f (file 26, block 132735)
Fractured block found during dbv:
Data in bad block:
type: 40 format: 2 rdba: 0x0682067f
last change scn: 0x0000.333eaa21 seq: 0x2 flg: 0x04
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0xaa550000
check value in block header: 0x4242
computed block checksum: 0xb24f
DBVERIFY - 驗證完成
檢查的頁總數: 153600
處理的頁總數 (數據): 9283
失敗的頁總數 (數據): 0
處理的頁總數 (索引): 4789
失敗的頁總數 (索引): 0
處理的頁總數 (其他): 139463
處理的總頁數 (段) : 0
失敗的總頁數 (段) : 0
空的頁總數: 64
標記為損壞的總頁數: 1
流入的頁總數: 1
加密的總頁數 : 0
最高塊 SCN : 1029666541 (0.1029666541)
這次運氣非常好,該文件也只有一個壞塊,整體來說,把正在運行的asm disk磁盤格式化為ntfs格式化,整個數據庫文件只發現一個壞塊.拷貝數據文件,redo,ctl等之后
通過重建控制文件嘗試open數據庫
SQL> @ctl.sql
控制文件已創建。
SQL> RECOVER DATABASE;
完成介質恢復。
SQL> ALTER DATABASE OPEN;
數據庫已更改。
通過dba_extents 定位壞塊對象,然后根據實際情況處理(index直接rebuild,表跳過,lob置空等方法),確定數據沒有問題,重建磁盤組,數據回遷,恢復完美完成
總結
以上是生活随笔為你收集整理的惜分飞oracle,惜分飞 - 提供7*24专业数据库(Oracle,SQL Server,MySQL等)恢复和Oracle技术服务@Tel:+86 13429648788...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle 根据spid查sql,探讨
- 下一篇: oracle中字符串的脚本表示什么意思,