前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DG】DataGuard动态性能视图及日志传输/应用服务说明

【DG】DataGuard动态性能视图及日志传输/应用服务说明

作者头像
甚至熊熊
发布2021-04-22 17:25:33
1.6K0
发布2021-04-22 17:25:33
举报

之前已经整理出: 1.【DG】DataGuard搭建-11gR2单主单备 2.【DG】DataGuard架构和部分概念整理 下面继续整理DataGuard相关动态性能视图,用于查看物理DG状态,以及日志传输/应用服务简单说明,要结合架构和概念篇看

一、DataGuard相关动态性能视图

序号

动态性能视图名称

说明

1

v$database

查询打开模式,角色,保护模式,保护级别

2

v$managed_standby

备库查询进程情况,RFS、MRP0

3

v$standby_log

查看standby redo log

4

v$archive_dest_status

查看归档目的地的状态

5

v$archive_dest

查看归档的目的地

6

v$dataguard_status

查看DG状态事件

7

v$standby_log

查看归档日志应用情况,非常重要

8

v$archive_gap

查询主备之间gap

9

v$log_history

查询归档历史

10

v$dataguard_config

查看DG配置的DB_UNIQUE_NAME

1.v$database(主、备)

首当其冲肯定是v$database,在主备库执行下面语句分别查看:

代码语言:javascript
复制
--查看db_name,打开模式,数据库角色,保护模式,保护级别
select name,open_mode,database_role,protection_mode,protection_level from v$database;

上两张图可见该环境搭建了物理备库,最大性能模式并且已经开启了日志应用(MRP),如果备库取消日志应用的话,则执行该语句显示

  • open_mode状态:read write、 read only、 READ ONLY WITH APPLY、 mounted;
  • database_role状态:PHYSICAL STANDBY、 LOGICAL STANDBY、 PRIMARY、SNAPSHOT STANDBY;
  • protection_mode及protection_level状态:MAXIMUM AVAILABILITY、 MAXIMUM PROTECTION、 MAXIMUM PERFORMANCE、resynchronization(重新同步模式,当备库没有同步之后,再重新同步显示该状态)、 unprotected(数据库mount,未保护状态?)

2.v$managed_standby(备)

查看进程情况,如果没有MRP0,就是没开启日志应用

代码语言:javascript
复制
select process,pid,status,thread#,sequence# from v$managed_standby;

说明下这几个字段:

  • PROCESS:进程名称,主要有ARCH归档进程、RFS日志接收进程、MRP0日志应用进程;
  • PID:OS进程号
  • STATUS:进程状态,不同进程状态不一样,只说一下MRP0的有
    • APPLYING_LOG :正在应用日志,实时应用开启会一直显示,非实时只在应用时显示
    • WAIT_FOR_LOG :等待应用日志,开启非实时应用或主备不通显示该状态

3.v$standby_log(备)

查看standby redo log

代码语言:javascript
复制
select group#,sequence#,archived,status from v$standby_log;

关于archived和status的官方文档说明

注意:最大可用模式,最高保护模式的备库都必须要有standby redo log

4.v$archive_dest_status(主)

V$ARCHIVE_DEST_STATUS displays runtime and configuration information for the archived redo log destinations. 就是查看归档目的地的状态

代码语言:javascript
复制
select dest_name,status,type,recovery_mode,SYNCHRONIZATION_STATUS,ERROR from v$archive_dest_status;

--验证是否有gap,dest_id=2代表备库,1代表主库
select t."STATUS", t."GAP_STATUS" from v$archive_dest_status t where t."DEST_ID" = 2;
  • status:
    • VALID:有效
    • INACTIVE:非活动的
    • DEFERRED:手工禁用(可用临时禁用同步,如果想临时禁用dg的话可以设置这个参数)
  • type:
    • LOCAL:主库
    • PHYSICAL:物理standby
    • LOGICAL:逻辑standby
    • SNAPSHOT:快照standby
  • recovery_mode这个字段能看到当前的日志应用模式,开启了实时应用就是MANAGED REAL TIME APPLY,没有开启实时应用是MANAGED

5.v$archive_dest(主)

主要是看归档的目的地,搭建的时候配置了LOG_ARCHIVE_DEST_1和LOG_ARCHIVE_DEST_2

代码语言:javascript
复制
select dest_name,status,DESTINATION,ERROR from v$archive_dest;

