用rman進行恢復資料,簡單步驟!

mengzhaoliang發表於2008-02-14

參考三思筆記,進行rman恢復資料!

1  在oracle正常開啟的狀態下,執行E:\OracleScript\backup\database_backup_risesoft.bat指令碼!

在E:\OracleScript\backup\目錄下有database_backup_risesoft.bat和database_backup_risesoft.rman指令碼

database_backup_risesoft.bat內容如下:

set oracle_sid=risesoft
rman target / msglog E:\oracleScript\backup\logs\%date:~0,10%.log cmdfile=E:\oracleScript\backup\database_backup_risesoft.rman

 

database_backup_risesoft.rman內容如下:

RUN {
 CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
 CONFIGURE CONTROLFILE AUTOBACKUP ON;
 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:/backup/%F';
 ALLOCATE CHANNEL CH1 DEVICE TYPE DISK FORMAT 'd:/backup/%U';
 BACKUP DATABASE SKIP INACCESSIBLE FILESPERSET 10
   PLUS ARCHIVELOG FILESPERSET 20
   DELETE ALL INPUT;
 RELEASE CHANNEL CH1;
 }
 ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;
 CROSSCHECK BACKUPSET;
 DELETE NOPROMPT OBSOLETE;

 

2  在資料庫插入資料 (來自三思)

SQL> create table tmp3(col varchar2(50));

######建立一個臨時表並插入一些資料

表已建立。

 

SQL> insert into tmp3 values ('test1');

 

已建立 1 行。

 

SQL> insert into tmp3 values ('test2');

 

已建立 1 行。

 

SQL> insert into tmp3 values ('test3');

 

已建立 1 行。

 

SQL> select *from tmp3;

 

COL

--------------------------------------------------

test1

test2

test3

 

SQL> commit;

 

提交完成。

3  關閉資料庫,刪除資料(模擬丟失資料)

SQL> conn sys/mzl as sysdba;
已連線。
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> host del C:\oracle\oradata\risesoft\users01.dbf

 

4    啟動資料庫錯誤

SQL> startup
ORACLE 例程已經啟動。

Total System Global Area  126950220 bytes
Fixed Size                   453452 bytes
Variable Size             109051904 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 9 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 9: 'C:\ORACLE\ORADATA\RISESOFT\USERS01.DBF'


SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
risesoft         MOUNTED

 

5  用rman恢復

先修復資料檔案,後恢復資料檔案

Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\mzl>set oracle_sid=risesoft

C:\Documents and Settings\mzl>rman target/

恢復管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

連線到目標資料庫: RISESOFT (DBID=425358856)

RMAN> restore datafile 'C:\oracle\oradata\risesoft\users01.dbf';

啟動 restore 於 14-2月 -08

正在使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=12 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00009恢復到C:\ORACLE\ORADATA\RISESOFT\USERS01.DBF
通道 ORA_DISK_1: 已恢復備份段 1
段 handle=D:\BACKUP\0EJ8NGT6_1_1 tag=TAG20080214T210958 params=NULL
通道 ORA_DISK_1: 恢復完成
完成 restore 於 14-2月 -08

RMAN> recover datafile 'C:\oracle\oradata\risesoft\users01.dbf';

啟動 recover 於 14-2月 -08
使用通道 ORA_DISK_1

正在開始介質的恢復
完成介質的恢復

完成 recover 於 14-2月 -08

RMAN> alter database open;

資料庫已開啟

RMAN> host;

Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\mzl>sqlplus system/mzl

SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 2月 14 22:21:32 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


連線到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

SQL> select * from tmp3;

COL
--------------------------------------------------
test1
test2
test3
test4

 

 

rman恢復成功!!

 

 

 

附個SQL:用來查詢資料檔案,臨時檔案與表空間對應及資料檔案序號:(很有用,就貼上來了,以後方便使用)

SQL> l
  1  select ts.tablespace_name, df.file_name "data_file_name", df.file_id, tf.file_name "temp_file_name"
  2   from dba_tablespaces ts, dba_data_files df, dba_temp_files tf
  3   where ts.tablespace_name = df.tablespace_name(+)
  4    and ts.tablespace_name = tf.tablespace_name(+)
  5*


 主要來自三思筆記。


 

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

相關文章