熊军(老熊) 云和恩墨西区总经理 Oracle ACED,ACOUG核心会员 无响应故障现象分析 ---- Oracle数据库无响应故障,简单地讲就是数据库实例不能响应客户端发起的请求,客户端提交一个SQL后,就一直处于等待数据库实例返回结果的状态。更严重的现象是客户端根本不能连接到数据库,发起一个连接请求后,一直处于等待状态。 无响应的故障现象一般有以下几种: 1.Oracle的进程在等待某个资源或事件 这种现象一般可以从V$SESSION_WAT、V$LATCH、V$LATCHHOLDER等动态视
爱可生 dble 项目测试组成员,负责 dble 相关测试工作,拥有多年数据库中间件测试经验,擅长故障排查及性能调优。
正如题目所述,在自动化测试场景下,通过 systemd 无法启动 MySQL。连续 kill -9 结束实例进程,检测 mysqld 在退出后是否会被正确拉起。
生活就像一盒巧克力,你永远不知道下一颗是什么味道。 --《阿甘正传》 在DBA的世界里,数据库的新特性就是这样一盒巧克力,可能是惊喜也可能是坑。毋庸置疑,新特性总是伴随着新功能而来,然而在企业最核心的数据资产面前,某些新功能的出现所带来的好处,远远不及其对于性能和稳定性带来的危害。因此我们常常会选择禁用一些新特性,今天要分享的DRM就属于其中一个。 为什么DRM通常会被列入禁用的名单,今天我通过一个真实案例来认识DRM可能会导致的数据库故障。 什么是DRM 在Oracle 10g版本中,开始提出了DRM特性
某头部金融机构采用MongoDB存储重要的金融数据,数据量较大,数据规模约2000亿左右,读写流量较高,峰值突破百万级/每秒。本文分享该千亿级高并发MongoDB集群的踩坑经验及性能优化实践,通过本文
KIND 是我很喜欢也一直在参与贡献的 Kubernetes SIG 子项目,本周 KIND 发布了 v0.9 版本,距离上次 v0.8 版本已过去了 4 个多月,在此期间,我们做了很多的优化和改进。下面我来具体介绍下:
注:OCP-052最新题库完整详细解答版请联系小麦苗私聊。解题不易,请大家尊重原创。
现象:系统hang住,可以ping通,但ssh无响应 在导入数据的时候,服务器突然无反应,连接不上,基本上就判定死掉了,重启服务器后查看日志如下: Mar 26 08:13:01 localhost kernel: INFO: task flush-8:0:26079 blocked for more than 120 seconds. Mar 26 08:13:01 localhost kernel: Tainted: P --------------- 2.6.32-431.el6.x86_64 #1
在使用shutdown immediate关闭数据库时hang住,查看alert 日志,遭遇了SHUTDOWN: Active processes prevent shutdown operation。也即是说有一些活动进程阻止了当前的shutdown操作。咦,数据库是测试数据库啥也没有干,也没有配置db console,还有活动进程阻止呢?
作者 | 张乐奕:Oracle ACE 总监,ACOUG (中国 Oracle 用户组)联合发起人。Oracle 数据库高可用解决方案与 Exadata 一体机专家。长于数据库故障诊断,性能调优。作为多家知名论坛版主,热衷社区技术分享,同时也是 Exadata 用户组的发起人,组织策划并作为技术分享者的活动已超过百场。
通过把jbd2不调度来实现,方式是把他和一个rt进程绑到一个cpu上。README该脚本利用ext4的日志功能模拟一个io hang的场景在使用该脚本前,请确保:1.机器上有盘是挂载为ext4的,可通过 mount | grep ext4 命令查看确认2.挂载点的ext4打开了日志功能,可通过 dumpe2fs /dev/vda1(这里是挂载为ext4的盘,上面mount命令可以看到)| grep features | grep has_journal 命令查看确认3./proc/sys/kernel/hu
一般来说,我们过滤Kernel-PnP、Disk日志就能看到与控制台挂载、卸载云盘失败相关的日志了
作为一名混迹数据库江湖十几年的老DBA,当你对关系型数据库的了解越来越深入时,你会发现,Oracle数据库真的是强大到令人发紫! Oracle数据库的强大,不仅体现在其对ACID的巧妙实现,其对高并发的完美支持,更重要的是他的可管理性,包括可度量、可回溯,以及出现问题后的问题核查接口和问题检查方法论,真是强大到令人发紫,这是其他关系型数据库短期内还无法超越的。 中亦科技小y(黄远邦) 问题引入 电话响了,是某银行一位熟悉的资深DBA的来电。 “小y,现在应用连接数据库会hang住,sysdba登陆也会han
某客户生产系统核心库在2019-08-21 23:50:00左右出现了业务告警,应用无法连接的情况。
数据的世界无奇不有,常常会遇到一些超出常识之外的故障的发生。这就要求广大的DBA要深入了解数据库的内部机制,面对一些奇葩的故障或者问题能够拨开迷雾找到真相。今天我们一起来盘点一下Oracle数据库中,
docker安装新的ca证书后无法正常启动, 表现为/sbin/iptables --wait -t filter -N DOCKER-ISOLATION-STAGE-2 hang住, 日志有报错 xtables contention detected while running ..
Oracle数据库重做日志及归档日志的工作原理: lgwr进程将redo log buffer中的重做数据写入到redo log中,此时的redo log分组,每当一个redo log group写满时,或者发出switch logfile指令时都会触发日志组的切换,当发生日志组切换时,arc进程会将当前的重做日志数据写入归档日志; lgwr进程是将内存中的数据写入到重做日志文件,这是内存读磁盘写。然而arc进程是将重做日志文件写入到归档文件,是磁盘读磁盘写。 显然lgwr进程的读写效率或者读写速度比a
p0就是上一篇波哥说的那个ETCD扩容导致整个业务不可用,我在产房门口坐地上处理的那次。
在一个数据为王时代,数据安全视为一家企业命根子,因此如何保障企业数据安全尤为重要。本文主要从数据库容灾方案视角,基于当前客户业务并结合技术&产品,制定最佳容灾方案。主要从以下三个方面来介绍:
在使用vim的时候,如果打开的小文件,没啥问题,如果打开的超大类型的文件,那么就会引发巨大的风险,轻则内存使用爆炸,重则引发操作系统oom。
1、情况概述: 早上公司一个业务系统zabbix告警没正常同步数据,经过排查日志有connect reset情况:
前面的文章,我们分析了压测的时机,压测的指标,那么这次呢,我们来看下,我们这些压测的指标,常见的都需要性能压测中观测点,有了对指标的梳理 ,我们才有重点的关注点,下面,我列举一些常见的指标。
把IDC自建的es集群与腾讯云es集群互通,做成一个大集群,通过es本身的数据同步功能做同步。
微服务是一种架构模式,提倡将一个大型复杂的单体架构拆分成一个个微服务。服务内部是高内聚,服务之间是低耦合。
以下对 DBLE 3.21.10.0 版本的 Release Notes 进行详细解读。
崔华,网名 dbsnake Oracle ACE Director,ACOUG 核心专家 编辑手记:感谢崔华授权我们独家转载其精品文章,也欢迎大家向“Oracle”社区投稿。 我们都知道在 Oracle 数据库里是“读不阻塞写,写不阻塞读”,那么是否可以认为在正常情况下,select 操作是怎样都能执行,始终不会被 hang 住的呢?注意这里提到的是正常情况下,不包括那些由于 latch 被 hold 住、或者 bug 等相关异常导致的 select 操作 hang 住的情况。 答案是:不可以这样认为
最近在导出schema级别的数据时被hang住,不得不停止当前的导出作业,如果你有类似的问题,请继续往下看。 1、问题描述 导出整个schema时数据库被hang住,如下所示 符号">"是由SecureCRT设定的每300秒发送一次 oracle@Dev-DB-04:~> expdp goex_admin/xxx directory=db_dump_dir dumpfile=gobo2.dmp logfile=gobo2.log schemas=goex_admin Export: Release 10.2.0.4.0 - 64bit Production on Thursday, 23 May, 2013 9:30:52 Copyright (c) 2003, 2007, Oracle. All rights reserved. Connected to: Oracle Database 10g Release 10.2.0.4.0 - 64bit Production Starting "GOEX_ADMIN"."SYS_EXPORT_SCHEMA_01": goex_admin/******** directory=db_dump_dir dumpfile=gobo2.dmp logfile=gobo2.log schemas=goex_admin >>>> -->查询超长时间的操作,没有任何结果,也就是说datapump压根啥也没有做 goex_admin@GOBO2> @long_ops no rows selected -->查询job产生的对象的表,表存在 goex_admin@GOBO2> @datapump_master_tb STATUS OBJECT_ID OBJECT_TYPE OWNER_OBJECT ------- ---------- ------------------- -------------------------------------------------- VALID 315838 TABLE GOEX_ADMIN.SYS_EXPORT_SCHEMA_01 2、问题解决 参数fixed_date引起数据库导入导出被hang住 [ID 563171.1] goex_admin@GOBO2> show parameter fixed NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ fixed_date string 20130506 16:00:00 -- Author : Robinson -- Blog : http://blog.csdn.net/robinson_0612 goex_admin@GOBO2> alter system set fixed_date=none; System altered. -->参数fixed_date被移除后,导出正常 oracle@Dev-DB-04:~> expdp goex_admin/xxx directory=db_dump_dir dumpfile=gobo2.dmp logfile=gobo2.log schemas=goex_admin Export: Release 10.2.0.4.0 - 64bit Production on Thursday, 23 May, 2013 9:30:52 Copyright (c) 2003, 2007, Oracle. All rights reserved. Connected to: Oracle Database 10g Release 10.2.0.4.0 - 64bit Production Starting "GOEX_ADMIN"."SYS_EXPORT_SCHEMA_01": goex_admin/******** directory=db_dump_dir dumpfile=gobo2.dmp logfile=gobo2.log schemas=goex_admin >>>> Esti
磁盘性能对数据库的读写能力影响很大,如何从多个角度监控数据库的写性能就变得至关重要,当写性能成为瓶颈时我们又该如何调优呢?
首先还是要说两句,1 这个帖子不会说是那个云,读者你也不要问是那个云, 2 丢数,我个人认为在云上这是必然的,不是偶然,只是触发概率的问题。(原因很清楚,我说的这个问题,到那个云都一样,越先进的越会有这个问题)
今天调研基于Web的SSH的应用程序的时候无意间看到了一个Web Console的工具,虽然没有满足我的最终需求,但还是试了一下,可以当作一个受限的基于Web远程执行命令工具使用。
日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材^_^。
当需要在多个Oracle数据库之间进行数据一致性操作时,就会用到分布式事务。 例如:
SQL> create table tbl_ora_60 ( id number(5), name varchar2(5) ); SQL> insert into tbl_ora_60 values(1, 'a'); 1 row created. SQL> insert into tbl_ora_60 values(2, 'b'); 1 row created. SQL> commit; Commit complete. SQL> select * from tbl_ora_60; ID NAME ---------- ----- 1 a 2 b 实验开始 Session1: SQL> update tbl_ora_60 set name='c' where id=1; 1 row updated. Session2: SQL> update tbl_ora_60 set name='d' where id=2; 1 row updated. Session1: SQL> update tbl_ora_60 set name='e' where id=2; hang住 Session2: SQL> update tbl_ora_60 set name='f' where id=1; hang住 此时,Session1: SQL> update tbl_ora_60 set name='e' where id=2; update tbl_ora_60 set name='e' where id=2 * ERROR at line 1: ORA-00060: deadlock detected while waiting for resource 说明: Session1 Session2 获取id=1的资源锁 获取id=2的资源锁 等待id=2的资源锁 等待id=1的资源锁 id=2的SQL报ORA-60,自动rollback 1、因为id=2的资源锁是Session2先获取的,因此Oracle会自动rollback产生死锁时后需要资源锁的SQL,Session1的更新id=2操作被rollback。 2、从中可以发现,真正报ORA-60错误的SQL获取的资源(此例中id=2),并不是触发死锁产生的那个资源(此例中id=1),此例用的是同一个表的不同行,对不同表的相同行也如此,也可以解释之前夜维出现ORA-60时显示的SQL之间表是不同的原因,因为夜维执行的某个表更新与当前应用执行的某个表更新之间存在互锁的情况,因此可能导致夜维SQL报ORA-60或应用报ORA-60的错误。 此时,Session1: SQL> select * from tbl_ora_60; ID NAME ---------- ----- 1 c 2 b 说明:此处可以证明产生报错后,Oracle自动执行的rollback操作是基于单条SQL,不是整个事务的,所以这里只有id=2的记录被rollback,id=1的执行仍正常。 Session2: SQL> update tbl_ora_60 set name='f' where id=1; hang住 继续,Session1: SQL> commit; Commit complete. Session2: SQL> update tbl_ora_60 set name='f' where id=1; 1 row updated. Session1: SQL> select * from tbl_ora_60; ID NAME ---------- ----- 1 c 2 b 只有id=1更新成功。 Session2: SQL> select * from tbl_ora_60; ID NAME ---------- ----- 1 f 2 d id=1和id=2都更新成功,但未COMMIT。 SQL> commit; Commit complete. Sess
库存可能会修改,每次修改都要去更新这个缓存数据; 每次库存的数据,在缓存中一旦过期,或者是被清理掉了,前端的nginx服务都会发送请求给库存服务,去获取相应的数据
最近由于数据库hang住,无奈之下直接干掉了pmon进程,再次启动的时候收到了ORA-01092: ORACLE instance terminated. Disconnection forced以及ORA-12432: LBAC error: zllegnp:OCIStmtExecute。这下好了,有的整了,是个从来没有遇见的错误。下面是对这个错误的描述与解决。
Linux操作系统在作为服务器的场景下应用最为广泛,但是在使用过程中也会遇到莫名崩溃的情况.这时我们就希望能对崩溃前一刻内存中的数据进行分析,从而找到崩溃的原因.本文将对整个过程所涉及到的技术做一个简单但是全面的介绍,包括:如何安装kdump,如何设置系统参数来捕获崩溃前的内存;如何使用crash做简单的分析;并且介绍如何使用更加简便的工具PyKdump来做crash文件的分析.通过了解这些知识, 可以帮助Linux运维人员更快更方便地排查问题.
最近PL/SQL包在编译时被hang住,起初以为是所依赖的对象被锁住。结果出乎意料之外。下面直接看代码演示。
select * from v$session_Wait order by event desc
http://doc.dpdk.org/guides/prog_guide/mbuf_lib.html
2、通过dba_jobs_running和dba_scheduler_running_jobs数据字典确定了该job调用方式为Scheduler;
在一个生产系统中,通常都需要用高可用方案来保证系统的不间断运行。PostgreSQL 本身不支持任何多主群集解决方案,例如MySQL或Oracle。尽管如此,仍有许多商业和社区产品提供此实现,以及其他产品,例如PostgreSQL的复制或负载平衡。
Saturn 3.0.0致力于让用户做到自运维:一方面为用户trouble shooting提供便利,另外一方面希望作为一站式平台去管理executor。
Tokio[1] 的 task(一个Future) 里如果使用了阻塞调用, 例如 std::sync::Mutex, 会阻塞当前的 tokio-worker 线程, 这个 worker 无法再执行其他 task. 所以代码里如果不可避免的有(少量的)阻塞调用, 就要为 runtime 启动更多的 worker 线程, 保证存在没被阻塞的 worker 来执行待调度的 task, 以避免整个tokio runtime 完全 hang 住(有 task 但没 worker 运行它).
今天,系统中的一个业务处理莫名地执行了6个小时都没有结束,正常处理也就是3分钟左右,对原因进行定位,发现是在Oracle客户端上同步执行一个命令没有响应。今天来分享一下这个问题,让更多的人避开这个坑。
目前行里自动化工具越来越多,无论是应用的MAOP或系统的SMDB,自动化实现都还是日常运维脚本的调用,结合日常运维的一些经验,脚本中就更需要考虑周全和控制风险。这里介绍一些结合运维场景的脚本应用,希望规避以前犯过的错,重点在控制风险。
同事说某套Oracle中有一张94G容量的表需要清空,用delete删除的,但是一直卡着。
这里暂且不说 hang 住的原因,仅分析数据库 hang 住,但是 MHA 未触发切换。
TensorFlow Serving服务在Kubernetes集群中的部署方案,如果是从零开始建设,那么可以通过Kubernetes原生的Service+KubeDNS实现服务的注册与发现,并通过对接LVS集群进行负载均衡。因此我们在TaaS中开发了Kube2LVS模块,负责对TensorFlow Serving服务进行ListAndWatch,实现TensorFlow Serving Service Info动态reload到LVS config中。
若系统不是严格要求缓存/数据库必须一致性,缓存可以稍微和数据库偶尔不一致,最好不要做双写。 读请求和写请求串行化,串到一个内存队列里去,这样就可以保证一定不会出现不一致。 串行化后,就会导致系统吞吐量骤降,就需要比正常情况下多几倍的机器去支撑线上环境请求。
Redis是企业级系统高并发、高可用架构中非常重要的一个环节。Redis主要解决了关系型数据库并发量低的问题,有助于缓解关系型数据库在高并发场景下的压力,提高系统的吞吐量(具体Redis是如何提高系统的性能、吞吐量,后面会专门讲)。
领取专属 10元无门槛券
手把手带您无忧上云