当前位置: 首页 > news >正文

一个闪回区报警的数据恢复(r11笔记第62天)

    今天在火车上接到一个电话说,数据库有个报警,让我看看是怎么回事。

看着报警信息一直重复出现,看来是有些问题了。

    这是一个统计库,出现了DG相关的报警(自定义配置的),看起来是备库端接收归档的时候出现了问题。

Error 270 creating remote archivelog file 'sgstatdb3'

我们知道备库端其实是有一个80%的阈值控制闪回区的,当时限于在火车上,网络,信号不顺畅,所以让同事帮忙看了下,大体是说闪回区满了,但是系统层面设置了crontab定期去删除归档,每个小时会触发一次。

     这样听起来闪回区依旧满好像也没有道理啊。我联系其之前碰到的类似问题,大体有几个猜测,一个是发生了SQL的性能问题,导致产生了大量的归档,导致闪回区使用率暂时还恢复不过来。另外一种就是闪回区设置太小,一些例行操作可能短时间生成归档,闪回区还一时应付不过来。

     结果没过一会,我发现自己的设想都不对,那是什么问题呢。

      首先尝试手工运行定时任务脚本来删除过期归档,竟然抛出了警告。

RMAN-08120: WARNING: archived log not deleted, not yet applied by standby

我们在RMAN中设置了归档的删除策略是必须要应用到备库之后才可以删除。所以目前基本断定应该是在之前出现了一个断点。

      接着查看数据库日志发现近期的归档接收都是没有问题的,最新的归档都传输过来了,最后归档满了,新的归档接收不了了。

      原本的ADG现在状态是READ ONLY了。SQL> select open_mode from v$database;      那么我们就需要找到之前是在哪个时间点出现了断点。

我读到了下面的一段日志内容,原来是在之前的一个时间点创建数据文件的时候报错了。

Datafile #872: '+DATA/sgstatdb3/datafile/tlbb_data.1197.933781165'

通过这段日志可以看出,创建数据文件其实是这样一个动作,创建的时候空间慢了无法创建就会生成一个句柄,会默认在$ORACLE_HOME/dbs下生成。

我在备库端查看的情况如下:

SQL> select name from v$datafile where file#=873;

文件管理的设置如下:

SQL> show parameter standby_file_management当然问题的原因到底是什么呢,是磁盘组的里出现了问题,备库端使用了ASM,才两个磁盘组,数据文件的磁盘组剩余16G左右,而归档所在的磁盘组剩余56M,而问题的原因是在哪里呢。是在数据文件的磁盘组+DATA上。

NAME     TOTAL_MB    FREE_MB

      这个问题该怎么解释呢,因为主库创建一个数据文件,大概是30G,这个操作会映射到备库,也会在备库创建一个30G的数据文件,唯一的不同是数据文件名可以根据映射规则不同,但是在主库中空间充足,创建没有问题,在备库数据文件所在的磁盘组满了,创建不了一个30G的文件,所以这个操作就会生成一个断点,导致MRP直接异常退出,而我们设定的归档删除策略是保证归档应用到备库才可以删除,所以闪回区就会越放越满,直到几百GB的空间都满了。

    问题原因已经说明清楚了,接下来该怎么处理呢。这就是一个不太常规的思路了。我们就得做减法。备库空间不足,目前还无法直接扩容,所以问题处理的空间就有一定的局限性。

    我们知道主库和备库其实是有一些文件是不同的,比如temp文件,主库为30G,备库为1G也没有问题,是一种插件式的功能,而且不是必须的。所以要紧缩空间,temp就是一个首要考虑的选择,如果空间还不够怎么办,我们直接resize文件是不行的,因为主库resize的操作得等到之前的变更在备库应用完成之后才可以。那么还有哪些文件是可以暂时可清理,来应急处理这个问题呢。还有就是standby logfile了。一般是建议2*n+1的公式,我们可以在这个情况下先删掉几组,把空间先省出来,后续再调整。简单来说就是删temp文件,删除部分备库日志文件。

