完全恢復(fù):
3.恢復(fù)打開的數(shù)據(jù)庫(數(shù)據(jù)庫故障引起宕機(jī));
介質(zhì)或者硬件故障導(dǎo)致數(shù)據(jù)庫關(guān)閉
7*24小時運(yùn)行,損壞的文件不屬于系統(tǒng)表空間和回滾表空間
例子:
rm -rf /database/oradata/skyread/sf01.dbf?
數(shù)據(jù)庫已經(jīng)因硬盤故障關(guān)閉,以上的sf01.dbf在改硬盤上
SQL> conn /as sysdba
Connected to an idle instance.
SQL> startup mount; ?--啟動數(shù)據(jù)到mount狀態(tài)
ORACLE instance started.
Total System Global Area 5049942016 bytes
Fixed Size ? ? ? ? ? ? ? ? ?2090880 bytes
Variable Size ? ? ? ? ? ?1375733888 bytes
Database Buffers ? ? ? ? 3657433088 bytes
Redo Buffers ? ? ? ? ? ? ? 14684160 bytes
Database mounted.
SQL> alter database open;--由于數(shù)據(jù)文件損壞無法打開數(shù)據(jù)庫
alter database open
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 26 - see DBWR trace file
ORA-01110: data file 26: '/database/oradata/skyread/sf01.dbf'
SQL> alter database datafile '/database/oradata/skyread/sf01.dbf' offline drop; --脫機(jī)故障的表空間
Database altered.
SQL> alter database open; --脫機(jī)故障文件后打開
Database altered.
SQL> alter database rename file '/database/oradata/skyread/sf01.dbf' to '/home/oracle/sf01.dbf'; 由于硬盤故障無法使用,這里使用備份數(shù)據(jù)文件
Database altered.
SQL> recover datafile 26; --進(jìn)行介質(zhì)恢復(fù)
Media recovery complete.
SQL> alter database datafile '/home/oracle/sf01.dbf' online; --數(shù)據(jù)文件online
Database altered.
SQL> col NAME for a50
SQL> set linesize 150
SQL> SELECT d.file# f#, d.name, d.status, h.status
? 2 ?FROM v$datafile d, v$datafile_header h
? 3 ?WHERE d.file# = h.file#;
? ? ? ? F# NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? STATUS ?STATUS
---------- -------------------------------------------------- ------- -------
? ? ? ? ?1 /database/oradata/skyread/system01.dbf ? ? ? ? ? ? SYSTEM ?ONLINE
? ? ? ? ?3 /database/oradata/skyread/sysaux01.dbf ? ? ? ? ? ? ONLINE ?ONLINE
? ? ? ? ?4 /database/oradata/skyread/users01.dbf ? ? ? ? ? ? ?ONLINE ?ONLINE
? ? ? ? 18 /database2/oradata/skyread/TBS_MRPMUSIC01.dbf ? ? ?ONLINE ?ONLINE
? ? ? ? 26 /home/oracle/sf01.dbf ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ONLINE ?ONLINE
? ? ? ? 31 /database2/oradata/skyread/undotbs02 ? ? ? ? ? ? ? ONLINE ?ONLINE
通過以上步驟恢復(fù)正常
4.在沒有備份的情況先恢復(fù)數(shù)據(jù)文件
沒有備份的數(shù)據(jù)文件故障的恢復(fù),一定要有該文件創(chuàng)建以來的所有歸檔
文件不屬于系統(tǒng)表空間和回滾表空間
控制文件知道這個文件的名稱
SQL> create tablespace tbs_test datafile '/database/oradata/skyread/tbs_test.dbf' size 10M; --創(chuàng)建測試表空間
Tablespace created.
SQL> create table t1 (a int) tablespace tbs_test; --創(chuàng)建測試表
Table created.
SQL> insert into t1 values(1); --插入數(shù)據(jù)
1 row created.
SQL> commit;
Commit complete.
SQL> select file_name,tablespace_name from dba_data_files where tablespace_name='TBS_TEST';
FILE_NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TABLESPACE_NAME
-------------------------------------------------- ------------------------------
/database/oradata/skyread/tbs_test.dbf ? ? ? ? ? ? TBS_TEST
rm -rf /database/oradata/skyread/tbs_test.dbf ? ?--模擬故障刪除該數(shù)據(jù)文件
SQL> ?alter tablespace tbs_test offline immediate; ?--回到數(shù)據(jù)庫offline表空間,如果數(shù)據(jù)庫關(guān)閉的,那么數(shù)據(jù)庫打開到mount狀態(tài),數(shù)據(jù)文件脫機(jī)
Tablespace altered.
SQL> select * from v$recover_file; --查看需要恢復(fù)的數(shù)據(jù)文件
? ? ?FILE# ONLINE ?ONLINE_ ERROR ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CHANGE# TIME
---------- ------- ------- ----------------------------------------------------------------- ---------- -------------------
? ? ? ? ?2 OFFLINE OFFLINE FILE NOT FOUND ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0
SQL> alter database create datafile '/database/oradata/skyread/tbs_test.dbf'; --手工創(chuàng)建數(shù)據(jù)文件如果原來的不能使用,可以加上as '老的數(shù)據(jù)文件'
Database altered.
SQL> ?select * from v$recover_file;
? ? ?FILE# ONLINE ?ONLINE_ ERROR ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CHANGE# TIME
---------- ------- ------- ----------------------------------------------------------------- ---------- -------------------
? ? ? ? ?2 OFFLINE OFFLINE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.2269E+11 2013-05-02 16:09:33
SQL> recover tablespace tbs_test; --介質(zhì)恢復(fù)
Media recovery complete.
SQL> alter tablespace tbs_test online; --聯(lián)機(jī)表空間
Tablespace altered.
SQL> select * from t1; ?--數(shù)據(jù)恢復(fù)了
? ? ? ? ?A
----------
? ? ? ? ?1
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
