最近开始学习rman备份恢复了,主要看的是三思的资料,要谢谢他了,呵~~根据测试的结果,整体了下测试的笔记,发上来,供日后复习了!这一章节主要讲的是恢复数据文件测试
[@more@]第四章 rman恢复测试
一、windows冷备后删除数据文件,rman恢复
在关闭数据库的前提下,直接在window复制所有的控制文件、数据文件及参数文件,即D:oracleproduct10.2.0oradataorcl将orcl整个文件夹copy一份,接着做一下的操作。
--创建表空间
SQL> create tablespace "TEST01"
2 logging
3 datafile 'D:oracleproduct10.2.0oradataorcltest01.ora' size 100M;
表空间已创建。
--创建用户及用户授权
SQL> create user test identified by test default tablespace TEST01;
用户已创建。
SQL> grant connect to test;
授权成功。
SQL> grant resource to test;
授权成功。
--切换到新建的用户连接
SQL> conn test/test
已连接。
--创建测试表及插入二条数据
SQL> create table tmp(a varchar(3));
表已创建。
SQL> insert into tmp values('1');
已创建 1 行。
SQL> insert into tmp values('2');
已创建 1 行。
SQL> commit;
提交完成。
SQL> select *from tmp;
A
---
1
2
--连接sysdba用户,关闭数据库,删除刚新建的数据文件
SQL> conn / as sysdba;
已连接。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del D:oracleproduct10.2.0oradataorcltest01.ora;
--启动数据库
SQL> startup;
ORACLE 例程已经启动。
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 117441216 bytes
Database Buffers 163577856 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 5 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 5: 'D:ORACLEPRODUCT10.2.0ORADATAORCLTEST01.ORA'
--退出sqlplus命令
SQL> quit;
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
--进入rman命令提示符
C:Documents and Settingspengwzh>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期五 4月 3 14:16:08 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到目标数据库: ORCL (DBID=1210922825, 未打开)
RMAN> startup mount;
数据库已经启动
--修复删除的数据文件D:oracleproduct10.2.0oradataorcltest01.ora,文件ID为5
RMAN> restore datafile 5;
启动 restore 于 03-4月 -09
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
创建数据文件 fno = 5 名称 = D:ORACLEPRODUCT10.2.0ORADATAORCLTEST01.ORA
没有完成恢复; 所有文件均为只读或脱机文件或者已经恢复
完成 restore 于 03-4月 -09
--恢复数据文件5,即D:oracleproduct10.2.0oradataorcltest01.ora.
RMAN> recover datafile 5;
启动 recover 于 03-4月 -09
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:01
完成 recover 于 03-4月 -09
--打开数据库
RMAN> alter database open;
数据库已打开
--退出rman
RMAN> exit;
恢复管理器完成。
--连接test用户
C:Documents and Settingspengwzh>sqlplus test/test
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 4月 3 14:20:23 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
--查询删除数据文件之前新建的表数据,如下:
SQL> select * from tmp;
A
---
1
2
恢复成功
二、rman备份、恢复综合测试
以下的备份和恢复都是rman实现,在删除已有的window冷备后开始用rman备份,备份后破坏数据文件,再利用备份的库还原数据文件。测试如下:
--进入rman,关闭数据库,启动加载状态
C:Documents and Settingspengwzh>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期五 4月 3 14:23:48 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL (DBID=1210922825)
RMAN> shutdown immediate;
使用目标数据库控制文件替代恢复目录
数据库已关闭
数据库已卸载
Oracle 实例已关闭
RMAN> startup mount;
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
系统全局区域总计 289406976 字节
Fixed Size 1248576 字节
Variable Size 121635520 字节
Database Buffers 159383552 字节
Redo Buffers 7139328 字节
执行上章节的批处理F:oracleScriptbackupdatabase_backup_orcl.bat,进行数据库全备,备份日志输出如下:
恢复管理器: Release 10.2.0.1.0 - Production on 星期五 4月 3 14:25:27 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到目标数据库: ORCL (DBID=1210922825, 未打开)
RMAN> RUN {
2> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
3> CONFIGURE CONTROLFILE AUTOBACKUP ON;
4> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:/backup/%F';
5> ALLOCATE CHANNEL CH1 DEVICE TYPE DISK FORMAT 'd:/backup/%U';
6> BACKUP database SKIP INACCESSIBLE FILESPERSET 10
7> PLUS ARCHIVELOG FILESPERSET 20
8> DELETE ALL INPUT;
9> RELEASE CHANNEL CH1;
10> }
11> ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;
12> CROSSCHECK BACKUPSET;
13> DELETE NOPROMPT OBSOLETE;
14>
使用目标数据库控制文件替代恢复目录
旧的 RMAN 配置参数:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
新的 RMAN 配置参数:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
已成功存储新的 RMAN 配置参数
旧的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
已成功存储新的 RMAN 配置参数
旧的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:/backup/%F';
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:/backup/%F';
已成功存储新的 RMAN 配置参数
分配的通道: CH1
通道 CH1: sid=153 devtype=DISK
启动 backup 于 03-4月 -09
说明与恢复目录中的任何存档日志均不匹配
由于跳过所有文件而取消了备份
完成 backup 于 03-4月 -09
启动 backup 于 03-4月 -09
通道 CH1: 启动全部数据文件备份集
通道 CH1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
输入数据文件 fno=00003 name=D:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
输入数据文件 fno=00005 name=D:ORACLEPRODUCT10.2.0ORADATAORCLTEST01.ORA
输入数据文件 fno=00002 name=D:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
输入数据文件 fno=00004 name=D:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF
通道 CH1: 正在启动段 1 于 03-4月 -09
通道 CH1: 已完成段 1 于 03-4月 -09
段句柄=D:BACKUP3KBI3RK_1_1 标记=TAG20090403T142556 注释=NONE
通道 CH1: 备份集已完成, 经过时间:00:00:46
完成 backup 于 03-4月 -09
启动 backup 于 03-4月 -09
说明与恢复目录中的任何存档日志均不匹配
由于跳过所有文件而取消了备份
完成 backup 于 03-4月 -09
启动 Control File and SPFILE Autobackup 于 03-4月 -09
段 handle=D:BACKUPC-1210922825-20090403-01 comment=NONE
完成 Control File and SPFILE Autobackup 于 03-4月 -09
释放的通道: CH1
分配的通道: ORA_MAINT_DISK_1
通道 ORA_MAINT_DISK_1: sid=153 devtype=DISK
交叉校验备份段: 找到为 'AVAILABLE'
备份段 handle=D:BACKUP3KBI3RK_1_1 recid=3 stamp=683216757
交叉校验备份段: 找到为 'AVAILABLE'
备份段 handle=D:BACKUPC-1210922825-20090403-01 recid=4 stamp=683216804
已交叉检验的 2 对象
RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为 7 天的恢复窗口
未找到已废弃的备份
恢复管理器完成。
--打开数据库,退出rman
RMAN> alter database open;
数据库已打开
RMAN>exit;
--用test用户进入sqlplus
C:Documents and Settingspengwzh>sqlplus test/test
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 4月 3 14:29:52 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
--创建表及插入数据
SQL> create table tmp(a varchar(2));
表已创建。
SQL> insert into tmp values('1');
已创建 1 行。
SQL> insert into tmp values('2');
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from tmp;
A
--
1
2
--连接sysdba用户,关闭数据库,删除数据文件5
SQL> conn / as sysdba;
已连接。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del D:oracleproduct10.2.0oradataorcltest01.ora;
--启动数据库,启动失败,退出sqlplus操作如下:
SQL> startup;
ORACLE 例程已经启动。
Total System Global Area 289406976 bytes
Fixed Size 1248576 bytes
Variable Size 125829824 bytes
Database Buffers 155189248 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 5 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 5: 'D:ORACLEPRODUCT10.2.0ORADATAORCLTEST01.ORA'
SQL> exit;
--进入rman命令提示符,利用rman备份的数据库来恢复删除的数据文件5
C:Documents and Settingspengwzh>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期五 4月 3 14:34:52 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到目标数据库: ORCL (DBID=1210922825, 未打开)
RMAN> shutdown immediate;
使用目标数据库控制文件替代恢复目录
数据库已卸载
Oracle 实例已关闭
RMAN> startup mount;
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
系统全局区域总计 289406976 字节
Fixed Size 1248576 字节
Variable Size 125829824 字节
Database Buffers 155189248 字节
Redo Buffers 7139328 字节
RMAN> restore datafile 5;
启动 restore 于 03-4月 -09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00005恢复到D:ORACLEPRODUCT10.2.0ORADATAORCLTEST01.ORA
通道 ORA_DISK_1: 正在读取备份段 D:BACKUP3KBI3RK_1_1
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = D:BACKUP3KBI3RK_1_1 标记 = TAG20090403T142556
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:08
完成 restore 于 03-4月 -09
RMAN> recover datafile 5;
启动 recover 于 03-4月 -09
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:03
完成 recover 于 03-4月 -09
RMAN>
--恢复成功,打开数据库,退出rman
RMAN> alter database open;
数据库已打开
RMAN> exit;
恢复管理器完成。
--用test用户连接sqlplus,刚备份之后新建的表及数据是否存在
C:Documents and Settingspengwzh>sqlplus test/test
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 4月 3 15:01:47 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select * from tmp;
A
--
1
2
SQL>
Tmp表存在,数据也没丢失,虽然数据文件被删了,但还原后可以恢复到被删数据文件时的数据库状态。
附:测试环境如下
查看数据库归档模式
SQL> conn / as sysdba;
已连接。
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 1
当前日志序列 3
SQL>
查看数据库版本
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
SQL>
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21251711/viewspace-1019819/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21251711/viewspace-1019819/
本文详细记录了使用RMAN进行数据库备份与恢复的过程,包括在Windows环境下冷备份后删除数据文件并通过RMAN恢复,以及RMAN备份恢复综合测试。
2971

被折叠的 条评论
为什么被折叠?



