Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Data Guard备库未应用日志的问题一则

Data Guard备库未应用日志的问题一则

作者头像
bisal
发布于 2021-11-12 07:20:01
发布于 2021-11-12 07:20:01
74500
代码可运行
举报
运行总次数:0
代码可运行

这两天碰到一套库登录提示,

查看当前归档日志路径,空间的使用率已经到了100%,于是在rman中,删除30天之前的归档日志文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-30';

提示这个错误,原来这是套DG,草率了,他的意思是这些归档日志,备库还需要,所以不让删除,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RMAN-08137: warning: archived log not deleted, needed for standby or upstream capture process
archived log file name=... thread=1 sequence=...

我们登录备库,发现归档空间,同样是100%的使用率,难道同步有问题?

一通乱敲,发现备库没启动,很可能是之前停机维护导致的。

于是启动到mount状态,同时启动监听器,执行日志应用,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alter database recover managed standby database using current logfile disconnect from session;

但是看到MRP进程等待sequence=61的日志,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SQL> select process,status,client_process,thread#,sequence#,block#,active_agents,known_agents from  gv$managed_standby where process in('LNS','RFS','LGWR','MRP0') and thread# <>0;
PROCESS   STATUS       CLIENT_P    THREAD#  SEQUENCE#     BLOCK# ACTIVE_AGENTS KNOWN_AGENTS
--------- ------------ -------- ---------- ---------- ---------- ------------- ------------
MRP0      WAIT_FOR_GAP N/A               1         61          0             9            9

通过检索v$archived_log,没同步的日志,还很多,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
USERENV('INSTANCE')    THREAD#        LSQ        HSQ
------------------- ---------- ---------- ----------
                  1          1         61        316

rman中执行catalog start with(将最新的备份集以及归档日志文件列表导入到控制文中),

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
catalog start with '/archive';

等了一会,现在MRP等的是sequence=317,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SQL> select process,status,client_process,thread#,sequence#,block#,active_agents,known_agents from  gv$managed_standby where process in('LNS','RFS','LGWR','MRP0') and thread# <>0;
PROCESS   STATUS       CLIENT_P    THREAD#  SEQUENCE#     BLOCK# ACTIVE_AGENTS KNOWN_AGENTS
--------- ------------ -------- ---------- ---------- ---------- ------------- ------------
MRP0      WAIT_FOR_GAP N/A               1        317          0             9            9

一直不动,手工注册日志,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alter database register logfile '/archive/1_317_xxxxxxxxxx.dbf';

反复做了几次catalog,备库的alert记录,还是提示空间满,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Errors in file /oracle/app/oracle/diag/rdbms/conflundg/conflundg/trace/xxxxx_arc1_xxxxx.trc:
ORA-19502: write error on file "/archive/1_433_xxxxxxxxxx.dbf", block number xxxxxx (block size=512)
ORA-27061: waiting for async I/Os failed
Linux-x86_64 Error: 28: No space left on device

找出当前能删除的归档日志,物理层执行删除,腾出归档空间,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select 'rm -rf '||name from  v$archived_log where name like '%.dbf' and applied='YES' and completion_time<=sysdate-30;

但是发现备库归档空间,有些断号的日志,还很多,一个个scp,很累,或者按照推荐,重建备库,推倒重来。再等一会,只能说Oracle真抗造,日志开始同步了,主备库的sequence,几乎一致了,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SQL> select process,status,client_process,thread#,sequence#,block#,active_agents,known_agents from  gv$managed_standby where process in('LNS','RFS','LGWR','MRP0') and thread# <>0;
PROCESS   STATUS       CLIENT_P    THREAD#  SEQUENCE#     BLOCK# ACTIVE_AGENTS KNOWN_AGENTS
--------- ------------ -------- ---------- ---------- ---------- ------------- ------------
MRP0      APPLYING_LOG N/A               1        537     181996             9            9
RFS       IDLE         Archival          1          0          0             0            0
RFS       IDLE         LGWR              1        537     181996             0            0

其实在主备库,都创建了crontab定时删除归档日志的任务,但通过调试发现,脚本中指定存储执行日志的文件夹被删除了,导致执行中断。

通过这个案例,一方面说明任务脚本的健壮性还可以提升,例如判断文件夹是否存在,至少不会因为一个非关键因素导致整个逻辑出错,另一方面也暴露出监控的覆盖面问题。

因此针对以上问题和场景,可以增加以下两个监控点功能,

1. 数据库可用性的探测监控,避免数据库异常关闭未打开的情况。

2. 归档日志删除任务的执行监控,避免执行失败,归档日志未删除的情况。

另外,在这个过程中,暴露出对于rman工具的操作和原理的理解上,还是相当地生疏,有待针对性提高。

近期更新的文章:

Windows调试Oracle数据库问题的一些手段

O’Reilly动物书系列

最近碰到的一些问题

MySQL的几种常用存储引擎

创建PDB的两种操作

Oracle中执行truncate操作出现hang

文章分类和索引:

