暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

12c rman新特性之restore from network/service

小飞旅馆 2019-05-08
1816

在上一篇章中,我们用rman增量备份恢复了dataguard的gap,从12c中,我们更加方便了,可以用from service来恢复,同样,大致场景如下:

ASMCMD> rm thread_1_seq_78.381.1007741335

ASMCMD> rm thread_1_seq_79.383.1007741365



2019-05-08T16:43:41.635112+08:00

 rfs (PID:32365): Selected LNO:11 for T-1.S-84 dbid 1530636559 branch 1002855823

2019-05-08T16:45:12.278880+08:00

PR00 (PID:29769): FAL: Failed to request gap sequence

PR00 (PID:29769):  GAP - thread 1 sequence 78-79

PR00 (PID:29769):  DBID 1530636559 branch 1002855823

PR00 (PID:29769): FAL: All defined FAL servers have been attempted

PR00 (PID:29769): -------------------------------------------------------------------------

PR00 (PID:29769): Check that the CONTROL_FILE_RECORD_KEEP_TIME initialization

PR00 (PID:29769): parameter is defined to a value that's sufficiently large

PR00 (PID:29769): enough to maintain adequate log switch information to resolve

PR00 (PID:29769): archived redo log gaps.

PR00 (PID:29769): -------------------------------------------------------------------------


恢复步骤:

1. 备库重起至mount状态

SHUTDOWN IMMEDIATE;

STARTUP MOUNT;


2. 关闭实时应用

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;


3. 检查主库与备库datafile的scn

select HXFIL File_num,substr(HXFNM,1,40),fhscn from x$kcvfh;


4. 查询当前备库的scn

SELECT CURRENT_SCN FROM V$DATABASE;

这个在后面可以用来判断是否有新的文件加入到主库了


5.  The RECOVER … FROM SERVICE command refreshes the standby data files and rolls them forward to the same point-in-time as the primary(引用原文).

[oracle@db5 ~]$ rman target /


恢复管理器: Release 18.0.0.0.0 - Production on 星期三 5月 8 17:39:41 2019

Version 18.3.0.0.0

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

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

RMAN> recover database from service orcl noredo using compressed backupset;


从位于 08-5月 -2019 17:42:08 的 recover 开始

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

分配的通道: ORA_DISK_1

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

正在跳过数据文件 1; 已还原到 SCN 8310616

正在跳过数据文件 2; 已还原到 SCN 8311214

正在跳过数据文件 3; 已还原到 SCN 8310784

正在跳过数据文件 4; 已还原到 SCN 8310796

正在跳过数据文件 5; 已还原到 SCN 8310801

在 08-5月 -2019 17:42:13 完成了 recover


RMAN> exit


可以再次对比主库与备库之前的datafile scn

select HXFIL File_num,substr(HXFNM,1,40),fhscn from x$kcvfh;


6. 重启备库至nomount状态

SHUTDOWN IMMEDIATE;

STARTUP NOMOUNT;


7. 从主库中恢复控制文件

[oracle@db5 ~]$ rman target /


恢复管理器: Release 18.0.0.0.0 - Production on 星期三 5月 8 18:30:14 2019

Version 18.3.0.0.0


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


已连接到目标数据库: ORCL (未装载)


RMAN> restore standby controlfile from service orcl;


从位于 08-5月 -2019 18:30:17 的 restore 开始

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

分配的通道: ORA_DISK_1

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


通道 ORA_DISK_1: 正在开始还原数据文件备份集

通道 ORA_DISK_1: 正在使用来自服务 orcl 的网络备份集

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

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

输出文件名=/u01/orcl/control01.ctl

输出文件名=/u01/orcl/control02.ctl

在 08-5月 -2019 18:30:23 完成了 restore

RMAN>     


8. 备库开启同步

alter database mount;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY PARALLEL 2 USING CURRENT LOGFILE DISCONNECT FROM SESSION

主库多切换两次日志:

alter system switch logfile;


9. 重启备库并开启同步

shutdown immediate;

startup 

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY PARALLEL 2 USING CURRENT LOGFILE DISCONNECT FROM SESSION;


10. 如果有新的数据文件后来加入到主库,需要重新同步到备库

SELECT file# FROM V$DATAFILE WHERE creation_change# >= 1984232;

RUN

{

SET NEWNAME FOR DATABASE TO '/u01/app/oracle/oradata/clone';

RESTORE DATAFILE 21 FROM SERVICE prim;

}

或者

RESTORE DATAFILE 21 FROM SERVICE prim;

同样,如有主备文件名不一致的话,需要用:

RMAN> catalog start with '<path where the actual standby datafile existed>';

RMAN> Catalog start with '/u01/app/oracle/oradata/clone/';

SWITCH DATABASE TO COPY;


参考:

Rolling Forward a Physical Standby Using Recover From Service Command in 12c (文档 ID 1987763.1)


另外关restore from service

在Oracle 12c中,可以在主数据库和备用数据库之间用一个服务名重新获得或恢复数据文件、控制文件、参数文件(SPFILE)、表空间或整个数据库。

这对于同步主数据库和备用数据库极为有用。

当主数据库和备用数据库之间存在相当大的差异时,不再需要复杂的前滚流程来填补它们之间的差异。RMAN能够通过网络执行备用恢复以进行增量备份,

并且可以将它们应用到物理备用数据库。可以用服务名直接将所需数据文件从备用点拷贝至主站,这是为了防止主数据库上数据文件、表空间的丢失,

或是没有真正从备份集恢复数据文件。


具体的几种用法:

数据库级别:restore database from service <服务别名>

表空间: restore tablespace from service <服务别名>

控制文件:restore controlfile to '指定的位置' from service <服务别名>

SPFILE: restore spfile from service <服务别名>

以下命令演示了如何用此新功能执行一个前滚来对备用数据库和主数据库进行同步。在物理备用数据库上:

rman target "username/password@standby_db_tns as SYSBACKUP"

RMAN>RECOVER DATABASE FROM SERVICE primary_db_tns USING COMPRESSED BACKUPSET;

以上案例使用备用数据库上定义的primary_db_tns连接字符串连接到主数据库,然后执行了一个增量备份,再将这些增量备份传输至备用目的地,

接着将应用这些文件到备用数据库来进行同步。然而,需要确保已经对primary_db_tns进行了配置,即在备份数据库端将其指向主数据库。


文章转载自小飞旅馆,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论