利用DRA诊断和修复数据库案例
1.使用sql*plus,利用sysdba登录创建一个stu表空间
SQL> create tablespace stu
2 datafile 'd:\data\stu01.dbf' size 3m;
表空间已创建。
2.启动rman可执行程序(如果启动不了,请先启动相关的oracle服务)
C:\Documents and Settings\Administrator>rman target /
恢复管理器: Release 11.2.0.1.0 - Production on 星期一 8月 5 10:56:43 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: ORCL (DBID=1324535298)
3.rman界面下,列出stu表空间的全部完整备份
RMAN> list backup of tablespace stu;
使用目标数据库控制文件替代恢复目录
说明与资料档案库中的任何备份都不匹配
结果显示:没有此空间的备份集,我们使用以下命令创建一个stu表空间的full备份集
4.关闭实例,同时退出RMAN
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
RMAN> exit
RMAN-06900: 警告: 无法生成 V$RMAN_STATUS 或 V$RMAN_OUTPUT 行
RMAN-06901: 警告: 禁止更新 V$RMAN_STATUS 和 V$RMAN_OUTPUT 行
来自目标数据库的 ORACLE 错误:
ORA-03113: 通信通道的文件结尾
进程 ID: 3692
会话 ID: 134 序列号: 236
恢复管理器完成。
5.使用操作系统实用程序,删除创建的stu表空间的数据文件。在windows下,必须停止oracle实例服务。
6.使用sql*plus连接到数据库,并试着启动:
(注:在windows下,注意先启动oracle实例服务)
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01157: ????/?????? 7 - ??? DBWR ????
ORA-01110: ???? 7: 'D:\DATA\STU01.DBF'
发现,出现了错误:stu02.dbf缺失了,导致数据库不能打开.
7.启动rman可执行程序
C:\Documents and Settings\Administrator>rman target /
恢复管理器: Release 11.2.0.1.0 - Production on 星期一 8月 5 11:13:14 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
已连接到目标数据库: ORCL (DBID=1324535298, 未打开)
8.诊断问题
RMAN> list failure
2> ;
使用目标数据库控制文件替代恢复目录
数据库故障列表
=========================
失败 ID 优先级状态 检测时间 概要
------- -------- --------- ---------- -------
1002 HIGH OPEN 04-8月 -13 缺失一个或多个非系统数据文件
该命令返回一个结果:表示缺失一个或多个非系统数据文件
9.生成有关故障的建议
RMAN> advise failure;
数据库故障列表
=========================
失败 ID 优先级状态 检测时间 概要
------- -------- --------- ---------- -------
1002 HIGH OPEN 04-8月 -13 缺失一个或多个非系统数据文件
正在分析自动修复选项; 这可能需要一些时间
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=129 设备类型=DISK
分析自动修复选项完成
必需的手动操作
========================
没有可用的手动操作
可选手动操作
=======================
1. 如果无意中重命名或移动了文件 D:\DATA\STU01.DBF, 请还原该文件
自动修复选项
========================
选项修复说明
------ ------------------
1 还原和恢复数据文件 7
策略: 修复操作包括无数据丢失的完全介质恢复
修复脚本: d:\oraclepx\tools\oracle11g\diag\rdbms\orcl\orcl\hm\reco_1679767758.
hm
该命令建议您还原和恢复数据文件,并生成修复脚本。使用任意操作系统编辑文件系统编辑器打开脚本,并
研究其内容。
10.打开生成的脚本。查看里面的内容如下:
# restore and recover datafile restore datafile 7; recover datafile 7;
11.使用rman执行以上命令:
RMAN> restore datafile 7;
启动 restore 于 05-8月 -13
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00007 还原到 D:\DATA\STU01.DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\ORACLEPX\TOOLS\ORACLE11G\FLASH_RECOVERY_ARE
A\ORCL\BACKUPSET\2013_08_05\O1_MF_NNNDF_TAG20130805T110200_8ZY5F8JM_.BKP
通道 ORA_DISK_1: 段句柄 = D:\ORACLEPX\TOOLS\ORACLE11G\FLASH_RECOVERY_AREA\ORCL\B
ACKUPSET\2013_08_05\O1_MF_NNNDF_TAG20130805T110200_8ZY5F8JM_.BKP 标记 = TAG20130
805T110200
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
完成 restore 于 05-8月 -13
RMAN> recover datafile 7;
启动 recover 于 05-8月 -13
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:01
完成 recover 于 05-8月 -13
12.使用sql*plus,登录一下,是否成功登录:
SQL> alter database open;
数据库已更改。