2022-09-25
日志切换会造成数据库卡住吗?

环境如下:
1.win 2008 r2+oracle 11.2.0.0,服务器是一台虚拟机
2.因为业务需要,数据库上运行了一个5分钟刷新的物化视图,目前数据量比较大,大约是100w条。
3.近期发现zabbix频繁提示磁盘负载超95%,但是过一会就好。事后我停掉了物化视图就不报错了,所以应该就是物化视图刷新造成的。
4.业务主要包括一个oa(jsp写的)应用,和一个etl接口(大约10分钟一次运行select)
现象如下:
- 业务反馈经常性卡死打不开,查看业务日志,有这个报错:
java.sql.SQLRecoverableException: IO 错误: The Network Adapter could not establish the connection
2.etl接口卡死,有时候啥报错都没有,偶尔也报ORA-12518, TNS:listener could not hand off client connection
-
在数据库服务器上tnsping或者lsnrctl status反应都很慢。
-
重启服务器(shutdown immedieate;startup)后可以恢复。但是过段时间又抽了。
-
listener.log报这个错误
25-9月 -2022 18:55:11 * (CONNECT_DATA=(SID=orcl)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=APP$))) * (ADDRESS=(PROTOCOL=tcp)(HOST=1.1.1.1)(PORT=55230)) * establish * orcl * 12560 TNS-12560: TNS: 协议适配器错误 TNS-00530: 协议适配器错误 64-bit Windows Error: 53: Unknown error TNS-12518: TNS: 监听程序无法分发客户机连接 TNS-12571: TNS: 包写入程序失败 TNS-12560: TNS: 协议适配器错误 TNS-00530: 协议适配器错误 64-bit Windows Error: 54: Unknown error
复制
- alert_orcl.log报这个:
Sun Sep 25 20:16:37 2022 Shutting down archive processes ARCH shutting down ARC4: Archival stopped Thread 1 cannot allocate new log, sequence 2169395 Checkpoint not complete Current log# 1 seq# 2169394 mem# 0: C:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG Archived Log entry 2193186 added for thread 1 sequence 2169393 ID 0x59a7be8c dest 1: Thread 1 advanced to log sequence 2169395 (LGWR switch) Current log# 2 seq# 2169395 mem# 0: C:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG Sun Sep 25 20:16:40 2022 Archived Log entry 2193187 added for thread 1 sequence 2169394 ID 0x59a7be8c dest 1: Thread 1 cannot allocate new log, sequence 2169396 Checkpoint not complete Current log# 2 seq# 2169395 mem# 0: C:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG Thread 1 advanced to log sequence 2169396 (LGWR switch) Current log# 3 seq# 2169396 mem# 0: C:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG
复制
我自己查了一些资料,猜测如下(但是不太确定,请各位指点)
- 由于有5分钟100w条左右的写入,造成磁盘负载较高,从zabbix的报警就可以看到
- 由于磁盘负载高,造成日志切换失败,从而数据库卡死
- Oracle卡死,也就产生了前述的
ORA-12518, TNS:listener could not hand off client connection
和java.sql.SQLRecoverableException: IO 错误: The Network Adapter could not establish the connection
错误
不知道我这个理解是否正确?目前,我已经把物化视图停掉了,至少目前zabbix不再报警了,数据库我还需要观察,也请大家多指教,谢谢!
我来答
添加附件
收藏
分享
问题补充
6条回答
默认
最新
回答交流
Markdown
请输入正文
提交
相关推荐
现在Oracle的A库是生产的 ,B库空的, 想把一些跑数的工作,放到B库处理 ,处理完结果同步到A库,如何实施?
回答 3
在B库做A库数据的物化视图,在B库跑数,跑出的结果表是A库表的视图
Oracle中临时表与实体表可以组合建一个视图表吗?
回答 2
可以的
AIX7.2搭建Oracle11g数据库在安装数据库软件时报错,runInstaller无法启动。
回答 4
一般是下面两种解决方法:下面是DISPLAY解决方案:
oracle 11.2.0.4版本 win环境,生成awr报告停止不动
回答 2
已采纳
这是一个已知问题。原因是新库没有统计信息,其中一个SQL的执行计划出现问题。收集一下统计信息即可。
11gR2中C_OBJ#异常增大
回答 1
selectowner,TABLEname,numrowsfromdbatableswhereclustername'COBJ'ORDERBYnumrowsdesc可以关注一下哪张表的记录增加过多,进
如何验证数据库
回答 3
有系统级别的i/o压测工具,fio等,这个是最准确的,这个让存储厂商做一个对比报告即可。Oracle也有自带的dbms包(只做参考,不要在业务时间运行):set time onse
FRA下ARCHIVELOG为何创建时间都是整点的?
回答 1
已采纳
1、ASMCMD和V$ASMFILE显示的时间(MODIFICATIONDATE)是取整到最近的小时的,DocID744486.12、归档(ARCHIVELOG)之后内容是不会变的,redo(onli
Oracle 表新增字段索引,如何评估所需要空间大小?
回答 1
这个其实很简单啊。索引保存了。rowid的一部分,和字段本身。所以可以根据字段大小和条数来评估
Oracle数据库的哪种数据类型精度最高?
回答 2
已采纳
TIMESTAMP数据类型在Oracle中精度最高,通常可以精确到微秒(百万分之一秒)。
Exadata调整scan IP
回答 1
已采纳
是一样的,您可以参考这篇文档(DocID952903.1)HowtoUpdatetheIPAddressoftheSCANVIPResources(ora.scan{n}.vip)(DocID9529
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~