首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

企业实战(1) 服务器断电重启业务异常随笔

事件回顾:   事情发生在一个呼叫中心,里面外呼的不单单只有人工坐席,还有AI机器人,当天服务器异常断电后重启,业务启动之后发现人工坐席无能正常外呼,但是AI机器人又可以外呼,仔细回想自己没有改过什么东西...突然想到之前看过的SIP呼叫信令,想起是内网IP,人工是使用的内网,内网目前异常不能使用,然后马上就去服务器检查网卡,发现eth1网卡的IP地址不正常。...进入eth1的网卡配置文件看IP地址是正常,说明是网卡异常。 排错: 1.重启网卡,出现以下错误信息: 在这里插入图片描述  可以看到eth1网卡重启失败了,看来就是eth1网卡的问题了。

90810

RAID6存储断电数据恢复案例

本次分享的案例是由于机房突然断电导致整个存储瘫痪,加电后存储依然无法使用。经过用户方工程师诊断后认为是断电导致存储阵列损坏。...但是不确定是否为最新状态,检测几个虚拟机发现有部分虚拟机正常,但也有很多虚拟机数据异常。初步判断RAID中存在掉线的磁盘,依次将RAID中的每一块磁盘踢掉,然后查看刚才数据异常的地方,未果。...再次重组RAID,查看以前数据异常的地方可以对上了。针对其中的一台虚拟机做验证,将所有磁盘加入RAID中后,这台虚拟机是可以启动的,但缺盘的情况下启动有问题。...针对重要的虚拟机中的数据库做验证,发现数据库都正常。...由于部分虚拟机的数据盘很大,而数据很少。像这种情况就可以直接导出数据,然后新建一个虚拟磁盘,最后将导出的数据拷贝至新建的虚拟磁盘中即可。 统计了一下整个存储中虚拟机的数量,大约有200台虚拟机。

80220

HDFS——文件中的异常处理

记得看过一本书,里面是这么的,软件开发中的二八原则,80%的时间运行的是正常流程,20%的时间是异常流程。而实际代码中,80%的代码是在处理异常逻辑,而正常流程只占20%。...由此可见,异常处理是很重要的一块内容。 本文就以原生的JAVA客户端为例,聊聊HDFS里文件过程中的异常处理。...先来简单回顾下HDFS的文件流程,如下图所示: 客户端向NN申请block,NN处理请求后需要将操作写入JN中。随后,客户端向DN建立连接发送数据,最后向NN同步block的信息。...整个流程中,JN、NN、不同的DN出现异常,均可能导致异常或失败。 【JN异常】 假如在客户端addBlock之前,JN就出现了异常,那么addBlock会失败,因此block会写失败。...如果是false,当DN异常后,客户端移除异常的DN后使用剩余的DN继续进行操作。

76840

一个简单的异常告警

