服务器突然宕机,各位帮忙看看是什么原因

服务器突然宕机,各位帮忙看看是什么原因,第1张

服务器宕机的原因有多种,你可以排查一下是不是以下几种:
1、 网站受到攻击;网站中毒;
2、 服务器出现故障(比如系统是否运行正常)
3、服务器没有资源而中止运行,比如内存太小的情况。

解决方法:

遇到 504 错误,就请与网站官方联系,此问题个人无法解决。需要网站方和互联网服务供应商 (ISP) 及 Web 服务器软件供应商联络, 检查在其控制下的不同电脑之间的 IP 数据传输的流通状况。 

网站管理员,可以尝试通过以下方法排查原因:

1您的服务器宕机

如果网站服务器宕机,如断网、关机、网络不稳定、关闭IIS/nginx/apache等,均会造成节点无法取源,从而显示504。

2机房或服务器防火墙拦截了节点

服务器是否有安全狗、D盾等防火墙等软件拦截了知道创宇云安全节点IP,造成知道创宇云安全节点暂时无法访问您的网站。可设置知道创宇云安全的节点IP为白名单,就能够解决此问题。

最近遇到个比较有意思的问题,服务器宕掉后无法启动,想了好多办法,虽然解决了问题,数据没有丢失,但是没有按照自已的思路来,未免还是有些不甘。遇到问题不能慌,尤其是线上的环境,更不能紧张,心理素质对DBA来说也是一项挑战,可能你的手一抖就会导致多少人无法正常使用业务,如果你没有把握,请先把现场环境备份后再进行 *** 作,避免数据的二次损坏,下面壹基比小喻说一下大概的思路吧。
1检查是否有备份,如果备份存在,binlog存在,那么万事大吉,一切都有挽回的余地,慢慢来搞,只要你基础扎实,数据还原只是时间的问题。
2对于没有备份的,那处理这个问题就有些棘手了,还得一步一步的来。
在mycnf中[mysqld]下加上以下配置,采用强制恢复机制,看是否能够启动
[mysqld]
innodb_force_recovery=1
如果设置成1不能启动,可以逐渐的将数据增大到6,下文会详细说下1-6是什么意思,如果在1-6之间启动成功了,那么你运气还不错,这时候不要恢复业务,赶紧把数据用逻辑方式导出来,再启个新的实例把数据还原,有人会问,为什么mysql已经启动了,还要导出数据呢,原因在这:
当innodb_force_recovery被设置为大于0的时候 ,会阻止用户insert,update,delete也就是你启动的mysql不是一个正常的mysql服务,类似于windows系统下的安全模式。以下这段引于其它地方,具体地址不太清楚了,也可以从官方文档中找到。
innodb_force_recovery被允许的非零值如下。一个更大的数字包含所有更小数字的预防措施。如果你能够用一个多数是4的选项值来转储你的表,那么你是比较安全的,只有一些在损坏的单独页面上的数据会丢失。一个为6的值更夸张,因为数据库页被留在一个陈旧的状态,这个状态反过来可以引发对B树和其它数据库结构的更多破坏。
innodb_force_recovery=1 (SRV_FORCE_IGNORE_CORRUPT)
即使服务器检测到一个损坏的页,也让服务器运行着;试着让SELECT FROM tbl_name 跳过损坏的索引记录和页,这样有助于转储表。
innodb_force_recovery=2 (SRV_FORCE_NO_BACKGROUND)
阻止主线程运行,如果崩溃可能在净化 *** 作过程中发生,这将阻止它。
innodb_force_recovery=3 (SRV_FORCE_NO_TRX_UNDO)
恢复后不运行事务回滚。
innodb_force_recovery=4 (SRV_FORCE_NO_IBUF_MERGE)
也阻止插入缓冲合并 *** 作。如果你可能会导致一个崩溃。最好不要做这些 *** 作,不要计算表统计表。
innodb_force_recovery=5 (SRV_FORCE_NO_UNDO_LOG_SCAN)
启动数据库之时不查看未完成日志:InnoDB把未完成的事务视为已提交的。
innodb_force_recovery=6 (SRV_FORCE_NO_LOG_REDO)
不要在恢复连接中做日志前滚。
数据库不能另外地带着这些选项中被允许的选项来使用。作为一个安全措施,当innodb_force_recovery被设置为大于0的值时,InnoDB阻止用户执行INSERT, UPDATE或DELETE *** 作
即使强制恢复被使用,你也可以DROP或CREATE表。如果你知道一个给定的表正在导致回滚崩溃,你可以移除它。你也可以用这个来停止由失败的大宗导入或失败的ALTER TABLE导致的失控回滚。你可以杀掉mysqld进程,然后设置innodb_force_recovery为3,使得数据库被挂起而不需要回滚,然后舍弃导致失控回滚的表。
关于上面进行逻辑备份也可能会遇到问题,可能会备份失败,如果出错,建议先按库一个一个的备份,到哪个库出错后,再按照当前库的表一个一个备份,表出错根据表中主键一点一点备份,最终将大部分数据导出。如果你的数据不重要,可以容忍丢失,那么可以当我说的都是废话了。
3如果还是不可以启动,那么恭喜你,你遇到挑战了。
查看错误日志,看没有提示因为某个表的原因而导致启动不了,可以先把损坏的表的ibd文件先从数据目录mv走,再试着启动,在数据已经恢复后,我把当时错误的文件拿到本地,做了测试,把几个报错的ibd文件mv走后,数据库就可以正常启动了,但是mv走的这几个表数据会丢失。怎么把这个表的数据弄回来呢,曾想过用在线表空间传输,但是cfg文件却没有,这种方法没有行通。后来用Percona Data Recovery Tool for InnoDB工具进行数据恢复,关于这个工具的介绍与 *** 作,网上一大堆,我就不详细说明了。

