异机恢复---测试如果使用的控制文件不包含已经删除归档日志文件备份的备份集,则恢复将失败,需要catalog备份集。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/oradbm/article/details/84978192

 

  1. 需要使用新的控制文件 ,对于异构目录的恢复,需要重新重定义数据文件位置。(因为在开始restore过程指定了set newname,新的控制文件记录的数据文件位置,还是原先的。可以采用alter database rename file ''  to '' ;进行指定。

  2. catatlog的强大。

  3. 一个测试:
    1. 切换N个日志

C:\Users\Administrator>sqlplus / as sysdba

 

SQL*Plus: Release 12.2.0.1.0 Production on 星期三 12月 12 19:23:21 2018

 

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

 

 

连接到:

Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

 

SQL> alter system switch logfile;

 

系统已更改。

 

SQL> /

 

系统已更改。

 

SQL> /

 

系统已更改。

 

SQL> /

 

系统已更改。

 

SQL> /

 

系统已更改。

 

SQL>

 

 

 

    1. 备份控制文件和数据库

C:\Users\Administrator>rman target /

 

恢复管理器: Release 12.2.0.1.0 - Production on 星期三 12月 12 19:24:55 2018

 

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

 

已连接到目标数据库: ORCL (DBID=1514004854)

 

RMAN> backup database plus archivelog delete all input;

 

 

从位于 12-12月-18 的 backup 开始

当前日志已存档

使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=265 设备类型=DISK

通道 ORA_DISK_1: 正在启动归档日志备份集

通道 ORA_DISK_1: 正在指定备份集内的归档日志

输入归档日志线程 = 1 序列 = 1 RECID=80 STAMP=994706611

输入归档日志线程 = 1 序列 = 2 RECID=81 STAMP=994706612

输入归档日志线程 = 1 序列 = 3 RECID=82 STAMP=994706616

输入归档日志线程 = 1 序列 = 4 RECID=83 STAMP=994706616

输入归档日志线程 = 1 序列 = 5 RECID=84 STAMP=994706620

输入归档日志线程 = 1 序列 = 6 RECID=85 STAMP=994706705

通道 ORA_DISK_1: 正于 12-12月-18 启动段 1

通道 ORA_DISK_1: 完成了于 12-12月-18 启动段 1

片段句柄 = F:\APP\ADMINISTRATOR\VIRTUAL\PRODUCT\12.2.0\DBHOME_1\DATABASE\0PTKK18I_1_1 标记 = TAG20181212T192506 注释 = NONE

通道 ORA_DISK_1: 备份集完成, 用时: 00:00:01

通道 ORA_DISK_1: 正在删除归档日志

归档日志文件名 = F:\APP\ARCH\1_1_994706149.DBF RECID=80 STAMP=994706611

归档日志文件名 = F:\APP\ARCH\1_2_994706149.DBF RECID=81 STAMP=994706612

归档日志文件名 = F:\APP\ARCH\1_3_994706149.DBF RECID=82 STAMP=994706616

归档日志文件名 = F:\APP\ARCH\1_4_994706149.DBF RECID=83 STAMP=994706616

归档日志文件名 = F:\APP\ARCH\1_5_994706149.DBF RECID=84 STAMP=994706620

归档日志文件名 = F:\APP\ARCH\1_6_994706149.DBF RECID=85 STAMP=994706705

在 12-12月-18 完成了 backup

 

从位于 12-12月-18 的 backup 开始

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在启动全部数据文件备份集

通道 ORA_DISK_1: 正在指定备份集内的数据文件

输入数据文件, 文件号 = 00001 名称 = F:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\SYSTEM01.DBF

输入数据文件, 文件号 = 00003 名称 = F:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\SYSAUX01.DBF

输入数据文件, 文件号 = 00005 名称 = F:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\UNDOTBS01.DBF

输入数据文件, 文件号 = 00007 名称 = F:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\USERS001.DBF

通道 ORA_DISK_1: 正于 12-12月-18 启动段 1

通道 ORA_DISK_1: 完成了于 12-12月-18 启动段 1

片段句柄 = F:\APP\ADMINISTRATOR\VIRTUAL\PRODUCT\12.2.0\DBHOME_1\DATABASE\0QTKK18J_1_1 标记 = TAG20181212T192507 注释 = NONE

通道 ORA_DISK_1: 备份集完成, 用时: 00:00:15

在 12-12月-18 完成了 backup

 

从位于 12-12月-18 的 backup 开始

当前日志已存档

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在启动归档日志备份集

通道 ORA_DISK_1: 正在指定备份集内的归档日志

输入归档日志线程 = 1 序列 = 7 RECID=86 STAMP=994706723

通道 ORA_DISK_1: 正于 12-12月-18 启动段 1

通道 ORA_DISK_1: 完成了于 12-12月-18 启动段 1

片段句柄 = F:\APP\ADMINISTRATOR\VIRTUAL\PRODUCT\12.2.0\DBHOME_1\DATABASE\0RTKK193_1_1 标记 = TAG20181212T192523 注释 = NONE

通道 ORA_DISK_1: 备份集完成, 用时: 00:00:01

通道 ORA_DISK_1: 正在删除归档日志

归档日志文件名 = F:\APP\ARCH\1_7_994706149.DBF RECID=86 STAMP=994706723

在 12-12月-18 完成了 backup

 

从位于 12-12月-18 的 Control File and SPFILE Autobackup 开始

片段句柄 = F:\APP\ADMINISTRATOR\VIRTUAL\PRODUCT\12.2.0\DBHOME_1\DATABASE\C-1514004854-20181212-03 注释 = NONE

在 12-12月-18 完成了 Control File and SPFILE Autobackup

 

RMAN>

RMAN> list archivelog all;

 

说明与资料档案库中的任何归档日志都不匹配

    1. 切换N个日志

C:\Users\Administrator>sqlplus / as sysdba

 

SQL*Plus: Release 12.2.0.1.0 Production on 星期三 12月 12 19:26:25 2018

 

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

 

 

连接到:

Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

 

SQL> alter system switch logfile;l

  2

SQL>

SQL> alter system switch logfile;

 

系统已更改。

 

SQL> /

 

系统已更改。

 

SQL> /

 

系统已更改。

 

SQL> /

 

系统已更改。

 

SQL> /

 

系统已更改。

 

SQL> /

 

系统已更改。

    1. 备份归档并删除

C:\Users\Administrator>rman target /

 

恢复管理器: Release 12.2.0.1.0 - Production on 星期三 12月 12 19:27:37 2018

 

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

 

已连接到目标数据库: ORCL (DBID=1514004854)

 

RMAN> backup archivelog all delete input;

 

从位于 12-12月-18 的 backup 开始

当前日志已存档

使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=265 设备类型=DISK

通道 ORA_DISK_1: 正在启动归档日志备份集

通道 ORA_DISK_1: 正在指定备份集内的归档日志

输入归档日志线程 = 1 序列 = 8 RECID=87 STAMP=994706796

输入归档日志线程 = 1 序列 = 9 RECID=88 STAMP=994706797

输入归档日志线程 = 1 序列 = 10 RECID=89 STAMP=994706799

输入归档日志线程 = 1 序列 = 11 RECID=90 STAMP=994706799

输入归档日志线程 = 1 序列 = 12 RECID=91 STAMP=994706804

输入归档日志线程 = 1 序列 = 13 RECID=92 STAMP=994706804

输入归档日志线程 = 1 序列 = 14 RECID=93 STAMP=994706870

通道 ORA_DISK_1: 正于 12-12月-18 启动段 1

通道 ORA_DISK_1: 完成了于 12-12月-18 启动段 1

片段句柄 = F:\APP\ADMINISTRATOR\VIRTUAL\PRODUCT\12.2.0\DBHOME_1\DATABASE\0TTKK1DM_1_1 标记 = TAG20181212T192750 注释 = NONE

通道 ORA_DISK_1: 备份集完成, 用时: 00:00:01

通道 ORA_DISK_1: 正在删除归档日志

归档日志文件名 = F:\APP\ARCH\1_8_994706149.DBF RECID=87 STAMP=994706796

归档日志文件名 = F:\APP\ARCH\1_9_994706149.DBF RECID=88 STAMP=994706797

归档日志文件名 = F:\APP\ARCH\1_10_994706149.DBF RECID=89 STAMP=994706799

归档日志文件名 = F:\APP\ARCH\1_11_994706149.DBF RECID=90 STAMP=994706799

归档日志文件名 = F:\APP\ARCH\1_12_994706149.DBF RECID=91 STAMP=994706804

归档日志文件名 = F:\APP\ARCH\1_13_994706149.DBF RECID=92 STAMP=994706804

归档日志文件名 = F:\APP\ARCH\1_14_994706149.DBF RECID=93 STAMP=994706870

在 12-12月-18 完成了 backup

 

从位于 12-12月-18 的 Control File and SPFILE Autobackup 开始

片段句柄 = F:\APP\ADMINISTRATOR\VIRTUAL\PRODUCT\12.2.0\DBHOME_1\DATABASE\C-1514004854-20181212-04 注释 = NONE

在 12-12月-18 完成了 Control File and SPFILE Autobackup

    1. 使用不包含归档备份集的控制文件

RMAN> shutdown immediate;

 

数据库已关闭

数据库已卸装

Oracle 实例已关闭

 

RMAN> startup nomount;

 

已连接到目标数据库 (未启动)

Oracle 实例已启动

 

系统全局区域总计    5066719232 字节

 

Fixed Size                     8757280 字节

Variable Size               1056968672 字节

Database Buffers            3992977408 字节

Redo Buffers                   8015872 字节

 

RMAN> restore controlfile from 'F:\APP\ADMINISTRATOR\VIRTUAL\PRODUCT\12.2.0\DBHOME_1\DATABASE\C-1514004854-20181212-03';

 

从位于 12-12月-18 的 restore 开始

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=262 设备类型=DISK

 

通道 ORA_DISK_1: 正在还原控制文件

通道 ORA_DISK_1: 还原完成, 用时: 00:00:01

输出文件名=F:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\CONTROL01.CTL

输出文件名=F:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\CONTROL02.CTL

在 12-12月-18 完成了 restore

 

RMAN> alter database mount;

 

已处理语句

释放的通道: ORA_DISK_1

 

RMAN>

 

    1. 恢复数据库,控制文件不包含的备份集是否注册?

RMAN> recover database ;

 

从位于 12-12月-18 的 recover 开始

使用通道 ORA_DISK_1

 

正在开始介质的恢复

 

线程 1 序列 13 的归档日志已作为文件 F:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\REDO01.LOG 存在于磁盘上

线程 1 序列 14 的归档日志已作为文件 F:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\REDO02.LOG 存在于磁盘上

线程 1 序列 15 的归档日志已作为文件 F:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\REDO03.LOG 存在于磁盘上

通道 ORA_DISK_1: 正在开始将归档日志还原到默认目标

通道 ORA_DISK_1: 正在还原归档日志

归档日志线程 = 1 序列 = 7

通道 ORA_DISK_1: 正在读取备份片段 F:\APP\ADMINISTRATOR\VIRTUAL\PRODUCT\12.2.0\DBHOME_1\DATABASE\0RTKK193_1_1

通道 ORA_DISK_1: 片段句柄 = F:\APP\ADMINISTRATOR\VIRTUAL\PRODUCT\12.2.0\DBHOME_1\DATABASE\0RTKK193_1_1 标记 = TAG20181212T192523

通道 ORA_DISK_1: 已还原备份片段 1

通道 ORA_DISK_1: 还原完成, 用时: 00:00:01

归档日志文件名 = F:\APP\ARCH\1_7_994706149.DBF 线程 = 1 序列 = 7

无法找到归档日志

归档日志线程 = 1 序列 = 8

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: 位于 12/12/2018 19:32:00 的 recover 命令失败

RMAN-06054: 介质恢复正在请求未知的线程 1 序列 8 的归档日志以及起始 SCN 6068406

 

RMAN>

    1. 注册丢失的备份集

C:\Users\Administrator>rman target /

 

恢复管理器: Release 12.2.0.1.0 - Production on 星期三 12月 12 19:34:00 2018

 

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

 

已连接到目标数据库: ORCL (DBID=1514004854, 未打开)

 

RMAN> catalog backuppiece 'F:\APP\ADMINISTRATOR\VIRTUAL\PRODUCT\12.2.0\DBHOME_1\DATABASE\0TTKK1DM_1_1';

 

使用目标数据库控制文件替代恢复目录

已将备份片段列入目录

备份片段句柄 = F:\APP\ADMINISTRATOR\VIRTUAL\PRODUCT\12.2.0\DBHOME_1\DATABASE\0TTKK1DM_1_1 RECID=16 STAMP=994707267

 

RMAN> recover database ;

 

从位于 12-12月-18 的 recover 开始

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: SID=11 设备类型=DISK

 

正在开始介质的恢复

 

线程 1 序列 13 的归档日志已作为文件 F:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\REDO01.LOG 存在于磁盘上

线程 1 序列 14 的归档日志已作为文件 F:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\REDO02.LOG 存在于磁盘上

线程 1 序列 15 的归档日志已作为文件 F:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\REDO03.LOG 存在于磁盘上

通道 ORA_DISK_1: 正在开始将归档日志还原到默认目标

通道 ORA_DISK_1: 正在还原归档日志

归档日志线程 = 1 序列 = 8

通道 ORA_DISK_1: 正在还原归档日志

归档日志线程 = 1 序列 = 9

通道 ORA_DISK_1: 正在还原归档日志

归档日志线程 = 1 序列 = 10

通道 ORA_DISK_1: 正在还原归档日志

归档日志线程 = 1 序列 = 11

通道 ORA_DISK_1: 正在还原归档日志

归档日志线程 = 1 序列 = 12

通道 ORA_DISK_1: 正在读取备份片段 F:\APP\ADMINISTRATOR\VIRTUAL\PRODUCT\12.2.0\DBHOME_1\DATABASE\0TTKK1DM_1_1

通道 ORA_DISK_1: 片段句柄 = F:\APP\ADMINISTRATOR\VIRTUAL\PRODUCT\12.2.0\DBHOME_1\DATABASE\0TTKK1DM_1_1 标记 = TAG20181212T192750

通道 ORA_DISK_1: 已还原备份片段 1

通道 ORA_DISK_1: 还原完成, 用时: 00:00:01

归档日志文件名 = F:\APP\ARCH\1_8_994706149.DBF 线程 = 1 序列 = 8

归档日志文件名 = F:\APP\ARCH\1_9_994706149.DBF 线程 = 1 序列 = 9

归档日志文件名 = F:\APP\ARCH\1_10_994706149.DBF 线程 = 1 序列 = 10

归档日志文件名 = F:\APP\ARCH\1_11_994706149.DBF 线程 = 1 序列 = 11

归档日志文件名 = F:\APP\ARCH\1_12_994706149.DBF 线程 = 1 序列 = 12

归档日志文件名 = F:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\REDO01.LOG 线程 = 1 序列 = 13

归档日志文件名 = F:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\REDO02.LOG 线程 = 1 序列 = 14

归档日志文件名 = F:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\REDO03.LOG 线程 = 1 序列 = 15

介质恢复完成, 用时: 00:00:02

在 12-12月-18 完成了 recover

 

RMAN>

 

    1. 测试结论

归档日志已经删除,如果老的控制文件不包含备份归档的备份集,将不能进行恢复。

 

猜你喜欢

转载自blog.csdn.net/oradbm/article/details/84978192