阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

DataGuard如何传送Redo到Standby

149次阅读
没有评论

共计 3619 个字符,预计需要花费 10 分钟才能阅读完成。

DataGuard 通过传送 redo 到 standby, 然后在 standby 上应用这些 redo 来保持两者数据一致. 在 PRIMARY 传送 redo 主要是通过
lgwr 进程来实现传送 redo。

lgwr 传送模式下,lgwr 进程本身并不真正传送 redo 到 standby 上,而是由 lgwr 派生一个 lns(local network server)
进程来传送 redo 信息. 这样做的好处主要在于减轻 lgwr 进程的压力,防止网络意外等情况使 lgwr 进程产生不稳定情况。

在 standby 上查询 client_process 是 lgwr,但是真正的并不是 lgwr 来传送日志

standbyANDBY> select process,client_process,standbyatus from v$managed_standbyandby where process=’RFS’;

PROCESS  CLIENT_P standbyATUS
 ——— ——– ————
 RFS  LGWR    IDLE
 RFS  UNKNOWN  IDLE
 RFS  UNKNOWN  IDLE
 RFS  UNKNOWN  IDLE

在 PRIMARY 我们可以通过查看网络连接来看检查 lgwr 进程,并不会产生到 standby 的连接,而是由 lns 进程产生的网络连接

[root@newplat ~]# ps -eaf | egrep -e ‘lgwr|lns’ | grep -v ‘egrep’
 Oracle    8399    1  0 09:11 ?        00:01:08 ora_lgwr_cpd
 oracle  15207    1  0 11:09 ?        00:00:00 ora_lns1_cpd
 [root@newplat ~]#

[root@newplat ~]# netstandbyat -apn | egrep -e ‘8399|15207’
 tcp        0      0 192.168.56.21:38944        192.168.56.22:1521          ESTABLISHED 15207/ora_lns1_cepd
 udp        0      0 :::55415                    :::*                                    8399/ora_lgwr_cpd
 udp        0      0 ::1:55419                  :::*                                    15207/ora_lns1_cepd
 [root@newplat ~]#

主库上的日志会报以下的日志, 表示有 lns 进行传送.

LNS: standbyandby redo logfile selected for thread 1 sequence 92 for destandbyination LOG_ARCHIVE_DEstandby_2
 Sun Mar 20 11:09:35 2016
 Archived Log entry 165 added for thread 1 sequence 91 ID 0xac83cb1e destandby 1:
 Sun Mar 20 11:09:35 2016
 ARC3: standbyandby redo logfile selected for thread 1 sequence 91 for destandbyination LOG_ARCHIVE_DEstandby_2
 Sun Mar 20 11:45:15 2016

当 log_archive_destandby_X 中的同步参数由默认的 async 改为 sync 时,alert.log 出现

LGWR: standbyandby redo logfile selected for thread 1 sequence 103 for destandbyination LOG_ARCHIVE_DEstandby_2
 Thread 1 advanced to log sequence 103 (LGWR switch)
  Current log# 1 seq# 103 mem# 0: /u01/app/oracle/oradata/cpd/redo01.log

这种配置下很多人以为是 lgwr 进程直接传送 redo 到备库上,实际也可以通过网络连接看出,是由 lns 进程来传送的

[root@newplat ~]# ps -eaf | egrep -e ‘lgwr|lns’ | grep -v egrep
 oracle  12664    1  0 20:04 ?        00:00:00 ora_lnsb_cpd
 oracle  18366    1  0 11:49 ?        00:00:01 ora_lgwr_cpd

[root@newplat ~]# netstandbyat -anp |egrep -e ‘12664|18366’;
 tcp        0      0 192.168.56.21:47971        192.168.56.22:1521          ESTABLISHED 12664/ora_lnsb_cepd
 udp        0      0 ::1:49731                  :::*                                    12664/ora_lnsb_cepd
 udp        0      0 :::51196                    :::*                                    18366/ora_lgwr_cepd

ARCH 进程也会传送 redo,不过传送的是 archivelog, 当 standby 和 PRIMARY 产生 gap 时,这时候由 arch 进程来负责把 PRIMARY 上的日志传到备库上去

Sun Mar 20 20:22:54 2016
 ARC3: standbyandby redo logfile selected for thread 1 sequence 105 for destandbyination LOG_ARCHIVE_DEstandby_2
 Sun Mar 20 20:24:02 2016

查看网络连接信息

[root@newplat ~]# ps -eaf | egrep -e ‘ora_arc’ | grep -v egrep
 oracle  18407    1  0 11:49 ?        00:00:00 ora_arc0_cpd
 oracle  18409    1  0 11:49 ?        00:00:00 ora_arc1_cpd
 oracle  18411    1  0 11:49 ?        00:00:00 ora_arc2_cpd
 oracle  18413    1  0 11:49 ?        00:00:00 ora_arc3_cpd
 [root@newplat ~]# netstandbyat -apn | grep 18413
 tcp        0      0 192.168.56.21:54683        192.168.56.22:1521          ESTABLISHED 18413/ora_arc3_cepd
 udp        0      0 ::1:43124                  :::*                                    18413/ora_arc3_cepd

Oracle 11gR2 在 VMWare 虚拟机中安装步骤 http://www.linuxidc.com/Linux/2013-09/89579p2.htm

Debian 下 安装 Oracle 11g XE R2 http://www.linuxidc.com/Linux/2014-03/98881.htm

Oracle Data Guard 重要配置参数 http://www.linuxidc.com/Linux/2013-08/88784.htm

基于同一主机配置 Oracle 11g Data Guard http://www.linuxidc.com/Linux/2013-08/88848.htm

探索 Oracle 之 11g DataGuard http://www.linuxidc.com/Linux/2013-08/88692.htm

Oracle Data Guard(RAC+DG) 归档删除策略及脚本 http://www.linuxidc.com/Linux/2013-07/87782.htm

Oracle Data Guard 的角色转换 http://www.linuxidc.com/Linux/2013-06/86190.htm

Oracle Data Guard 的日志 FAL gap 问题 http://www.linuxidc.com/Linux/2013-04/82561.htm

Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法 http://www.linuxidc.com/Linux/2013-03/82009.htm

更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-05/130996.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计3619字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中