全部博文(191)
分类: Oracle
2010-03-28 04:20:45
备份实验:
1、用catalog
2、用controlfile
3、用catalog,
目的,第三次的备份能否成功,用第一次catalog备份去恢复能否成功。
实验如下:
1.连接到目标数据库和恢复目录:
C:\Documents and Settings\Administrator>rman
恢复管理器: Release 10.2.0.1.0 - Production on 星期六 3月 27 20:50:13 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
RMAN> connect target sys/sun123@cisdb
连接到目标数据库: CISDB (DBID=4048038982)
RMAN> connect catalog catalog_rman/catalog_rman@catalog
连接到恢复目录数据库
2.备份数据库(第一次catalog备份,tag =CATALOG_FULL_01):
修改rman配置参数自动备份控制文件
CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> run {
2> allocate channel d001 device type disk format 'e:\catalog_01\%d_%U';
3> backup database tag='catalog_full_01';
4> }
分配的通道: d001
通道 d001: sid=180 devtype=DISK
启动 backup 于 28-3月 -10
通道 d001: 启动全部数据文件备份集
通道 d001: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\SYSAUX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\EXAMPLE01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS02.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\UNDOTBS01.DBF
输入数据文件 fno=00011 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\AUTOALLOCATE_TBS_01.DBF
输入数据文件 fno=00009 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\ORA_DATA_1.DBF
输入数据文件 fno=00012 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\UNIFORM_TBS_01.DBF
输入数据文件 fno=00013 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\UNIFORM_TBS_02.DBF
输入数据文件 fno=00007 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\UNDOTBS02.DBF
输入数据文件 fno=00010 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\ORA_DATA1_01.DBF
输入数据文件 fno=00008 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\BLOCK.DBF
通道 d001: 正在启动段 1 于 28-3月 -10
通道 d001: 已完成段 1 于 28-3月 -10
段句柄=E:\CATALOG_01\CISDB_1QL9LPGR_1_1 标记=CATALOG_FULL_01 注释=NONE
通道 d001: 备份集已完成, 经过时间:00:01:46
通道 d001: 启动全部数据文件备份集
通道 d001: 正在指定备份集中的数据文件
输入数据文件 fno=00014 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\4K_TBS01.DBF
通道 d001: 正在启动段 1 于 28-3月 -10
通道 d001: 已完成段 1 于 28-3月 -10
段句柄=E:\CATALOG_01\CISDB_1RL9LPK6_1_1 标记=CATALOG_FULL_01 注释=NONE
通道 d001: 备份集已完成, 经过时间:00:00:01
完成 backup 于 28-3月 -10
启动 Control File and SPFILE Autobackup 于 28-3月 -10
段 handle=D:\ORACLE\PRODUCT\FLASH\CISDB\AUTOBACKUP\2010_03_28\O1_MF_S_714794632_5TWL4B2X_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 28-3月 -10
释放的通道: d001
3.备份数据库(第二次controlfile tag= CONTROLFILE_FULL_02 )
C:\Documents and Settings\Administrator>rman
恢复管理器: Release 10.2.0.1.0 - Production on 星期六 3月 27 23:04:05 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
RMAN> connect target sys/sun123@cisdb
连接到目标数据库: CISDB (DBID=4048038982)
RMAN> run {
2> allocate channel c001 device type disk format 'e:\controlfile_02\%d_%U';
3> backup database tag='controlfile_full_02';
4> }
使用目标数据库控制文件替代恢复目录
分配的通道: c001
通道 c001: sid=178 devtype=DISK
启动 backup 于 28-3月 -10
通道 c001: 启动全部数据文件备份集
通道 c001: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\SYSAUX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\EXAMPLE01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS02.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\UNDOTBS01.DBF
输入数据文件 fno=00011 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\AUTOALLOCATE_TBS_01.DBF
输入数据文件 fno=00009 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\ORA_DATA_1.DBF
输入数据文件 fno=00012 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\UNIFORM_TBS_01.DBF
输入数据文件 fno=00013 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\UNIFORM_TBS_02.DBF
输入数据文件 fno=00007 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\UNDOTBS02.DBF
输入数据文件 fno=00010 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\ORA_DATA1_01.DBF
输入数据文件 fno=00008 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\BLOCK.DBF
通道 c001: 正在启动段 1 于 28-3月 -10
通道 c001: 已完成段 1 于 28-3月 -10
段句柄=E:\CONTROLFILE_02\CISDB_1TL9LQ65_1_1 标记=CONTROLFILE_FULL_02 注释=NONE
通道 c001: 备份集已完成, 经过时间:00:01:46
通道 c001: 启动全部数据文件备份集
通道 c001: 正在指定备份集中的数据文件
输入数据文件 fno=00014 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\4K_TBS01.DBF
通道 c001: 正在启动段 1 于 28-3月 -10
通道 c001: 已完成段 1 于 28-3月 -10
段句柄=E:\CONTROLFILE_02\CISDB_1UL9LQ9F_1_1 标记=CONTROLFILE_FULL_02 注释=NONE
通道 c001: 备份集已完成, 经过时间:00:00:01
完成 backup 于 28-3月 -10
启动 Control File and SPFILE Autobackup 于 28-3月 -10
段 handle=D:\ORACLE\PRODUCT\FLASH\CISDB\AUTOBACKUP\2010_03_28\O1_MF_S_714795312_5TWLSL2X_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 28-3月 -10
释放的通道: c001
4.备份数据库(第三次catalog备份,tag =CATALOG_FULL_03):
RMAN> run {
2> allocate channel e001 device type disk format 'e:\catalog_03\%d_%U';
3> backup database tag='catalog_full_03';
4> }
分配的通道: e001
通道 e001: sid=180 devtype=DISK
启动 backup 于 28-3月 -10
通道 e001: 启动全部数据文件备份集
通道 e001: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\SYSAUX01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\EXAMPLE01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS02.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\UNDOTBS01.DBF
输入数据文件 fno=00011 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\AUTOALLOCATE_TBS_01.DBF
输入数据文件 fno=00009 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\ORA_DATA_1.DBF
输入数据文件 fno=00012 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\UNIFORM_TBS_01.DBF
输入数据文件 fno=00013 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\UNIFORM_TBS_02.DBF
输入数据文件 fno=00007 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\UNDOTBS02.DBF
输入数据文件 fno=00010 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\ORA_DATA1_01.DBF
输入数据文件 fno=00008 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\BLOCK.DBF
通道 e001: 正在启动段 1 于 28-3月 -10
通道 e001: 已完成段 1 于 28-3月 -10
段句柄=E:\CATALOG_03\CISDB_20L9LQFR_1_1 标记=CATALOG_FULL_03 注释=NONE
通道 e001: 备份集已完成, 经过时间:00:01:35
通道 e001: 启动全部数据文件备份集
通道 e001: 正在指定备份集中的数据文件
输入数据文件 fno=00014 name=D:\ORACLE\PRODUCT\ORADATA\CISDB\4K_TBS01.DBF
通道 e001: 正在启动段 1 于 28-3月 -10
通道 e001: 已完成段 1 于 28-3月 -10
段句柄=E:\CATALOG_03\CISDB_21L9LQIR_1_1 标记=CATALOG_FULL_03 注释=NONE
通道 e001: 备份集已完成, 经过时间:00:00:01
完成 backup 于 28-3月 -10
启动 Control File and SPFILE Autobackup 于 28-3月 -10
段 handle=D:\ORACLE\PRODUCT\FLASH\CISDB\AUTOBACKUP\2010_03_28\O1_MF_S_714795613_5TWM2YVT_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 28-3月 -10
释放的通道: e001
5.恢复数据库(使用第一次catalog备份数据)
模拟整个数据库数据全部丢失,包括参数文件,控制文件。
SQL> conn sys/sun123@cisdb as sysdba
已连接到空闲例程。
SQL>
SQL> startup nomount;
ORA-01078: failure in processing system parameters
LRM-00109: ???????????????? 'D:\ORACLE\PRODUCT\DATABASE\DATABASE\INITCISDB.ORA'
SQL>
因为参数文件丢失,已经无法进入nomount状态:
1)先恢复参数文件,备份集里面已经包含了参数文件的备份。
RMAN> restore spfile to 'D:\oracle\product\database\database\spfilecisdb.ora' from autobackup;
启动 restore 于 28-3月 -10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 寻找以下日期的自动备份: 20100328
通道 ORA_DISK_1: 寻找以下日期的自动备份: 20100327
通道 ORA_DISK_1: 寻找以下日期的自动备份: 20100326
通道 ORA_DISK_1: 寻找以下日期的自动备份: 20100325
通道 ORA_DISK_1: 寻找以下日期的自动备份: 20100324
通道 ORA_DISK_1: 寻找以下日期的自动备份: 20100323
通道 ORA_DISK_1: 寻找以下日期的自动备份: 20100322
通道 ORA_DISK_1: 没有找到 7 天之内的自动备份
……………….
RMAN-03002: restore 命令 (在 03/28/2010 02:51:07 上) 失败
RMAN-06172: 没有找到自动备份或指定的句柄不是有效副本或片段
疑问:不能autobackup自动找回备份spfile参数文件?
手动指定备份才可以:
RMAN> restore spfile to 'D:\oracle\product\database\database\spfilecisdb.ora'
2>from
'D:\ORACLE\PRODUCT\FLASH\CISDB\AUTOBACKUP\2010_03_28\O1_MF_S_714794632_5TWL4B2X_.BKP';
启动 restore 于 28-3月 -10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 已找到的自动备份: D:\ORACLE\PRODUCT\FLASH\CISDB\AUTOBACKUP\2010_03_28\O1_MF_S_714794632_5TWL4B2X_.BKP
通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成
完成 restore 于 28-3月 -10
参数文件完成恢复。
现在进入nomunt状态:
SQL> startup nomount;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已经启动
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 163580804 bytes
Database Buffers 440401920 bytes
Redo Buffers 7135232 bytes
因为控制文件丢失,无法进入mount状态:
SQL> startup mount;
ORA-32004: ?????/?????
ORA-01081: ????????? ORACLE - ??????
SQL>
2)恢复controlfile
RMAN> restore controlfile to 'D:\oracle\product\oradata\cisdb\control01.ctl' from autobackup;
启动 restore 于 28-3月 -10
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=188 devtype=DISK
恢复区域目标: D:\oracle\product/flash
用于搜索的数据库名 (或数据库的唯一名称): CISDB
通道 ORA_DISK_1: 在恢复区域中找到自动备份
通道 ORA_DISK_1: 已找到的自动备份: D:\ORACLE\PRODUCT\FLASH\CISDB\AUTOBACKUP\2010_03_28\O1_MF_S_714795613_5TWM2YVT_.BKP 通道 ORA_DISK_1: 从自动备份复原控制文件已完成
完成 restore 于 28-3月 -10
控制文件完成恢复。
进入mount状态:
SQL> startup mount;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 163580804 bytes
Database Buffers 440401920 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL> set linesize 100
SQL> set wrap off
SQL> select * from v$controlfile;
行将被截断
行将被截断
行将被截断
STATUS NAME
------- --------------------------------------------------------------
D:\ORACLE\PRODUCT\ORADATA\CISDB\CONTROL01.CTL
D:\ORACLE\PRODUCT\ORADATA\CISDB\CONTROL02.CTL
D:\ORACLE\PRODUCT\ORADATA\CISDB\CONTROL03.CTL
3)恢复数据文件:
C:\Documents and Settings\Administrator>rman target sys/sun123@cisdb
恢复管理器: Release 10.2.0.1.0 - Production on 星期日 3月 28 03:44:58 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到目标数据库: CISDB (DBID=4048038982, 未打开)
指定tag来恢复数据库:
RMAN> restore database from tag 'CATALOG_FULL_01';
启动 restore 于 28-3月 -10
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=186 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\SYSAUX01.DBF
正将数据文件00004恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS01.DBF
正将数据文件00005恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\EXAMPLE01.DBF
正将数据文件00006恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\USERS02.DBF
正将数据文件00007恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\UNDOTBS02.DBF
正将数据文件00008恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\BLOCK.DBF
正将数据文件00009恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\ORA_DATA_1.DBF
正将数据文件00010恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\ORA_DATA1_01.DBF
正将数据文件00011恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\AUTOALLOCATE_TBS_01.DBF
正将数据文件00012恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\UNIFORM_TBS_01.DBF
正将数据文件00013恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\UNIFORM_TBS_02.DBF
通道 ORA_DISK_1: 正在读取备份段 E:\CATALOG_01\CISDB_1QL9LPGR_1_1
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:\CATALOG_01\CISDB_1QL9LPGR_1_1 标记 = CATALOG_FULL_01
通道 ORA_DISK_1: 恢复完成, 用时: 00:01:35
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00014恢复到D:\ORACLE\PRODUCT\ORADATA\CISDB\4K_TBS01.DBF
通道 ORA_DISK_1: 正在读取备份段 E:\CATALOG_01\CISDB_1RL9LPK6_1_1
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:\CATALOG_01\CISDB_1RL9LPK6_1_1 标记 = CATALOG_FULL_01
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:01
完成 restore 于 28-3月 -10
RMAN> recover database
2> ;
启动 recover 于 28-3月 -10
使用通道 ORA_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 629 已作为文件 D:\ORACLE\PRODUCT\ORADATA\CISDB\REDO02.LOG 存在于磁盘上
存档日志文件名 =D:\ORACLE\PRODUCT\ORADATA\CISDB\REDO02.LOG 线程 =1 序列 =629
介质恢复完成, 用时: 00:00:05
完成 recover 于 28-3月 -10
打开数据库:
SQL>alter database open resetlogs
数据库已更改
2010-3-28 凌晨4点整完成