Rman备份与恢复之目标数据库
1. 设置备份的文件存放的位置,备份时自动备份控制文件
C:\Documents and Settings\wwang>rman target / --在目标数据库上备份
恢复管理器: Release 11.2.0.1.0 - Production on 星期一 7月 2 22:15:57 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: MDSP (DBID=663168021)
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
已成功存储新的 RMAN 配置参数
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'D:\testrman\control\%F';
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'D:\testrman\control\%F';
已成功存储新的 RMAN 配置参数
RMAN> configure channel device type disk format 'D:\testrman\%d_%u_%T';
新的 RMAN 配置参数:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'D:\testrman\%d_%u_%T';
已成功存储新的 RMAN 配置参数
RMAN>
2.在raman备份前新建一张测试表并插入记录
SQL> create table rman(a varchar2(20));
表已创建。
SQL> insert into rman values('before raman backup');
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system archive log current;
系统已更改。
SQL>
3.用rman备份整个数据库包括控制文件spfile归档日志
RMAN> backup database plus archivelog;
启动 backup 于 02-7月 -12
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动归档日志备份集
通道 ORA_DISK_1: 正在指定备份集内的归档日志
输入归档日志线程=1 序列=44 RECID=1 STAMP=787522131
输入归档日志线程=1 序列=45 RECID=2 STAMP=787522334
输入归档日志线程=1 序列=46 RECID=3 STAMP=787607657
输入归档日志线程=1 序列=47 RECID=4 STAMP=787611335
输入归档日志线程=1 序列=48 RECID=5 STAMP=787611478
输入归档日志线程=1 序列=49 RECID=6 STAMP=787611636
输入归档日志线程=1 序列=50 RECID=7 STAMP=787611800
通道 ORA_DISK_1: 正在启动段 1 于 02-7月 -12
通道 ORA_DISK_1: 已完成段 1 于 02-7月 -12
段句柄=D:\TESTRMAN\MDSP_0DNF404P_20120702 标记=TAG20120702T210321 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:07
完成 backup 于 02-7月 -12
启动 backup 于 02-7月 -12
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=D:\APP\WWANG\ORADATA\MDSP\SYSTEM01.DBF
输入数据文件: 文件号=00002 名称=D:\APP\WWANG\ORADATA\MDSP\SYSAUX01.DBF
输入数据文件: 文件号=00003 名称=D:\APP\WWANG\ORADATA\MDSP\UNDOTBS01.DBF
输入数据文件: 文件号=00005 名称=D:\APP\WWANG\ORADATA\MDSP\IMUSE01.DBF
输入数据文件: 文件号=00006 名称=D:\APP\WWANG\ORADATA\MDSP\JACK.DBF
输入数据文件: 文件号=00004 名称=D:\APP\WWANG\ORADATA\MDSP\USERS01.DBF
输入数据文件: 文件号=00007 名称=D:\APP\WWANG\ORADATA\MDSP\TEST.DBF
通道 ORA_DISK_1: 正在启动段 1 于 02-7月 -12
通道 ORA_DISK_1: 已完成段 1 于 02-7月 -12
段句柄=D:\TESTRMAN\MDSP_0ENF4051_20120702 标记=TAG20120702T210329 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:03:08
完成 backup 于 02-7月 -12
启动 backup 于 02-7月 -12
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动归档日志备份集
通道 ORA_DISK_1: 正在指定备份集内的归档日志
输入归档日志线程=1 序列=51 RECID=8 STAMP=787611999
通道 ORA_DISK_1: 正在启动段 1 于 02-7月 -12
通道 ORA_DISK_1: 已完成段 1 于 02-7月 -12
段句柄=D:\TESTRMAN\MDSP_0FNF40AV_20120702 标记=TAG20120702T210639 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 02-7月 -12
启动 Control File and SPFILE Autobackup 于 02-7月 -12
段 handle=D:\TESTRMAN\CONTROL\C-663168021-20120702-01 comment=NONE
完成 Control File and SPFILE Autobackup 于 02-7月 -12
RMAN>
4.备份完成以后再次向表空插入一条记录(注意这条记录没有在备份文件中)
SQL> insert into rman values('after raman backup');
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from rman;
A
----------------------------------------
before raman backup
after raman backup
SQL>
5.构造破坏,用dbca把整个库删掉(在删掉之前把日志文件拷贝出来,最后我们插入的一条数据在日志文件中),实例删除完毕
恢复数据库
1.先建一个实例和原来实例名称相同,并建立相应的目录结构mdsp adump dpdump pfile等
C:\Documents and Settings\wwang>oradim -NEW -SID mdsp
实例已创建。
C:\Documents and Settings\wwang>
2.登录到实例并启动实例到nomount
C:\Documents and Settings\wwang>set oracle_sid=mdsp
C:\Documents and Settings\wwang>sqlplus "/as sysdba"
SQL*Plus: Release 11.2.0.1.0 Production on 星期一 7月 2 21:24:08 2012
Copyright (c) 1982, 2010, Oracle. All rights reserved.
已连接到空闲例程。
SQL> startup nomount;
ORA-01078: failure in processing system parameters
LRM-00109:???????????????? 'D:\APP\WWANG\PRODUCT\11.2.0\DBHOME_1\DATABASE\INITMDSP.ORA'
报错构成一个简单pfile文件只包含dbname=mdsp
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 150667264 bytes
Fixed Size 1373152 bytes
Variable Size 92277792 bytes
Database Buffers 50331648 bytes
Redo Buffers 6684672 bytes
ORA-00205: ?????????, ??????, ???????
3.Rman恢复spfile
C:\Documents and Settings\wwang>rman target /
恢复管理器: Release 11.2.0.1.0 - Production on 星期一 7月 2 21:52:31 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: MDSP (未装载)
RMAN> restore spfile from 'D:\testrman\control\C-663168021-20120702-01';
启动 restore 于 02-7月 -12
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=97 设备类型=DISK
通道 ORA_DISK_1: 正在从 AUTOBACKUP D:\testrman\control\C-663168021-20120702-01 还原 spfile
通道 ORA_DISK_1: 从 AUTOBACKUP 还原 SPFILE 已完成
完成 restore 于 02-7月 -12
RMAN>
4. 关闭数据库启动到nomount状态恢复控制文件:
RMAN> restore controlfile from 'D:\testrman\control\C-663168021-20120702-01';
启动 restore 于 02-7月 -12
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
输出文件名=D:\APP\WWANG\PRODUCT\11.2.0\DBHOME_1\DATABASE\CTL1MDSP.ORA
完成 restore 于 02-7月 -12
RMAN>
5. 恢复整个数据库
RMAN> alter database mount;
使用目标数据库控制文件替代恢复目录
数据库已装载
RMAN> restore database;
启动 restore 于 02-7月 -12
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=87 设备类型=DISK
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 D:\APP\WWANG\ORADATA\MDSP\SYSTEM01.DBF
通道 ORA_DISK_1: 将数据文件 00002 还原到 D:\APP\WWANG\ORADATA\MDSP\SYSAUX01.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 D:\APP\WWANG\ORADATA\MDSP\UNDOTBS01.DBF
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:\APP\WWANG\ORADATA\MDSP\USERS01.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 D:\APP\WWANG\ORADATA\MDSP\IMUSE01.DBF
通道 ORA_DISK_1: 将数据文件 00006 还原到 D:\APP\WWANG\ORADATA\MDSP\JACK.DBF
通道 ORA_DISK_1: 将数据文件 00007 还原到 D:\APP\WWANG\ORADATA\MDSP\TEST.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\TESTRMAN\MDSP_0ENF4051_20120702
通道 ORA_DISK_1: 段句柄 = D:\TESTRMAN\MDSP_0ENF4051_20120702 标记 = TAG20120702T210329
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:01:36
完成 restore 于 02-7月 -12
RMAN>
6. 把日志文件拷贝到原来的位置recover介质恢复:
RMAN> recover database;
启动 recover 于 02-7月 -12
使用通道 ORA_DISK_1
正在开始介质的恢复
线程 1 序列 51 的归档日志已作为文件 D:\APP\WWANG\FLASH_RECOVERY_AREA\MDSP\ARCHIVELOG\2012_07_02\O1_MF_1_51_7Z376
YVT_.ARC 存在于磁盘上
线程 1 序列 52 的归档日志已作为文件 D:\APP\WWANG\ORADATA\MDSP\REDO01.LOG 存在于磁盘上
归档日志文件名=D:\APP\WWANG\FLASH_RECOVERY_AREA\MDSP\ARCHIVELOG\2012_07_02\O1_MF_1_51_7Z376YVT_.ARC 线程=1 序列=
51
归档日志文件名=D:\APP\WWANG\ORADATA\MDSP\REDO01.LOG 线程=1 序列=52
介质恢复完成, 用时: 00:00:03
完成 recover 于 02-7月 -12
RMAN>
7. 打开数据库并查看记录;
SQL> alter database open resetlogs;
数据库已更改。
SQL> select * from rman;
A
----------------------------------------
before raman backup
after raman backup
SQL>
两个记录都在,最后一条记录是利用日志文件进行恢复的