/tmp/mysql.sock无故丢失的故障分析

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 环境:Oracle goldengate通过读取/tmp/mysql.sock来同步数据。 故障:mysql.sock经常无故丢失,查看日志、history找不到任何被删除的迹象。 问题分析与解决:Google了一下,发现是tmpwatch自动删除机制导致的。
环境:Oracle goldengate通过读取/tmp/mysql.sock来同步数据。
故障:mysql.sock经常无故丢失,查看日志、history找不到任何被删除的迹象。
问题分析与解决:Google了一下,发现是tmpwatch自动删除机制导致的。处理思路如下
      分析tmpwatch,发现有个tmpwatch的脚本
     cat /etc/cron.daily/tmpwatch
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
-X '/tmp/hsperfdata_*' 240 /tmp
/usr/sbin/tmpwatch "$flags" 720 /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
    if [ -d "$d" ]; then
/usr/sbin/tmpwatch "$flags" -f 720 "$d"
    fi
done
这个脚本会删除/tmp目录下240小时没有被访问的文件。

使用stat命令去查看/tmp目录下其他文件的atime,ctime,mtime
root># stat slow_tmp_3308.txt 
  File: `slow_tmp_3308.txt'
  Size: 80537427   Blocks: 157472     IO Block: 4096   regular file
Device: 802h/2050d Inode: 4681258     Links: 1
Access: (0777/-rwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2014-08-19 10:11:54.000000000 +0800
Modify: 2014-08-19 09:59:22.000000000 +0800
Change: 2014-08-19 10:11:54.000000000 +0800

理论上来说,做一次cat、head等读取操作,这个atime就可以改变。但是实际操作后atime没有发生变化。

继续深挖,查看/etc/fstab文件,发现为了提高系统性能,/tmp目录加上了noatime属性。
总不能为了这一个文件,把系统的noatime属性去掉吧。

解决办法:

1.去掉/tmp目录的atime属性即可
2.使用脚本重建tmp目录下的mysql.sock

#!/bin/sh
#此脚本是用来重新生成tmp目录下的mysql.sock,防止tmpwatch清理tmp目录后导致goldengate中断
#Written By:Li Hui
#Date:2014-09-11

 

#先关闭goldengate同步
cd /data/mysql_ogg/

 

rlwrap ./ggsci stop xxx *
EOF

 

#重建mysql.sock

 

rm /tmp/mysql.sock
ln -s /data/mysqldata/3308/mysql.sock /tmp/mysql.sock

 

#开启goldengate同步
rlwrap ./ggsci start xxx
EOF


rlwrap ./ggsci start xxx
EOF




     
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
11月前
|
关系型数据库 MySQL 数据库
cant connect to local MySQL server through socket /tmp/mysql.sock (2)
cant connect to local MySQL server through socket /tmp/mysql.sock (2)
149 0
cant connect to local MySQL server through socket /tmp/mysql.sock (2)
|
关系型数据库 MySQL 数据库
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
85 0
|
SQL 关系型数据库 MySQL
socket=/tmp/mysql.sock是干什么的?底层原理是什么?
socket=/tmp/mysql.sock是干什么的?底层原理是什么?
1352 0
|
关系型数据库 MySQL Linux
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
144 0
|
关系型数据库 MySQL Ruby
Ruby on Rails 3 Can't connect to local MySQL server through socket '/tmp/mysql.sock' on linux
<p><span style="font-family:Arial,Helvetica Neue,Helvetica,sans-serif; color:#222426"><span style="font-size:13px; line-height:16.9px">Ruby on Rails 3 Can't connect to local MySQL server through s
1637 0
|
18天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
下一篇
无影云桌面