一、背景 在一些中小型团队,没有完善的监控告警平台,为了保证线上服务运行状况不是黑盒状态,我们需要手动一些简单的基础工具,比如接口监控告警等能力,当然就算有监控告警平台,有时候也需要手动一些告警工具...二、实现方案 通过拦截器或者切面,拦截服务接口 如果接口抛出异常,则拦截器或者切面捕获异常,并组装告警消息 拦截器或者切面调用办公协同平台的api发送告警消息,办公协同平台将告警消息推送到对应的告警群...三、编写告警组件 既然是告警组件,也就意味着要提供一个通用能力供业务使用,此处我们也写成一个starter组件,原理就是一个自定义注解,和手动告警工具通过jar包的形式暴露出去。...ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface Alarm { /** * 抛出该异常集合里面的异常时...log.error("send feishu alarm occur error;param={}",param,e); } } } 3.编写告警配置和切面 一个拦截自定义告警注解的切面

21040

无需trycatch,也能正常处理异常

既然如此,异常处理的策略就不可能一成不变,我们不可能在开发阶段就制定一个完备的异常处理策略来处理未来发生的所有异常异常处理策略应该是可配置的,能够随时进行动态改变的。...我们的异常处理策略很简单:如果后台代码抛出异常异常的相关信息按照预定义的格式通过Alert的方式显示在当前页面中。...ASP.NET提供了一组实现了IPostBackDataHandler接口的控件类型,它们会向PostBack的时候向服务端传递相应的数据,我们熟悉的ListControl(DropDownList、ListBox...很多表示输入数据改变的事件(比如ListControl的SelectedIndexChanged事件)就是被RaisePostDataChangedEvent方法触发的。...对于EventHandlerWrapper的设计思想,在我两年前的《如何编写没有Try/Catch的程序》一文中具有详细介绍。

1.1K80

代学:python 错误、异常、断言

还可能是逻辑无法生成,计算,或是输出结果需要的过程无法执行 2.异常 (1)当python检测到一个错误时,解释器就会指出当前流已经无法继续执行下去,这时候就出现了异常 (2)异常是因为程序出现了错误而在正常控制流以外采取的行为...try里边去执行,想要捕获什么异常,就把异常放到except里边去,捕获后的异常怎么去处理,把处理的语句写到except下边,包含finally语句,except语句,try语句,else语句,with...,没有异常就使用else语句执行,最后的finally语句,不管异常异常都会执行,可以用在文件打开后发生异常导致文件没有关闭,可能会发生数据损坏,使用finally可以保证文件总是能正常的关闭。...print line, 4.触发异常 (1)要想引发异常,最简单的形式就是输入关键字raise,后面跟要引发的异常的名称 (2)执行raise语句时,Python会创建指定的异常类的一个对象 (3)raise...语句还可指定对异常对象进行初始化的参数 #!

70120

对atbus的小数据包的优化

算上CPU的消耗比例,atbus的读性能和tbus对比的话,主要是 使用共享内存通道的时候,读性能是差不多的,性能atbus要高过tbus大约不到一倍。...但是atbus的性能大约是tbus的4-5倍,QPS大约是6-7倍。...那么缓冲区太大也没意义,我就设成了: 包大小限制(默认64K)-sizeof(write_req_t)-一个对齐大小(以防数据乱,目前64位系统是8字节)。...然后每次写出时给connection加WRITING标记,写完的回调之后移除,如果调用io_stream_send的时候有WRITING标记,则往write队列里加,但不执行实际操作,如果没有就执行实际操作...执行实际操作的时候先合包,再写。这样就能保证正在写出的永远是write队列里的第一个数据块。 write队列怎么合包呢?

6.8K20

服务器意外断电后的数据恢复方案过程

最近小编我连续几天接到了大量关于服务器断电后的各种数据丢失,有的是意外断电导致服务器无法启动了,有的是服务器可以启动但是虚拟机丢失了,还有的是服务器断电后有多块硬盘出现故障离线了等等........现在我们言归正传,通过对其中一例服务器断电导致数据丢失的案例给大家简单介绍一下服务器断电后怎么进行数据恢复,仅供技术交流,如果有更简便的方法欢迎探讨。...服务器断电数据丢失情况介绍 我们案例中的服务器因为突然断电导致一台虚拟机不可用,至于服务器的具体配置情况如下图所示。...服务器数据恢复;服务器断电数据恢复过程1.png 分析服务器底层数据情况 老生常谈但是必须要说的注意事项:所有的数据恢复操作都必须将客户的数据盘连接到数据恢复环境的服务器上进行镜像备份,然后在镜像文件上进行数据分析与服务器数据恢复...数据恢复工程师搭建了一组数据库环境,将恢复出来的数据数据附加进去进行查询,经查询最新数据正常,本服务器数据恢复成功,恢复结果见下图: 服务器数据恢复;服务器断电数据恢复过程5.png

2.2K40

Spring Boot 全局异常处理,这样才优雅...

那么我们这里可以通过自定义的异常类以及枚举类来实现我们想要的那种数据吧。 自定义基础接口类 首先定义一个基础的接口类,自定义的错误描述枚举类需实现该接口。..., BODY_NOT_MATCH("400","请求的数据格式不符!"), SIGNATURE_NOT_MATCH("401","请求的数字签名不匹配!")...顺便这里我们定义一下数据的传输格式。...可以看出将我们抛出的异常进行数据封装,然后将异常返回出来。 然后我们再来测试下空指针异常是否能够被正确的捕获并处理。...顺便再说一下,自义定全局异常处理除了可以处理上述的数据格式之外,也可以处理页面的跳转,只需在新增的异常方法的返回处理上填写该跳转的路径并不使用ResponseBody 注解即可。

65920

异常捕获优化c++的顺序栈

如果try语句里面的语句都没有出现异常,就会执行catch后面的代码块 2.try语句里面存在语句抛出异常,会去下面的catch块中寻找抛出异常类型相同的语句块 3. try语句抛出异常,但是下面的catch...语句块中没有一个能够捕获该异常,那么会跳转到catch下面的语句,造成程序的终止,因为异常没有被解决 会丢出异常的情况 自定义异常异常捕获优化c++的顺序栈 #include...if (isFull()) { //匿名函数对象 throw Full(); } else { //更新top的位置,插入数据后top的值就是当前栈中元素的个数 data[+...+top] = val; } //如果栈满了,可以用异常捕获的操作 } void stack::pop() { //如果栈为空,丢出Empty异常 if (isEmpty()) { //...3下面的语句不会执行 s1.push(&p[2]); } //catch(异常类型),异常类型就是定义的异常内部类的类名 catch (stack::Full) { cout << "FULL

44020

机器断电导致Oracle数据库损坏的解决方法介绍

服务器数据恢复故障 北京某公司的一台服务器,上层数据类型为Oracle数据库,由于服务器意外断电,导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。...由于客户的数据库并没有备份,仅有一些断断续续的归档日志,现在只能通过数据恢复手段来修复Oracle数据库。 数据恢复常规流程 1. 检测数据库故障情况; 2. 尝试挂起并修复数据库 3....解析数据库文件获取数据 使用北亚自主研发的一款dbf解析工具,获取到客户数据库内的数据。...如下图所示: 服务器数据恢复;Oracle数据库修复8.png 北亚数据恢复中心工程师获取到数据数据后在数据恢复专用服务器内搭建数据库环境,创建数据库、用户、分配表空间等。...将解析出来的数据数据迁移到新数据库中。使用toad for oracle工具验证数据

1.6K30

linux数据恢复_Linux操作系统服务器意外断电数据恢复成功案例

【linux服务器数据恢复介绍】 客户带来一台需要进行数据恢复的服务器,服务器是linux操作系统,导致服务器数据丢失的原因是由于服务器意外断电导致的一部分文件丢失。...数据丢失后客户没再进行其他操作,直接将服务器正常关机后切断电源带到北亚数据恢复中心进行数据恢复操作。...【服务器数据备份】 北亚数据恢复中心接到客户的服务器后,将客户的linux服务器连接到数据恢复专用服务器上,将客户数据以只读模式进行镜像备份。...【分析服务器数据情况】 数据恢复工程师对服务器的镜像文件进行底层数据扫描,分析服务器内的数据被破坏情况,逐条排查被破坏了的数据部分,发现数据目录项部分被破坏,需要进行目录项修复。...【linux服务器数据恢复结果】 数据恢复工程师对提取出的数据进行验证无误后由客户亲自进行数据验证,确认数据无误,本次数据恢复成功。

3.2K20
领券