6.v$dataguard_status(备)

查看DG状态事件,如果有什么错误就可以在这里查看

代码语言:javascript
复制
select * from v$dataguard_status t order by t."TIMESTAMP" desc

7.v$standby_log(查看归档日志,非常重要)

代码语言:javascript
复制
--查看日志应用情况
select unique thread#,max(sequence#) over(partition by thread#) last from v$archived_log;

--查看哪些日志尚未应用(备库)
select thread#,sequence#,first_time,next_time,applied from v$archived_log where applied='NO';

--查看哪些已应用
select thread#,name,sequence#,first_time,next_time,applied from v$archived_log;
  • applied:
    • YES:日志文件已经应用,数据文件已经更新。
    • IN-MEMORY:日志文件已经在内存中应用,但数据文件还未更新。

8.v$archive_gap

查询备库有哪些没有同步

9.v$log_history

查询归档历史

代码语言:javascript
复制
select database_role,db_unique_name,open_mode,protection_mode,protection_level,switchover_status from v$database;

10.V$DATAGUARD_CONFIG

查看DG配置的DB_UNIQUE_NAME

二、DataGuard日志传输服务

1.归档目的地及状态参数

代码语言:javascript
复制
--1.归档目的地的位置
show parameter log_archive_dest_1 本地
show parameter log_archive_dest_2 备库

--2.归档目的地状态(enable:开启 defer:禁用)
show parameter log_archive_dest_state_1 本地
show parameter log_archive_dest_state_2 备库

2.LGWR SYNC AFFIM 参数介绍(需要结合架构和概念那篇一起看)

  • SYNC:主库commit之前,等待备库接收完日志数据,至少一个备库。
  • ASYNC:主库commit之前,无需等待备库接收完日志数据。
  • AFFIRM:日志信息写到备库standby日志后,通知主库日志接收完毕。
  • NOAFFIRM:不用等日志信息写到备库standby日志,就通知主库日志接收完毕。

官方文档说明的配置:

  • 最大性能推荐配置:LGWR ASYNC NOAFFIRM
  • 最高可用推荐配置:LGWR SYNC AFFIRM
  • 最大保护推荐配置:LGWR SYNC AFFIRM

3.log_archive_dest_n设置时的几个可选设置

代码语言:javascript
复制
SYNC AFFIRM NET_TIMEOUT=15 REOPEN=60 COMPRESSION=ENABLE
SERVICE=tnssbdb LGWR SYNC AFFIRM NET_TIMEOUT=15 REOPEN=60 COMPRESSION=ENABLE
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=sbdb
  • NET_TIMEOUT:在SYNC模式下,LGWR进程等待备库成功接收日志的时间,默认30秒,使用该参数修改
  • REOPEN:自动重新连接备库的最小秒数,默认300秒,使用该参数修改
  • COMPRESSION:数据以压缩的形式传输,enable启用日志压缩,可以减少带宽的占用

三、DataGuard日志应用服务

本质上是使用介质恢复来保持主库和备库的数据同步。

应用redo数据(主库)到standby备库,以保持与primary主库的数据一致。 redo数据即可以从standby数据库的归档文件读取,也可直接应用standby redo log文件(如果实时应用打开了的话)。

代码语言:javascript
复制
--1.开启实时应用
alter database recover managed standby database using current logfile disconnect;

--2.开启非实时应用,切换归档才应用日志
alter database recover managed standby database disconnect;

--3.取消应用
alter database recover managed standby database cancel;
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据库学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、DataGuard相关动态性能视图
    • 1.v$database(主、备)
      • 2.v$managed_standby(备)
        • 3.v$standby_log(备)
          • 4.v$archive_dest_status(主)
            • 5.v$archive_dest(主)
              • 6.v$dataguard_status(备)
                • 7.v$standby_log(查看归档日志,非常重要)
                  • 8.v$archive_gap
                    • 9.v$log_history
                      • 10.V$DATAGUARD_CONFIG
                      • 二、DataGuard日志传输服务
                        • 1.归档目的地及状态参数
                          • 2.LGWR SYNC AFFIM 参数介绍(需要结合架构和概念那篇一起看)
                            • 3.log_archive_dest_n设置时的几个可选设置
                            • 三、DataGuard日志应用服务
                            相关产品与服务
                            数据库
                            云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档