用rman执行脱机备份并不同于oracle的冷备份,要求当时数据库处于mount状态,oracle实例(SGA+PGA+后台进程)实际已经在内存上创建,并且已经找到对应的控制文件。因为rman执行脱机备份时需要读取控制文件的信息,所以oracle必须处于mount状态。
我把自己的学习过程写下来,提供各位网友参考。
C:/>rman target rman/rman //链接到目标库
恢复管理器: Release 11.1.0.6.0 - Production on 星期日 9月 6 16:40:01 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到目标数据库: OCA11G (DBID=3211251323)
RMAN> shutdown immediate ; //在rman命令行下面关闭数据库
使用目标数据库控制文件替代恢复目录
数据库已关闭
数据库已卸装
Oracle 实例已关闭
RMAN> startup mount; //在rman命令行下面启动数据库,执行脱机备份必须是 mount状态,数据库并没有打开。
Oracle 实例已启动
数据库已装载
系统全局区域总计 497995776 字节
Fixed Size 1334124 字节
Variable Size 272630932 字节
Database Buffers 218103808 字节
Redo Buffers 5926912 字节
RMAN> backup as compressed backupset database ; //将数据库备份为备份集
启动 backup 于 06-9月 -09
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1 // 只配置了一个通道,所以备份数据集为一个
通道 ORA_DISK_1: SID=154 设备类型=DISK
通道 ORA_DISK_1: 正在启动压缩的全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=C:/APP/ADMINISTRATOR/ORADATA/OCA11G/SYSTEM01.DBF
输入数据文件: 文件号=00002 名称=C:/APP/ADMINISTRATOR/ORADATA/OCA11G/SYSAUX01.DBF
输入数据文件: 文件号=00005 名称=C:/APP/ADMINISTRATOR/ORADATA/OCA11G/RMAN.DBF
输入数据文件: 文件号=00003 名称=C:/APP/ADMINISTRATOR/ORADATA/OCA11G/UNDOTBS01.DB
F
输入数据文件: 文件号=00004 名称=C:/APP/ADMINISTRATOR/ORADATA/OCA11G/USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 06-9月 -09
通道 ORA_DISK_1: 已完成段 1 于 06-9月 -09
段句柄=C:/APP/ADMINISTRATOR/FLASH_RECOVERY_AREA/OCA11G/BACKUPSET/2009_09_06/O1_M
F_NNNDF_TAG20090906T164233_5B6XJ43F_.BKP 标记=TAG20090906T164233 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:06
通道 ORA_DISK_1: 正在启动压缩的全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
备份集内包括当前控制文件
备份集内包括当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 06-9月 -09
通道 ORA_DISK_1: 已完成段 1 于 06-9月 -09
段句柄=C:/APP/ADMINISTRATOR/FLASH_RECOVERY_AREA/OCA11G/BACKUPSET/2009_09_06/O1_M
F_NCSNF_TAG20090906T164233_5B6XLGL2_.BKP 标记=TAG20090906T164233 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 06-9月 -09
RMAN> alter database open ; //备份完毕,打开数据库
使用目标数据库控制文件替代恢复目录
数据库已打开