日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

window oracle 只有bak文件怎么恢复_一起来学习Oracle的备份恢复基础吧-4

發布時間:2023/12/4 windows 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 window oracle 只有bak文件怎么恢复_一起来学习Oracle的备份恢复基础吧-4 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于backup controlfile的恢復

使用備份的控制文件在實際工作中的兩種情況:

當前控制文件全部損壞,而數據文件備份、控制文件備份及當前的日志處在不同的SCN版本,它們之間又增加過表空間(數據文件)。

當前控制文件沒有損壞,但是想恢復被刪除的表空間。

使用備份的控制文件恢復數據庫的語法

recover database until [time|change] using backup controlfile

注意:[time|change]是可選的,如果條件滿足,仍然可以做到完全恢復,然后會出現如下選項:

Specify log: {=suggest | filename | AUTO | CANCEL }

此語法的出現是由于控制文件和當前日志中的SCN不一致,當前日志中的SCN總是最新的,而控制文件可能是老的或尚未更新的(shutdown abort過)。

AUTO:自動使用archivelog前滾恢復,但是一般不包括前滾current log;

filename:輸入當前文件的路徑和文件名,是指current log的恢復;

CANCEL:退出

注意:

1. 控制文件丟失進行恢復將會出現停機時間,不能聯機進行控制文件的恢復。

1. 使用backup controlfile子句恢復數據庫之后,一般用alter database open resetlogs打開數據庫。

例子

例1 當前控制文件損壞,數據文件損壞,有全備但之后增加了表空間,并備份了控制文件(控制文件次新,包含了新建的表空間)。

分析:新建表空間數據文件損壞,全備里沒有該數據文件的備份及控制文件描述,當前控制文件又丟失,只能用備份的控制文件恢復。

模式:所有數據文件備份---新建表空間----備份控制文件(次新)---日志文件(新)

1. 備份數據文件并新創建表空間,表

c. 備份控制文件

alter database backup controlfile to '/opt/oracle/app/oradata/test.bak/con.bak1';

d. 模擬數據文件故障

rm abcd01.dbf

e. 恢復所有數據文件備份,準備做不完全恢復

f. 啟動庫

g. 查看scn信息

可以看出:

1) file5在控制文件記錄的是abcd01,而與之對應的數據文件5是不存在的

2) 備份的數據文件scn比控制文件scn還老

h. 使用備份的控制文件恢復

recover database using backup controlfile;

報錯信息:ORA-00283ORA-01110ORA-01157ORA-01110

此報錯是因為老備份里沒有abcd表空間,但是控制文件里記錄了abcd,方法是建一個新的datafile空文件,而其中的內容可由日志文件recover(前滾)時填補出來;

alter database create datafile '/opt/oracle/app/oradata/test/abcd01.dbf';

再次使用recover database using backup controlfile;

查看redo3里包含9

i. resetlogs打開數據庫

alter database open resetlogs;

例2當前控制文件損壞,新建表空間在備份控制文件之后

模式:全備(老)--備份控制文件(次新)--新建表空間----日志文件(新)

分析:整個恢復過程中datafile結構發生了變化,變化發生在備份控制文件之后,新增了表空間,而控制文件中沒有此表空間記錄,但日志里有。

1. 備份數據文件

cp *.dbf

1. 備份控制文件

alter database backup controlfile to '/opt/oracle/app/oradata/test.bak/con.bak';

1. 新建表空間、表

m. 模擬新建數據文件損壞,將備份的數據文件、控制文件還原

n. 查看scn版本

可以看出控制文件scn要比數據文件scn新

o. 開啟庫并使用備份控制文件恢復數據庫

SQL> recover database using backup controlfile;

出現報錯信息:ora-00283ora-01244ora-01110

恢復后控制文件出現UNNAMED00005,老控制文件不知道之后的timran01.dbf

p. 重命名數據文件

alter database create datafile '/opt/oracle/app/product/11.2.0/db_1/dbs/UNNAMED00005' as '/opt/oracle/app/oradata/test/timran01.dbf'; --這條命令自動完成兩天動作:加了個數據文件timran01.dbf;重命名控制文件UNNAMED00005為timran01.dbf

q. 再次恢復database

r. resetlogs打開庫

例3恢復被刪除的表空間

環境;用戶使用正常的操作命令刪除了表空間及數據文件,但之后又希望恢復刪除的表空間,全備里有這個表空間的數據文件。

模式:全備(老)----控制文件備份(次新)------刪除表空間----所需日志(新)

分析:當用戶使用drop tablespace xxx including contents and datafiles 這條DDL語句后,數據結構發生了變更,涉及到了3個地方:控制文件、該表空間下的數據文件、系統表空間(數據字典)

注意:當前控制文件里已經沒有該表空間的信息了,所以不能使用當前的控制文件做恢復。恢復表空間要滿足三個條件:

1. 要有該表空間的數據文件備份

1. 要使用不完全恢復(基于時間點或SCN)

1. 使用備份的控制文件,而這個控制文件是刪除該表空間前的控制文件,不是當前的控制文件。這個非常重要,該控制文件中記錄了需要恢復的數據庫結構,重要的這個控制文件必須包括有你要恢復的那個表空間的信息。

1. 記錄當前scn

select current_scn from v$database;

w. 備份控制文件

x. 刪除表空間及數據文件

y. 刪除所有的數據文件和當前控制文件,還原所有數據文件及備份的控制文件

z. 啟動數據庫做基于時間點(或scn)的不完全恢復

recover database until change SCN using backup controlfile;

aa. alter database open resetlogs;

32

總結

以上是生活随笔為你收集整理的window oracle 只有bak文件怎么恢复_一起来学习Oracle的备份恢复基础吧-4的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。