rman归档备份恢复数据
1 、数据库备份
[oracle@dbtest2 ~]$ rman target /
恢复管理器: Release 11.2.0.4.0 - Production on 星期四 1月 21 12:39:34 2021
Copyright © 1982, 2011, Oracle and/or its affiliates. All rights reserved.
已连接到目标数据库: WDDB (DBID=4144267307)
0级全备+归档备份脚本
run
{
allocate channel c1 device type disk;
backup incremental level 0 format ‘/u02/oracle_bak/full/bk_%d_%s_%T_%t_%p’ DATABASE;
crosscheck archivelog all;
backup format ‘/u02/oracle_bak/full/arch_%d_%s_%T_%t_%p’ archivelog all delete input;
backup current controlfile format ‘/u02/oracle_bak/full/ctrl_%d_%s_%T_%t_%p’;
release channel c1;
}
备份归档
run{
allocate channel c1 device type disk;
crosscheck archivelog all;
backup format ‘/u02/oracle_bak/full/arch_%d_%s_%T_%t_%p’ archivelog all;
backup current controlfile format ‘/u02/oracle_bak/full/ctrl_%d_%s_%T_%t_%p’;
release channel c1;
}
2、恢复数据库
2.1 安装数据库软件,不创建数据库
2.2 根据pfile文件生成spfile文件
[oracle@dbtest2 dbs]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.4.0 Production on 星期四 1月 21 13:18:18 2021
Copyright © 1982, 2013, Oracle. All rights reserved.
SQL> conn / as sysdba
已连接到空闲例程。
SQL> create spfile from pfile=’/u01/app/oracle/product/11.2.0/db_1/dbs/initwddb.ora’
2 ;
文件已创建。
2.3 启动数据库到nomount状态
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 1202556928 bytes
Fixed Size 2252704 bytes
Variable Size 1073741920 bytes
Database Buffers 117440512 bytes
Redo Buffers 9121792 bytes
2.4 rman恢复最新的控制文件
[oracle@dbtest2 ~]$ rman target /
恢复管理器: Release 11.2.0.4.0 - Production on 星期四 1月 21 13:21:02 2021
Copyright © 1982, 2011, Oracle and/or its affiliates. All rights reserved.
已连接到目标数据库: WDDB (未装载)
RMAN> set DBID=4144267307
正在执行命令: SET DBID
RMAN> restore controlfile from ‘/u02/oracle_bak/full/ctrl_WDDB_39_20210121_1062421358_1’;
启动 restore 于 21-1月 -21
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=1388 设备类型=DISK
通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
输出文件名=/u01/app/oracle/oradata/control01.ctl
完成 restore 于 21-1月 -21
2.5 改变数据库到mount状态
RMAN> list backup of archivelog all;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: list 命令 (在 01/21/2021 13:30:07 上) 失败
ORA-01507: 未装载数据库
RMAN> alter database mount;
数据库已装载
释放的通道: ORA_DISK_1
RMAN> list backup of archivelog all;
备份集列表
BS 关键字 大小 设备类型占用时间 完成时间
4 21.53M DISK 00:00:02 21-1月 -21
BP 关键字: 4 状态: AVAILABLE 已压缩: NO 标记: TAG20210121T124708
段名:/u02/oracle_bak/full/arch_WDDB_36_20210121_1062420428_1
备份集 4 中的已存档日志列表
线程序列 低 SCN 时间下限 下一个 SCN 下一次
1 2375 44781166 21-1月 -21 44785101 21-1月 -21
1 2376 44785101 21-1月 -21 44786179 21-1月 -21
1 2377 44786179 21-1月 -21 44787337 21-1月 -21
BS 关键字 大小 设备类型占用时间 完成时间
6 25.03M DISK 00:00:00 21-1月 -21
BP 关键字: 6 状态: AVAILABLE 已压缩: NO 标记: TAG20210121T130237
段名:/u02/oracle_bak/full/arch_WDDB_38_20210121_1062421357_1
备份集 6 中的已存档日志列表
线程序列 低 SCN 时间下限 下一个 SCN 下一次
1 2375 44781166 21-1月 -21 44785101 21-1月 -21
1 2376 44785101 21-1月 -21 44786179 21-1月 -21
1 2377 44786179 21-1月 -21 44787337 21-1月 -21
1 2378 44787337 21-1月 -21 44789069 21-1月 -21
1 2379 44789069 21-1月 -21 44789313 21-1月 -21
RMAN>
RMAN> catalog start with ‘/u02/oracle_bak/full’;
搜索与样式 /u02/oracle_bak/full 匹配的所有文件
数据库未知文件的列表
文件名: /u02/oracle_bak/full/ctrl_WDDB_39_20210121_1062421358_1
是否确实要将上述文件列入目录 (输入 YES 或 NO)? yes
正在编制文件目录…
目录编制完毕
已列入目录的文件的列表
文件名: /u02/oracle_bak/full/ctrl_WDDB_39_20210121_1062421358_1
2.6 还原备份的数据文件,0级备份之后添加的数据文件,先创建
RMAN> restore database;
启动 restore 于 21-1月 -21
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=1388 设备类型=DISK
创建数据文件, 文件号 = 7 名称 = /u01/app/oracle/oradata/user02.dbf
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 /u01/app/oracle/oradata/system.259.1005086383
通道 ORA_DISK_1: 将数据文件 00002 还原到 /u01/app/oracle/oradata/sysaux.260.1005086387
通道 ORA_DISK_1: 将数据文件 00003 还原到 /u01/app/oracle/oradata/undotbs1.261.1005086389
通道 ORA_DISK_1: 将数据文件 00004 还原到 /u01/app/oracle/oradata/undotbs2.263.1005086399
通道 ORA_DISK_1: 将数据文件 00005 还原到 /u01/app/oracle/oradata/users.264.1005086399
通道 ORA_DISK_1: 将数据文件 00006 还原到 /u01/app/oracle/oradata/undotbs3.268.1005160043
通道 ORA_DISK_1: 正在读取备份片段 /u02/oracle_bak/full/bk_WDDB_34_20210121_1062420353_1
通道 ORA_DISK_1: 段句柄 = /u02/oracle_bak/full/bk_WDDB_34_20210121_1062420353_1 标记 = TAG20210121T124553
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:01:55
完成 restore 于 21-1月 -21
2.7 按SCN恢复数据库
RMAN> recover database until scn 44789069;
启动 recover 于 21-1月 -21
使用通道 ORA_DISK_1
正在开始介质的恢复
通道 ORA_DISK_1: 正在开始将归档日志还原到默认目标
通道 ORA_DISK_1: 正在还原归档日志
归档日志线程=1 序列=2377
通道 ORA_DISK_1: 正在还原归档日志
归档日志线程=1 序列=2378
通道 ORA_DISK_1: 正在读取备份片段 /u02/oracle_bak/full/arch_WDDB_38_20210121_1062421357_1
通道 ORA_DISK_1: 段句柄 = /u02/oracle_bak/full/arch_WDDB_38_20210121_1062421357_1 标记 = TAG20210121T130237
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:01
归档日志文件名=/u01/app/oracle/rman/archivelog/1_2377_1028113613.dbf 线程=1 序列=2377
归档日志文件名=/u01/app/oracle/rman/archivelog/1_2378_1028113613.dbf 线程=1 序列=2378
介质恢复完成, 用时: 00:00:03
完成 recover 于 21-1月 -21
RMAN>
2.8 检查数据文件的头状态是否一致
[oracle@dbtest2 full]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.4.0 Production on 星期四 1月 21 13:40:47 2021
Copyright © 1982, 2013, Oracle. All rights reserved.
SQL> conn / as sysdba
已连接。
SQL> SELECT FILE#, CHECKPOINT_CHANGE#, RECOVER, FUZZY FROM V$DATAFILE_HEADER;
FILE# CHECKPOINT_CHANGE# RECOVER FUZZY
1 44789069 NO
2 44789069 NO
3 44789069 NO
4 44789069 NO
5 44789069 NO
6 44789069 NO
7 44789069 NO
已选择7行。
2.9 改变数据库到open状态
[oracle@dbtest2 ~]$ rman target /
恢复管理器: Release 11.2.0.4.0 - Production on 星期四 1月 21 13:42:32 2021
Copyright © 1982, 2011, Oracle and/or its affiliates. All rights reserved.
已连接到目标数据库: WDDB (DBID=4144267307)
RMAN> alter database open resetlogs;
数据库已打开