关于闪回区溢出导致的数据hang(r11笔记第12天)

对于Oracle数据库的闪回区的设置,之前和一个同事和讨论过,总体来说有一些不同的意见。

首先这个闪回区是一个逻辑的概念,闪回区的大小不会严格依赖于磁盘空间的情况,比如磁盘空间目前剩余100G,但是你设置闪回区为200G是没有问题的。

如此一来,和只使用归档参数想比,这个闪回区似乎有一点问题,总体来说闪回区的管理还是比较方便的,可以监控管理闪回区中的归档,闪回日志,备份等的大小。

使用的视图为v$flash_recovery_area_usage,在11g做了简化,为v$recovery_area_usage

一个查看闪回区的使用率的结果如下:

select *from v$flash_recovery_area_usage;

FILE_TYPE               PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
----------------------- ------------------ ------------------------- ---------------
CONTROL FILE                             0                         0               0
REDO LOG                               .18                         0               2
ARCHIVED LOG                         40.09                         0             320
BACKUP PIECE                             0                         0               0
IMAGE COPY                               0                         0               0
FLASHBACK LOG                        59.08                         0             366
FOREIGN ARCHIVED LOG                     0                         0               0

闪回区的使用有几个地方比较纠结,那就是关于闪回hang的问题。

简单来说,可以归为以下几类。

首先是闪回区空间设置大于磁盘实际空间大小,这种情况下,竟然闪回区可用,但是磁盘空间不足,这种情况下就会造成归档无法生成或切换,影响会很大,当然系统的监控是必要的,如果疏忽了,那么数据库层面的这一道防线就会因为闪回区的这种设置而被突破。

第二种情况下是闪回区的大小溢出,比如设置闪回区大小为100G,刚好达到了临界值,这个时候很可能出现两种情况,一种是无响应,表现为登录,登出都会完全没有响应,数据库直接被卡住,这种情况下很可能是有在线的事务在运行。而另外一类则是非常经典的错误。

SQL> conn test/xxxx ERROR: ORA-00257: archiver error. Connect internal only, until freed.

想必这个问题大家都见过很多次了,这个问题其实相比数据库hang的影响要略微小一些。至少应用连不进来,而第一种会造成的结果是,如果应用不断尝试连接,但是无响应,就会短时间内造成大量会话阻塞,然后消耗系统资源殆尽。如果有的服务器抗不了瞬间的压力,还可能瞬间宕机。

第二类问题其实还算是相对温和的,登录不了,连接直接被拒绝。

解决方法其实就很简单了,一种是扩大闪回区,另外一种是删除一些不需要的归档文件等,释放闪回区的空间。

当然还有一种场景会把这个问题放大,那就是核心系统一旦出现这类问题,这个影响就会非常大,这句话怎么理解,如果因为闪回区过小导致了数据库hang的问题,在5分钟的时间内是完全没有响应的,尽管你使用sysdba修改了闪回区大小,调整了空间,但是问题会短时间内(默认5分钟)内存在,如果碰上这样的情况,绝对会让人格外抓狂,在我的职业生涯中还真碰到过。在很紧急的关头,你的第一反应和冷静处理就绝对反映出了你真正的技能和知识储备。说不紧张那都是骗人的,只能让自己的心里平复一下,想明白该怎么做,避免错上加错的操作让问题向另外一个方向走去。

这个5分钟是怎么得来的,我是专门做了下这类测试,开启了多个窗口,加上人工的操作延时,抓取到的时间戳如下:

SQL*Plus: Release 11.2.0.4.0 Production on Wed Dec 14 17:52:18 2016 SQL*Plus: Release 11.2.0.4.0 Production on Wed Dec 14 17:57:38 2016从这个结果可以基本看出是一个5分钟的频率,因为有手工的延迟问题。

当然这只是猜测,有什么其他的方式来论证呢,我首先查看了数据库的隐含参数。发现还真有几个隐含参数的设置是300秒的。