宕机服务器排查故障方法

1、在运行环境的问题中,最普遍的问题时磁盘空间耗尽。

2、在性能问题中,最普通的服务器宕机原因确实是运行很糟糕的SQL,但也不一定都是这个原因,比如也有很多问题时由于服务器Bug或错误的行为导致的。

3、糟糕的Schema和索引设计是第二大影响性能的问题。

4、复制问题通常由于主备数据不一致导致。

5、数据丢失问题通常由于 *** 作的错误 *** 作导致,并总是便随着缺少可用备份的问题。

6由于系统原因,导致的服务器宕机,一般重启下服务器就可以。

明白了服务器宕机的原因,我们就可以采取相应的措施来排查。宕机服务器如何排查故障

服务器宕机有可能是网络故障,有可能是突发的访问量暴增、服务器处理不过来的问题。

服务器处理和响应不过来,会导致丢弃部分请求不予处理,更严重的会导致服务端崩溃。

防止由于服务器宕机可能导致的数据丢失问题的解决办法有:

一、数据备份与“多云”

如果是物理机,要做好数据备份,比如做raid;如果是选择的公有云,则最好把数据分存在不同的服务商那里。

二、web服务器配置优化

对Web服务器进行配置优化,比如:调整内存数量、线程数量等;提供多个能提供相同服务的Web服务器,以实现负载均衡;仔细规划Web服务器上部署的应用规模;对Web服务器进行集群。

三、数据库集群,进行读写分离

服务器宕机,和我们平时说的电脑死机一个意思。服务器和电脑的组成一样,也是由主板、CPU、内存、硬盘、网卡等组成,所以和我们电脑一样,运行软件错误,系统错误都会引起宕机,宕机是服务器故障常见的现象。
出现宕机可能是程序应用错误,系统错误等原因造成的。 重启一下机器就好了。如果想查看具体原因,可以在服务器中查看服务器的windows日志,查看一下错误信息


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13491000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-17
下一篇 2023-08-17

发表评论

登录后才能评论

评论列表(0条)

保存