1 Oracle創(chuàng)建簡單項目環(huán)境
1)創(chuàng)建表空間
SQL> create tablespace dreamtry_tbs datafile 'd:\Oracledate\dreamtry_tbs01.dbf' size 100M;
表空間已創(chuàng)建。
2)創(chuàng)建用戶
SQL> create user dreamtry identified by dreamtry;-
用戶已創(chuàng)建。
3)給用戶分配表空間
SQL> alter user dreamtry default tablespace dreamtry_tbs quota unlimited on dreamtry_tbs;
用戶已更改。
4)取消用戶對表空間都擁有寫權(quán)限(這點非必須,建議執(zhí)行)
SQL> alter user dreamtry default tablespace dreamtry_tbs quota unlimited on dreamtry_tbs;
用戶已更改。
5)給用戶分配基本權(quán)限 (可以加上with admin option)
SQL> grant connect,resource to dreamtry;
授權(quán)成功。
6)切換用戶
SQL> conn dreamtry/dreamtry;
已連接。
2 模擬數(shù)據(jù)文件丟失的恢復(fù)(前提是以前有過備份,并且有日志)
1) 備份數(shù)據(jù)文件
RMAN> backup datafile 'd:\Oracledate\dreamtry_tbs01.dbf' format 'D:\oracle\product\10.2.0\oradata\orcl\dreamtry_tbs01.dbf';
啟動 backup 于 01-3月 -12
使用目標(biāo)數(shù)據(jù)庫控制文件替代恢復(fù)目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=145 devtype=DISK
通道 ORA_DISK_1: 啟動全部數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定備份集中的數(shù)據(jù)文件
輸入數(shù)據(jù)文件 fno=00007 name=D:\OracleDATE\DREAMTRY_TBS01.DBF
通道 ORA_DISK_1: 正在啟動段 1 于 01-3月 -12
通道 ORA_DISK_1: 已完成段 1 于 01-3月 -12
段句柄=D:\Oracle\PRODUCT\10.2.0\ORADATA\ORCL\DREAMTRY_TBS01.DBF 標(biāo)記=TAG20120301T223142 注釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時間:00:00:03
完成 backup 于 01-3月 -12
2) 切換用戶dreamtry模擬數(shù)據(jù)操作
SQL> conn dreamtry/dreamtry;
已連接。
SQL> create table test(id number(10), name varchar2(20));
表已創(chuàng)建。
SQL> insert into test(id,name) values(1,'zhangsan');
已創(chuàng)建 1 行。
SQL> select * from test;
ID NAME
---------- --------------------
1 zhangsan
3) 模擬數(shù)據(jù)文件dreamtry_tbs01.dfb丟失
手工刪除OS文件dreamtry_tbs01.dbf(移到別處也可,以防萬一)
SQL> startup
Oracle 例程已經(jīng)啟動。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 251661188 bytes
Database Buffers 352321536 bytes
Redo Buffers 7135232 bytes
數(shù)據(jù)庫裝載完畢。
ORA-01157: 無法標(biāo)識/鎖定數(shù)據(jù)文件 7 - 請參閱 DBWR 跟蹤文件
ORA-01110: 數(shù)據(jù)文件 7: 'D:\OracleDATE\DREAMTRY_TBS01.DBF'
SQL> select status from v$instance;
STATUS
------------
MOUNTED
如上數(shù)據(jù)庫只能啟動mount狀態(tài).
4) 使用備份的數(shù)據(jù)文件恢復(fù)(當(dāng)然在有日志的情況下沒有備份也是可以恢復(fù)的)
RMAN> restore datafile 7;
啟動 restore 于 01-3月 -12
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在開始恢復(fù)數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定從備份集恢復(fù)的數(shù)據(jù)文件
正將數(shù)據(jù)文件00007恢復(fù)到D:\OracleDATE\DREAMTRY_TBS01.DBF
通道 ORA_DISK_1: 正在讀取備份段 D:\Oracle\PRODUCT\10.2.0\ORADATA\ORCL\DREAMTRY_TBS01.DBF
通道 ORA_DISK_1: 已恢復(fù)備份段 1
段句柄 = D:\Oracle\PRODUCT\10.2.0\ORADATA\ORCL\DREAMTRY_TBS01.DBF 標(biāo)記 = TAG20120301T223142
通道 ORA_DISK_1: 恢復(fù)完成, 用時: 00:00:04
完成 restore 于 01-3月 -12
5) 通過日志恢復(fù)備份以后操作數(shù)據(jù)庫的內(nèi)容
RMAN> recover datafile 7;
啟動 recover 于 01-3月 -12
使用通道 ORA_DISK_1
正在開始介質(zhì)的恢復(fù)
介質(zhì)恢復(fù)完成, 用時: 00:00:03
完成 recover 于 01-3月 -12
6) 打開數(shù)據(jù)庫
RMAN> alter database open;
數(shù)據(jù)庫已打開
7) 驗證數(shù)據(jù)
SQL> select * from dreamtry.test;
ID NAME
---------- --------------------
1 zhangsan
8) 由于是模擬,我還是把備份刪掉以免占用空間
RMAN> list backup;
備份集列表
===================
BS 關(guān)鍵字 類型 LV 大小 設(shè)備類型 經(jīng)過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
3 Full 88.00K DISK 00:00:02 01-3月 -12
BP 關(guān)鍵字: 3 狀態(tài): AVAILABLE 已壓縮: NO 標(biāo)記: TAG20120301T223142
段名:D:\Oracle\PRODUCT\10.2.0\ORADATA\ORCL\DREAMTRY_TBS01.DBF
備份集 3 中的數(shù)據(jù)文件列表
文件 LV 類型 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
7 Full 1068184 01-3月 -12 D:\OracleDATE\DREAMTRY_TBS01.DBF
RMAN> delete backupset 3;
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=145 devtype=DISK
備份段列表
BP 關(guān)鍵字 BS 關(guān)鍵字 Pc# Cp# 狀態(tài) 設(shè)備類型段名稱
------- ------- --- --- ----------- ----------- ----------
3 3 1 1 AVAILABLE DISK D:\Oracle\PRODUCT\10.2.0\ORADATA\ORCL\DREAMTRY_TBS01.DBF
是否確定要刪除以上對象 (輸入 YES 或 NO)? YES
已刪除備份段
備份段 handle=D:\Oracle\PRODUCT\10.2.0\ORADATA\ORCL\DREAMTRY_TBS01.DBF recid=3 stamp=776817102
1 對象已刪除
RMAN> crosscheck backup;
使用通道 ORA_DISK_1
RMAN> delete expired backup;
使用通道 ORA_DISK_1
9) 結(jié)論:日志是最后一道防線,所以最好先備份,最好也對archive log也備份,還是以防萬一. 本文出自:億恩科技【mszdt.com】
服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|