_hang_ignored_hangs_interval _flashback_max_standby_sync_span _dbwr_scan_interval _hang_monitor_archiving_related_hang_interval

当然要做严谨的测试,还是很有难度,自己反复尝试没有得到一个确凿的证据指向这几个参数会直接影响Hang的问题,那还有什么问题呢。

还有一个就是数据库的归档参数,归档参数有一个属性是reopen,默认是300秒。

自己测试了几个场景,有的表现要好一些,有的则达不到预期效果,所以这个参数作为备选。

还有一个参数是LOG_ARCHIVE_MIN_SUCCEED_DEST,这个参数还是值得好好琢磨一番,但是目前来看,经过大量的测试没有完全验证。

所以经过我的一番测试,达到临界值的情况下,有些场景中以上的隐含参数和归档参数设置都会有一定的影响,但是没有产生立竿见影的效果。

这个测试还要继续进行,大家有什么更好的建议也希望一并指出。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2016-12-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

技术分享连载|UGUI对于emoji表情的处理|加载资源时的内存波动|Animator采样……

我们将从日常技术交流中精选若干个开发相关的问题,建议阅读时间15分钟,认真读完必有收获。如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨。 内存管理 Q:...

3756
来自专栏恰童鞋骚年

操作系统核心原理-3.进程原理(中):进程调度

PS:在多进程并发的环境里,虽然从概念上看,有多个进程在同时执行,但在单个CPU下,在任何时刻只能有一个进程处于执行状态,而其他进程则处于非执行状态。那么问题来...

1035
来自专栏崔庆才的专栏

爬虫代理哪家强?十大付费代理详细对比评测出炉!

前言 随着大数据时代的到来,爬虫已经成了获取数据的必不可少的方式,做过爬虫的想必都深有体会,爬取的时候莫名其妙 IP 就被网站封掉了,毕竟各大网站也不想自己的...

80112
来自专栏安智客

GP TEE安全轮廓之攻击路径举例

前述GP TEE PP文档内容,参照: 我们一起来学习CC认证之GP TEE PP保护轮廓(一) GP TEE之安全威胁分析 GP TEE安全资产问题分析 下...

2329
来自专栏张善友的专栏

[.NET网格计算框架] Alchemi

Alchemi [.NET网格计算框架] 是 一个以使用简易为目的的Windows下的网格计算框架。它提供了:a)开发网格软件的编程环境 和 b)建造网格和运行...

2008
来自专栏FreeBuf

安卓新型恶意木马Xavier的发展过程和技术分析

近日,一个名为Xavier的安卓系统广告库木马被发现,它会在用户不知情的情况下窃取和泄露用户的信息,同时还可以在root过的安卓设备上静默安装任何APK。 据统...

3457
来自专栏吉浦迅科技

放下王者农药这锅,玩一把Tensorflow吧

暑期开始了!对于Lady姐来说,如何安排儿子的暑期生活是一件大事,显然是不能沉迷于王者农药, ? 于是Lady姐随手扔了一个教程给他:按照这份教程,在家里Win...

40310
来自专栏沃趣科技

容器化RDS|调度策略

导 语 前文数据库容器化|未来已来我们介绍了基于Kubernetes实现的下一代私有 RDS。其中,调度策略是具体实现时至关重要的一环,它关系到RDS 集群的服...

50510
来自专栏Python小屋

Python批量生成垃圾邮件内容

问题背景:这个文章的代码是为下一篇关于贝叶斯分类的文章做准备的,用来生成一些模拟的垃圾邮件。一般而言,垃圾邮件都是带有特定目的的,所以邮件中必然会包含一些特定的...

3786
来自专栏北京马哥教育

浅谈TCP优化

很多人常常对TCP优化有一种雾里看花的感觉,实际上只要理解了TCP的运行方式就能掀开它的神秘面纱。Ilya Grigorik 在「High Performanc...

5855

扫码关注云+社区

领取腾讯云代金券