首页 > 其他分享 >【DG】DataGuard动态性能视图及日志传输/应用服务说明

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

时间:2024-07-16 10:22:37浏览次数:9  
标签:status 备库 log standby DG 视图 dest DataGuard 日志

一、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,在主备库执行下面语句分别查看:

--查看db_name,打开模式,数据库角色,保护模式,保护级别
select name,open_mode,database_role,protection_mode,protection_level from v$database;

关于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.
就是查看归档目的地的状态

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

上两张图可见该环境搭建了物理备库,最大性能模式并且已经开启了日志应用(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,就是没开启日志应用

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

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.
就是查看归档目的地的状态

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

select dest_name,status,DESTINATION,ERROR from v$archive_dest;

6.v$dataguard_status(备)
查看DG状态事件,如果有什么错误就可以在这里查看

select * from v$dataguard_status t order by t."TIMESTAMP" desc;

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

--查看日志应用情况
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
查询归档历史

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.归档目的地及状态参数

--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设置时的几个可选设置

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文件(如果实时应用打开了的话)。

--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;

本文转载来自:https://cloud.tencent.com/developer/article/1816721 如果侵权请联系博主删除.

标签:status,备库,log,standby,DG,视图,dest,DataGuard,日志
From: https://www.cnblogs.com/hgboy/p/18304613

相关文章

  • Oracle 18c&19c physical dg切换总结
    这篇文章总结Oracle18c/19cPhysicalStandbyDG的主备切换的操作流程,主要参考官方文档18c&19cPhysicalStandbySwitchoverBestPracticesusingSQL*Plus(DocID2485237.1)[1].由于参考官方的最佳实践,所以有些步骤/过程略显繁琐。其实正常情况下,这里面的很多步骤都可以......
  • VTK-自定义交互器、可拖拽坐标轴、视图定向立方体
    源代码:https://github.com/qianqiu10000/mySWInteractorStyle1.0.git仿照SolidWorks的操作习惯自定义的VTK交互器:1.左键单击Actor,可以选择Actor,并显示红色2.左键双击Actor,可以在Actor位置弹出拖拽坐标轴,可以移动、旋转3.单击空格键,可以弹出立方体视图定向工具4.按住鼠标......
  • 3D 模型在 Game 视图中呈现为 2D效果
    废话不多说,上教程。......
  • Spring MVC 中视图的实现原理,在Spring MVC 中实现重定向和转发,以及访问静态资源
    1.SpringMVC中视图的实现原理,在SpringMVC中实现重定向和转发,以及访问静态资源@目录1.SpringMVC中视图的实现原理,在SpringMVC中实现重定向和转发,以及访问静态资源1.1SpringMVC视图支持可配置1.2SpringMVC支持的常见视图1.3实现视图机制的核心接口1.4实现视图机制......
  • Spring MVC 中视图的实现原理,在Spring MVC 中实现重定向和转发,以及访问静态资源
    1.SpringMVC中视图的实现原理,在SpringMVC中实现重定向和转发,以及访问静态资源文章目录1.SpringMVC中视图的实现原理,在SpringMVC中实现重定向和转发,以及访问静态资源1.1SpringMVC视图支持可配置1.2SpringMVC支持的常见视图1.3实现视图机制的核心接口1.4......
  • [CF1941E] Rudolf and k Bridges 的题解
    题目大意在第\((i,j)\)个格子修建一个桥墩需要\(a_{i,j}+1\)的花费而且要求\((i,0)\)与\((i,m)\)必须修建桥墩并且桥墩之间的距离不得大于\(d\)。现在需要求见\(k\)个连续的桥,求最小代价。其中\(1\lek\len\le100,3\lem\le2\cdot10,1\led\lem\)。思路因为......
  • 11、Oracle中的视图
    最近项目要用到Oracle,奈何之前没有使用过,所以在B站上面找了一个学习视频,用于记录学习过程以及自己的思考。视频链接:【尚硅谷】Oracle数据库全套教程,oracle从安装到实战应用如果有侵权,请联系删除,谢谢。学习目标:描述视图创建和修改视图的定义,删除视图从视图中查询数据通......
  • Crunchy Bridge 通过duckdb 对于pg 进行扩展
    Crunchy最近发布了一个CrunchyBridge的服务,通过duckdb扩展了pg对于数据分析的能力,官方发布的内容值得学习下参考玩法说明实际上目前社区也有一个pg的duckdb_fdw,也值得体验下,CrunchyBridge不是一个fdw扩展,反而是使用了类似citus的postgreshooks参考资料https://g......
  • 12 外键、视图、事务
    外键:foreignkye外键:一张表(表1)中的其中一个字段,保存的值是另外一张表(表2)的主键,那么表1就是从表(具有外键的表),表2就是主表外键表示了2张表中之间的联系,以另外一张表的外键作为主关键字的表是主表,具有此外键的表是主表的从表,设置了外键的表就是从表外键字段必须保证要与其关联的主......
  • 20240712总结、视图函数映射报错
    网络ip、端口,服务器人脸识别:1.接口,刚开始以为是调用消费机的接口,后来知道是消费机调用我的接口。2.对Django和Flask框架不熟悉,只会基本结构,Flask多套几层蓝图就懵了。3.对服务器、ip这些不明白,搞不懂消费机是怎么和服务器连上的。好像还用了docker4.对端口不熟悉,我对端口的理......