1.建立乙個新的表空間
create tablespace rainbow
datafile 'd:\oracle\oradata\oa_test5\rainbow01.dbf' size 10m;
2.在其中建表
create table test
(emp int)
tablespace rainbow;
3.插入資料
insert into test
(emp) values(1000);
commit;
4.備份控制檔案
alter database backup controlfile to 'd:\control.bak';
5.關閉資料庫
shutdown immeidate;
6.進行全備份
備份所有的資料檔案
7.開啟資料庫
startup
8.刪除表空間rainbow
drop tablespace rainbow including contents; 16:46:03
9.為了驗證我們再更新另外乙個表空間裡的test2表
insert into test2 (emp) values(888);
commit;
10.關閉資料庫,並用6進行的全備份restore所有的資料檔案(不完全恢復一定要全部的資料檔案)
11.開啟至mount;
startup mount;
12.執行不完全恢復
recover database until time'2007-03-23:16:46:00' using backup controlfile;
(為什麼要使用using backup controlfile 因為刪除表空間後控制檔案被修改了)
sql> recover database until time'2007-03-23:16:46:00' using backup controlfile;
ora-00279: 更改 471722 (在 03/23/2007 16:39:44 生成) 對於執行緒 1 是必需的
ora-00289: 建議: d:\oracle\oradata\oa_test5\archive\arc00001.001
ora-00280: 更改 471722 對於執行緒 1 是按序列 # 1 進行的
指定日誌:
d:\oracle\oradata\oa_test5\redo03.log
已應用的日誌
完成介質恢復
13.開啟資料庫
alter database open resetlogs;
資料庫已更改
14.查詢原來的資料
select * from test;
結果報錯
error at line 1:
ora-00376: file 11 cannot be read at this time
ora-01111: name for data file 11 is unknown - rename to correct file
ora-01110: data file 11: '/opt/oracle/product/9.2.0/dbs/missing00011'
問題的原因:現在的控制檔案中沒有tablespace rainbow (前面已經將其刪除)
雖然我們用備份的控制檔案對資料庫進行了修復但是資料庫開啟時當前的控制
檔案仍然是最新的控制檔案。
出現'/opt/oracle/product/9.2.0/dbs/missing00011' ,是因為資料庫啟動時
發現控制檔案和system表空間中的dv資訊不一致造成的
解決方法:重建控制檔案
用備份出來的控制檔案'd:\control.bak'重新命名即可,或使用由alter
database backup control file to trace 備份的進行重建。
15.重新開啟資料庫並查詢資料
sql> select * from test;
empsql> select * from test2;
未選定行
說明資料庫已經按我們的要求進行不完全恢復了。
oracle自動備份 Oracle遠端備份
1.在tnsnames.ora新增要遠端備份的主機 如 67 description address list address protocol ipc key extproc0 connect data sid pl tproc presentation ro 2.開啟oracle目錄,拷貝exp...
oracle定時備份 增量備份
一 匯出 匯入 export import 利用export可將資料從資料庫中提取出來,利用import則可將提取出來的資料送回oracle資料庫中去。1.簡單匯出資料 export 和匯入資料 import oracle支援三種型別的輸出 1 表方式 t方式 將指定表的資料匯出。2 使用者方式 u...
Oracle 定時備份
最近客戶要求系統的資料庫每天備份一次,總是保留最近乙個星期的備份檔案,寫了乙個指令碼,也許有朋友會用到 新建bat檔案 del d dbbak bak7.dmp ren d dbbak bak6.dmp bak7.dmp ren d dbbak bak5.dmp bak6.dmp ren d dbb...