oracle 12c的Data guard中废弃

下面我们看一篇关于oracle12c的Data guard中将废弃使用using current logfile问题的分析详解,希望这篇文章可以对各位带来一些帮助。

问题起源于客户的一个12c的数据库,需要启动到非real time apply的模式,但是发现执行:

alter database recover managed standby database cancel;

alter database recover managed standby database disconnect from session;

之后,数据库还是一直工作在real time apply的模式。

去alertlog中找了一下,发现了答案:

Thu Jun 09 12:16:03 2016

Errors in file /cust/mydb/rdbms/oracle/diag/rdbms/rmydb/mydb/trace/mydb_pr00_24168.trc:

ORA-16037: user requested cancel of managed recovery operation

Thu Jun 09 12:16:03 2016

MRP0: Background Media Recovery process shutdown (mydb)

Thu Jun 09 12:16:04 2016

Managed Standby Recovery Canceled (mydb)

Completed: alter database recover managed standby database cancel

alter database recover managed standby database disconnect from session <==我们平时的发起语句

Thu Jun 09 12:16:13 2016

Attempt to start background Managed Standby Recovery process (mydb)

Starting background process MRP0

Thu Jun 09 12:16:13 2016

MRP0 started with pid=27, OS id=17971

Thu Jun 09 12:16:13 2016

MRP0: Background Managed Standby Recovery process started (mydb)

Thu Jun 09 12:16:19 2016

Started logmerger process

Thu Jun 09 12:16:19 2016

Managed Standby Recovery starting Real Time Apply <==使用了real time apply,而上述语句在oracle 11g中的效果是使用real time apply,在12c中行为发生了变化。

Thu Jun 09 12:17:06 2016

Only allocated 127 recovery slaves (requested 128)

Thu Jun 09 12:17:06 2016

Parallel Media Recovery started with 127 slaves

Thu Jun 09 12:17:12 2016

Waiting for all non-current ORLs to be archived…

Thu Jun 09 12:17:12 2016

Wed Apr 27 14:56:52 2016

MRP0: Background Media Recovery process shutdown (mydb)

Wed Apr 27 14:56:53 2016

Managed Standby Recovery Canceled (mydb)

Completed: alter database recover managed standby database cancel

alter database recover managed standby database parallel 16 USING ARCHIVED LOGFILE disconnect <== 使用using archived log

Wed Apr 27 14:57:29 2016

Attempt to start background Managed Standby Recovery process (mydb)

Starting background process MRP0

Wed Apr 27 14:57:29 2016

MRP0 started with pid=27, OS id=23908

Wed Apr 27 14:57:29 2016

MRP0: Background Managed Standby Recovery process started (mydb)

Started logmerger process

Wed Apr 27 14:57:35 2016

Managed Standby Recovery not using Real Time Apply <==可以看到,不使用real time apply了!

Wed Apr 27 14:57:38 2016

Parallel Media Recovery started with 16 slaves

Wed Apr 27 14:57:38 2016

Waiting for all non-current ORLs to be archived…

Wed Apr 27 14:57:38 2016

All non-current ORLs have been archived.

Wed Apr 27 14:57:39 2016

Media Recovery Waiting for thread 1 sequence 2287 (in transit)

Completed: alter database recover managed standby database parallel 16 USING ARCHIVED LOGFILE disconnect

同时,在在线文档也发现了相关说明:

即using current logfile 已经过期,如果要启用real time apply,不再需要加这个语句。(所以我们无论加了using current logfile,还是不加,都是使用real time apply的。)

要使用非real time apply,就需要使用using archived log了。

综上:

在11g中,如要使用real time apply,需要加using current logfile,

在12c中,如果要不使用real time apply,需要加using archived log,using current logfile已经过期作废。

不带using语句,在oracle 11g中,默认是不使用real time apply,而在12c中是默认使用real time apply

《oracle 12c的Data guard中废弃》
ocp认证

    原文作者:重庆思庄
    原文地址: https://www.jianshu.com/p/d81ab6c18f71
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