《公众号800篇文章分类和索引

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/11/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Carson带你学Android:这是一份全面 & 详细的补间动画学习指南
通过确定开始的视图样式 & 结束的视图样式、中间动画变化过程由系统补全来确定一个动画
Carson.Ho
2022/03/24
6960
Carson带你学Android:这是一份全面 & 详细的补间动画学习指南
Carson带你学Android:这是一份全面&详细的属性动画学习攻略!
Android一开始提供了视图动画,即补间动画跟逐帧动画。但视图动画存在三个问题:
Carson.Ho
2022/03/24
3290
Carson带你学Android:这是一份全面&详细的属性动画学习攻略!
Carson带你学Android:关于逐帧动画的使用都在这里了!
将动画拆分为帧的形式,且定义每一帧等于每一张图片,最后按序播放一组预先定义好的图片。
Carson.Ho
2022/03/24
7850
Carson带你学Android:关于逐帧动画的使用都在这里了!
Android动画基础详析 | 属性动画基础及ValueAnimator
在上篇博客Android动画基础详析 | 概述、逐帧动画、视图动画(附诸多实际运行效果动图)的基础上我们新建一个property包和一个PropertyActivity:
凌川江雪
2019/09/30
1.5K0
Android动画基础详析 | 属性动画基础及ValueAnimator
Android属性动画完全解析(上),初识属性动画的基本用法
用户1158055
2018/01/05
1.8K0
Android属性动画完全解析(上),初识属性动画的基本用法
Android 动画:手把手教你使用 补间动画 (视图动画)
通过确定开始的视图样式 & 结束的视图样式、中间动画变化过程由系统补全来确定一个动画
Carson.Ho
2019/02/22
2.8K0
Android 逐帧动画:关于 逐帧动画 的使用都在这里了!
前言 动画的使用 是 Android 开发中常用的知识 可是动画的种类繁多、使用复杂,每当需要 采用自定义动画 实现 复杂的动画效果时,很多开发者就显得束手无策 本文将详细介绍 Android 动画中
Carson.Ho
2019/02/22
2K0
Android动画详解
Android动画分为视图动画(View Animation)和属性动画(Property Animation),视图动画分为补间动画(Tween Animation)和逐帧动画(Frame Animation)。本次主要讲解Android 视图动画的使用。
黄林晴
2019/01/10
8200
Android 属性动画:这是一篇很详细的 属性动画 总结&攻略
实现动画效果在Android开发中非常常见,因此Android系统一开始就提供了两种实现动画的方式:
Carson.Ho
2019/02/22
4.1K0
Android 属性动画:这是一份全面 & 详细的核心使用类ValueAnimator学习指南
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Carson.Ho
2019/10/25
1.1K0
Android动画实现详解
我们都知道,漂亮的用户界面是衡量一款应用"好坏"很重要的依据,因为人都是视觉动物,就好比说花容月貌总有男人为之倾倒,英俊潇洒总能博得芳心。这是一个不容置疑的事实,那么我们的应用也是如此,一个漂亮的用户交互界面能提升用户对应用的好感,提升用户体验。而动画是提升用户体验的一个重要因素,好的动画交互让人用着更舒心,那么今天的这篇文章就是介绍Android中动画实现,让我们的应用动起来。
陈宇明
2020/12/15
5520
Android动画实现详解
5个Android 手势和动画方面深度面试题
解答: Android中的手势检测通常依赖于触摸事件的传递和处理。当用户在屏幕上进行触摸操作时,系统会生成一系列的 MotionEvent,并将其传递给当前处于焦点的视图(View)。
AntDream
2024/11/15
2270
5个Android 手势和动画方面深度面试题
Android动画基础 | 概述、逐帧动画、视图动画
或者给<animation-list>添加android:oneshot="true"属性,也可实现:
凌川江雪
2019/05/14
4.1K0
Android动画基础 | 概述、逐帧动画、视图动画
Android中的动画
在Android程序设计过程中,除了使用简单的按钮、文本框等简单控件来构建基本界面,我们还可以通过为界面添加动画效果,使得界面更加变得更加绚丽,更加吸引人。Android平台也提供了一套完整的动画框架,使得开发者可以用它开发出各种动画效果。
张哥编程
2024/12/17
2390
Android中的动画
Android 动画:你真的会使用插值器与估值器吗?(含详细实例教学)
设置方法1:在 动画效果的XML代码中设置插值器属性android:interpolator
Carson.Ho
2019/02/22
1.9K0
10 秒看懂 Android 动画的实现原理
动画是 Android 应用程序中重要的交互特性。Android 提供了多种动画效果,包括平移、缩放、旋转和透明度等,它们可以通过代码或 XML 来实现。本文将介绍 Android 动画的原理和实现方法,并提供一些示例。
Rouse
2023/08/31
4940
10 秒看懂 Android 动画的实现原理
Android动画分析
Android动画可以分3种:View动画,帧动画和属性动画;属性动画为API11的新特性,在低版本是无法直接使用属性动画的,但可以用nineoldAndroids来实现(但是本质还是viiew动画)。学习本篇内容主要掌握以下知识:
xiangzhihong
2022/11/30
9290
Android动画深入分析
动画分类 Android动画可以分3种:View动画,帧动画和属性动画;属性动画为API11的新特性,在低版本是无法直接使用属性动画的,但可以用nineoldAndroids来实现(但是本质还是viiew动画)。学习本篇内容主要掌握以下知识: 1,View动画以及自定义View动画。 2,View动画的一些特殊使用场景。 3,对属性动画做了一个全面的介绍。 4,使用动画的一些注意事项。 view动画 View动画的四种变换效果对应着Animation的四个子类:TranslateAnimation(平移动
xiangzhihong
2018/02/05
8750
Android动画:手把手带你深入了解神秘的估值器(TypeEvaluator)
根据 插值器计算出当前属性值改变的百分比 & 初始值 & 结束值 来计算 当前属性具体的数值
Carson.Ho
2022/03/25
1K0
Android动画:手把手带你深入了解神秘的估值器(TypeEvaluator)
A012-Anim资源
anim资源这里特指Android中的View Animation(视图动画),然而视图动画分为: Tween Animation(补间动画) Frame Animation(逐帧动画) Tween
巫山老妖
2018/07/20
2790
推荐阅读
相关推荐
Carson带你学Android:这是一份全面 & 详细的补间动画学习指南
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验