mysql自动重启怎么办 mysql数据库自动重启-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

mysql自动重启怎么办 mysql数据库自动重启

求助,mysql 自动重启,服务宕掉问题咨询

1.检查是否有备份,如果备份存在,binlog存在,那么万事大吉,一切都有挽回的余地,慢慢来搞,只要你基础扎实,数据还原只是时间的问题。

专注于为中小企业提供成都网站设计、成都网站制作、外贸网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业武川免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

2.对于没有备份的,那处理这个问题就有些棘手了,还得一步一步的来。

在my.cnf中[mysqld]下加上以下配置,采用强制恢复机制,看是否能够启动

[mysqld]

innodb_force_recovery=1

如果设置成1不能启动,可以逐渐的将数据增大到6,下文会详细说下1-6是什么意思,如果在1-6之间启动成功了,那么你运气还不错,这时候不要恢复业务,赶紧把数据用逻辑方式导出来,再启个新的实例把数据还原,有人会问,为什么mysql已经启动了,还要导出数据呢,原因在这:

当innodb_force_recovery被设置为大于0的时候 ,会阻止用户insert,update,delete也就是你启动的mysql不是一个正常的mysql服务,类似于windows系统下的安全模式。以下这段引于其它地方,具体地址不太清楚了,也可以从官方文档中找到。

mysql删除日志后一直重启报错couldnotopenlogfile

lsof|grepdeleted查看一下是否存在删除了,但是没有释放空间的文件。查看其所属的服务的进程号,杀掉进程,重启服务。

1、绝对不能从操作系统上直接删除binlog日志,如rm binlog。

2、在MySQL中,使用PURGE BINARY LOGS命令删除binlog日志,才是最安全的办法。命令如下,

PURGE BINARY LOGS BEFORE '2017-01-20 00:00:00';

PURGEBINARYLOGSBEFORE'2017-01-20 00:00:00';

解决k8s MysqlCluster 无故重启问题

使用 bitpoke的mysql-operator 作为k8s的mysql服务,使用的版本v0.4.0,

github地址:

MysqlCluster operator主要支持如下功能

建立的mysql服务每隔一段时间就重启,事件的报错信息如下

为什么心跳不通过?

貌似心跳机制不通过,查看pod信息

心跳默认20秒不通过,就重启,看源码也没有心跳配置项,坑啊,不过这只是表象,到底是什么导致心跳不通过?

mysqlCluster启动时,会启动4个容器metrices-exporter, mysql, pt-heartbeat, sidecar。看这4个容器的cpu, 内存使用情况,发现mysql内存超过,如下:

看最后状态,OOMKilled,而且当前内存使用率3.9G 接近limit 4G的设置。 找到产生的问题原因了,是因为内存超了,被容器杀掉,导致心跳不通过报错重启

为什么内存使用这么高?

思考mysql使用内存高,可能跟mysql自身缓存有关系,查内存相关参数

看到 innodb_buffer_pool_size 设置得值特别大,这个参数设置只有主要缓存innodb表的索引,数据,插入数据时的缓冲,但默认是8M。

为什么 innodb_buffer_pool_size 设置变得这么大?

翻翻mysqlCluster源码,跟innodb_buffer_pool_size 有关代码

default.go

问题就在这里,为了保证资源独占,mysql设置时是request = limit,因为自动计算导致 innodb-buffer-pool-size过大,最终导致oom,需要手动设置innodb-buffer-pool-size,就手动设置2G吧

设置 innodb-buffer-pool-size 不生效?

设置后,pod不重启? 参数没有生效设置。设另一个512M就生效了。尝试加入引号,作为字符串处理,配置开始生效。难道跟类型有关系? 继续看相关源码

default.go

看这个类型定义cluster.Spec.MysqlConf

MysqlClusterSpec

intstr

如果设置成数字,则整数是int32位

看int32位的长度

int32 the set of all signed 32-bit integers (-2147483648 to 2147483647)

至此内存使用过大的问题,解决了,内存使用也降下来了


分享题目:mysql自动重启怎么办 mysql数据库自动重启
新闻来源:http://kswsj.cn/article/hidceg.html

其他资讯