SQL> alter tablespace temp drop tempfile '+DATA/sgstatdb3/tempfile/temp.910.840550051';

.删除备库日志文件,如果报错,可以使用如下的方式处理。

SQL> alter database drop logfile group 26;

这样处理即可。

SQL> alter database clear unarchived logfile group 26;

SQL> alter database drop standby logfile group 26;

然后使用如下的方式重置数据文件,比如下面的例子:

alter database create datafile '/U01/app/oracle/product/11.2.3/db_1/dbs/UNNAMED00874' as '+DATA/sgstatdb3/datafile/tlbb_data17.dbf';

$ rman target /

    看错误是在x$的一个对象上过不去了。这个时候简单想想x$是内存表,是在数据库启动的过程中初始化的,我们可以采用如下的策略来解决。

先让MRP开启归档日志应用,应用一部分归档,然后重启数据库到Mount状态,开启RMAN清理。这样闪回区的问题就解决了,都得算计着用空间。

   就这样花了个把小时的时间,问题总算是顺利解决了。

----------------------------------------------------------------------------------------

最后发起一个小活动,最近读了一些书,也交了一些书友,如果有愿意一起来参与读书的小伙伴们,咱们一起来吧,不限职业年龄,要求只有一个,喜爱读书即可。当然入群要推荐一本书。

    因为微信群扫码已满,需要加入的同学可以加我微信 jeanron100,说明来意和你推荐的一本书即可,我来加你入群。

    没啥目的,没啥动机,读书的事情我就不强求了,丰富自己,也可以互相聊聊。

相关文章:

  • 一个细小的空间问题触发的报警(r11笔记第68天)
  • Oracle Data Guard延迟的原因(r11笔记第69天)
  • 那些年我们追过的拳皇 (r11笔记第76天)
  • 今天比较忙比较累
  • 换工作这件事(一)(r11笔记第81天)
  • 浅谈MySQL Group Replication(r11笔记第80天)
  • 分分钟搭建MySQL Group Replication测试环境(r11笔记第82天)
  • 当拳皇遇上数据库,会擦出什么样的火花?
  • 我的女儿二三事(六)(r11笔记第87天)
  • 古巨蜥好几吨重,但在我们智人祖先面前也是枉然 | 袁硕 一席第449位讲者
  • Oracle中的PGA监控报警分析(r11笔记第96天)
  • 学习笔记第11轮总结(r12笔记第1天)
  • MySQL中xtrabackup备份恢复全攻略(r12笔记第11天)
  • 压测工具swingbench和sysbench对比(r12笔记第13天)
  • 一个公众事件的简单思考(r12笔记第15天)
  • CAP 一致性协议及应用解析
  • ERLANG 网工修炼笔记 ---- UDP
  • es6
  • Javascript Math对象和Date对象常用方法详解
  • MySQL数据库运维之数据恢复
  • MySQL用户中的%到底包不包括localhost?
  • Mysql优化
  • pdf文件如何在线转换为jpg图片
  • React Transition Group -- Transition 组件
  • 编写符合Python风格的对象
  • 构造函数(constructor)与原型链(prototype)关系
  • 前端代码风格自动化系列(二)之Commitlint
  • 如何合理的规划jvm性能调优
  • 算法之不定期更新(一)(2018-04-12)
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #if和#ifdef区别
  • $L^p$ 调和函数恒为零
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (二)JAVA使用POI操作excel
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (九十四)函数和二维数组
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)创业家杂志:UCWEB天使第一步
  • .NET delegate 委托 、 Event 事件,接口回调
  • .net oracle 连接超时_Mysql连接数据库异常汇总【必收藏】
  • .net 发送邮件
  • .net6 webapi log4net完整配置使用流程
  • .net经典笔试题
  • .so文件(linux系统)
  • @Async注解的坑,小心