將一個DB改名前的資料檔案備份加入改名後的資料庫

westzq1984發表於2013-01-22
朋友的一個問題,就是資料庫在修改資料庫名和ID後,誤刪了資料檔案。
只有一個資料庫修改名稱前的冷備,想把這個備份的資料檔案強制加到現在用。

測試了下,需要修改如下位置:
file 1 為改名前的備份
file 2 為改名後的同表空間的資料檔案

assign /x dba 1,1 offset 28 = dba 2,1 offset 28
assign /x dba 1,1 offset 29 = dba 2,1 offset 29
assign /x dba 1,1 offset 30 = dba 2,1 offset 30
assign /x dba 1,1 offset 31 = dba 2,1 offset 31
p kcvfh.kcvfhhdr.kccfhdbi

assign /x dba 1,1 offset 32 = dba 2,1 offset 32
assign /x dba 1,1 offset 33 = dba 2,1 offset 33
assign /x dba 1,1 offset 34 = dba 2,1 offset 34
assign /x dba 1,1 offset 35 = dba 2,1 offset 35
assign /x dba 1,1 offset 36 = dba 2,1 offset 36
assign /x dba 1,1 offset 37 = dba 2,1 offset 37
assign /x dba 1,1 offset 38 = dba 2,1 offset 38
assign /x dba 1,1 offset 39 = dba 2,1 offset 39
p kcvfh.kcvfhhdr.kccfhdbn

assign /x dba 1,1 offset 484 = dba 2,1 offset 484
assign /x dba 1,1 offset 485 = dba 2,1 offset 485
assign /x dba 1,1 offset 486 = dba 2,1 offset 486
assign /x dba 1,1 offset 487 = dba 2,1 offset 487
assign /x dba 1,1 offset 500 = dba 2,1 offset 500
assign /x dba 1,1 offset 501 = dba 2,1 offset 501
assign /x dba 1,1 offset 502 = dba 2,1 offset 502
assign /x dba 1,1 offset 503 = dba 2,1 offset 503
assign /x dba 1,1 offset 504 = dba 2,1 offset 504
assign /x dba 1,1 offset 505 = dba 2,1 offset 505
assign /x dba 1,1 offset 506 = dba 2,1 offset 506
assign /x dba 1,1 offset 507 = dba 2,1 offset 507
p kcvfh.kcvfhhdr.kcvfhckp

assign /x dba 1,1 offset 116 = dba 2,1 offset 116
assign /x dba 1,1 offset 117 = dba 2,1 offset 117
assign /x dba 1,1 offset 118 = dba 2,1 offset 118
assign /x dba 1,1 offset 119 = dba 2,1 offset 119
assign /x dba 1,1 offset 120 = dba 2,1 offset 120
assign /x dba 1,1 offset 121 = dba 2,1 offset 121
p kcvfh.kcvfhrls

assign /x dba 1,1 offset 420 = dba 2,1 offset 420
assign /x dba 1,1 offset 421 = dba 2,1 offset 421
assign /x dba 1,1 offset 422 = dba 2,1 offset 422
assign /x dba 1,1 offset 423 = dba 2,1 offset 423
assign /x dba 1,1 offset 424 = dba 2,1 offset 424
assign /x dba 1,1 offset 425 = dba 2,1 offset 425
p kcvfhprs.kcvfhprs

assign /x dba 1,1 offset 40 = dba 2,1 offset 40
assign /x dba 1,1 offset 41 = dba 2,1 offset 41
assign /x dba 1,1 offset 42 = dba 2,1 offset 42
assign /x dba 1,1 offset 43 = dba 2,1 offset 43
p kcvfh.kcvfhhdr.kccfhcsq

assign /x dba 1,1 offset 112 = dba 2,1 offset 112
assign /x dba 1,1 offset 113 = dba 2,1 offset 113
assign /x dba 1,1 offset 114 = dba 2,1 offset 114
assign /x dba 1,1 offset 115 = dba 2,1 offset 115
p kcvfh.kcvfhrlc

sum apply

然後重建控制檔案
RECOVER DATABASE USING BACKUP CONTROLFILE,指定REDO恢復
alter database open resetlogs

搞定。不過這樣生產環境弄,可能有很多邏輯損壞。要看到底有多少資料動過。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8242091/viewspace-753087/,如需轉載,請註明出處,否則將追究法律責任。

相關文章