控制文件的备份与恢复(RMAN工具)
控制文件的备份与恢复(RMAN工具)
数据库版本
SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production PL/SQL Release 11.2.0.1.0 - Production CORE 11.2.0.1.0 Production TNS for 32-bit Windows: Version 11.2.0.1.0 - Production NLSRTL Version 11.2.0.1.0 - Production C:\Documents and Settings\Administrator>rman target / catalog rm_user/rm_user
恢复管理器: Release 11.2.0.1.0 - Production on 星期日 8月 11 16:00:49 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: ORCL (DBID=1318810635)
连接到恢复目录数据库
查看rman 配置
RMAN> show all; db_unique_name 为 ORCL 的数据库的 RMAN 配置参数为: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'f:\rmanbackup\controlfile\%F'; CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'd:\backup\%d_%s.bak'; CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'E:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SNCFORCL.ORA'; # default
说明控制文件的备份策略为自动备份;那么就先任意备份一个数据文件(本次就用备份此数据文件时自动备份的控制文件)
RMAN> backup datafile 7;
启动 backup 于 11-8月 -13
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00007 名称=E:\RMAN.DBF
通道 ORA_DISK_1: 正在启动段 1 于 11-8月 -13
通道 ORA_DISK_1: 已完成段 1 于 11-8月 -13
段句柄=D:\BACKUP\ORCL_167.BAK 标记=TAG20130811T152451 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
完成 backup 于 11-8月 -13
启动 Control File and SPFILE Autobackup 于 11-8月 -13
段 handle=F:\RMANBACKUP\CONTROLFILE\C-1318810635-20130811-00comment=NONE
完成 Control File and SPFILE Autobackup 于 11-8月 -13
RMAN> shutdown immediate;
数据库已关闭
数据库已卸装
Oracle 实例已关闭
手动删除所有控制文件;
以下是恢复步骤;
RMAN> startup nomount;
数据库已经启动
RMAN> restore controlfile from autobackup; 启动 restore 于 11-8月 -13 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: restore 命令 (在 08/11/2013 15:28:47 上) 失败 RMAN-06004: 恢复目录数据库发生 ORACLE 错误: ORA-03114: 未连接到 ORACLE
说明关闭数据库之后已经断开了与数据库的链接;
RMAN> exit
恢复管理器完成。
由于数据库启动不了,所以恢复目录用不了,那么就只连接到目标数据库;
C:\Documents and Settings\Administrator>rman target /
恢复管理器: Release 11.2.0.1.0 - Production on 星期日 8月 11 15:30:05 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: ORCL (未装载)
RMAN> startup nomount;
数据库已经启动
RMAN> restore controlfile from autobackup;
启动 restore 于 11-8月 -13
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=133 设备类型=DISK
恢复区目标: F:\rmanbackup
用于搜索的数据库名 (或数据库的唯一名称): ORCL
通道 ORA_DISK_1: 在恢复区中没有找到 AUTOBACKUP
由于未设置 DBID 而未尝试使用格式 "%F" 搜索 AUTOBACKUP
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 08/11/2013 15:30:20 上) 失败
RMAN-06172: 没有找到 AUTOBACKUP, 或者指定的句柄不是有效副本或片段
RMAN> restore controlfile from 'f:\rmanbackup\controlfile\C-1318810635-20130811-00';
启动 restore 于 11-8月 -13
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:03
输出文件名=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL
输出文件名=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL
完成 restore 于 11-8月 -13
经查看,发现控制文件已经被转储到目标位置;
RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1
RMAN> recover database;
启动 recover 于 11-8月 -13
启动 implicit crosscheck backup 于 11-8月 -13
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=133 设备类型=DISK
已交叉检验的 2 对象
完成 implicit crosscheck backup 于 11-8月 -13
启动 implicit crosscheck copy 于 11-8月 -13
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 11-8月 -13
搜索恢复区中的所有文件
正在编制文件目录...
没有为文件编制目录
使用通道 ORA_DISK_1
正在开始介质的恢复
线程 1 序列 190 的归档日志已作为文件 E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG 存在于磁盘上
归档日志文件名=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG 线程=1 序列=190
介质恢复完成, 用时: 00:00:03
完成 recover 于 11-8月 -13
RMAN> alter database open resetlogs;
数据库已打开
其中OCP 有一道考察这样的题目:
Q606. You realize that the control file is damaged in your production database. After restoring the control file from autobackup, what is the next step that you must do to proceed with the database recovery?
A. Mount the database
B. Open the database in NORMAL mode
C. Open the database in RESTRICTED mode
D. Open the database with the RESETLOGS option
Answer: A
&n