参考三思笔记,进行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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12778571/viewspace-170335/