mysql_upgrade 升级错误出现 table doesn’t exist 错误整理

从 MySQL 官方的 5.1.48 版本升级到 Percona 5.1.73 版本, 在使用 mysql_upgrade 的时候出现一些错误, 该原因可能为innodb表文件丢失或损坏, 或使用了不正确的方式删除表. 错误信息如下所示: [root@cz ~]# cd /opt/Percona-Server-5.1.73-rel14.12-624.Linux.x86_64/ [root@cz Percona-Server-5.1.73-rel14.12-624.Linux.x86_64]# ./bin/mysql_upgrade -S /export/mysql/node3307/data/s3307 -p --verbose...

MySQL Router 测试使用

MySQL Router 测试使用 1. 特性 MySQL Router 并没有包括一些特别新的特性, 总体上看中规中矩, 不过 first-available 和插件两个特性挺有意思, 后续会进行讲解, 特性包括: 对连接请求进行路由; 和 Fabric 配套使用, 方便管理; 插件特性, 需要的功能以插件形式提供; 2. 配置 MySQL Router...

TCPDUMP 高级规则使用

概述 在了解 tcpdump 的高级规则之前, 需要对 IP, TCP 和 UDP 的报文首部有大致的了解, 实际上很多网络工具的使用都是基于报文首部的结构做相应的操作. 在了解报文结构后, 也可以按需实现私有的功能, 比如抓取匹配的请求, 再做相应的处理, Snapper 就是根据 TCP 首部信息实现的一个简单的 DoS 防御工具, 详见 https://github.com/vr000m/Snapper, 依次推论, 可以实现更细致的功能,...

Qtunnel 加密数据库主从复制通道

Qtunnel 加密数据库主从复制通道 链接见: https://github.com/getqujing/qtunnel https://github.com/arstercz/qtunnel 背景 在异地机房的环境下, MySQL 数据同步复制基于 tcp 的明文传输, slave 接收到的 sql 语句可以很容易的被监听到, 对于敏感数据, 这种简单的异地复制是很危险的方式. 当然机房之间如果已经打通或有 vpn 互相通信就可以忽略该文的介绍. 另外也可以通过 MySQL 内置的 tls/ssl 方式实现复制,...

重启 iptables 影响 nf_conntrack 参数说明

今天在新机房的机器上重启 iptables 后发现 net.nf_conntrack_max(最大跟踪的连接数) 会恢复成默认的 65536(RAM > 4G时, 该值默认为 65536), 在 stop iptables 后, 通过命令 sysctl -a |grep nf_conntrack 查看已经不存在 nf_conntrack 模块相关的参数信息. 从这点来看参数恢复成默认值本质上是因为在重启 iptables 的过程中重新加载了...

监控及解析java thread信息

参考 java-thread-monitor-and-dumper” jstack-profiler jvm-tools 监控 java thread 脚本通过 jstack 打印java 进程中的线程信息, 为避免进程重启带来的影响, 脚本通过选项 procuniqueid 唯一标识进程, 再通过标识跟踪相应 java 进程的信息. 该脚本可以很好的跟踪 java thread 线程持续增加的情况. 使用: # su...

为什么修改表后ibd文件这么大

最近碰到一个很奇怪的问题, 在更改一个 MyISAM 表为 InnoDB 存储引擎后, 表数据文件变的非常大. 原始的表为 MyISAM 引擎, 数据文件和索引文件如下所示: -rw-r----- 1 mysql mysql 8.7K Aug 17 13:34 user_follow.frm -rw-r----- 1 mysql mysql 1.9G...

pcstat 如何获取内存页信息

1. 介绍 详见: https://github.com/tobert/pcstat pcstat 是 page cache stats 的缩写, 使用该工具可以帮助我们判断一个文件是否被 Linux cache 缓存, 或获取进程在 cache 中的缓存信息. 这在调优数据库或诊断其他 IO 密集型应用的场景下会有所帮助. 该工具的输出有多种格式, 选项包括: Usage of ./pcstat:...

了解 select count(*), count(1) 和 count(field)

我们以 MySQL 中的聚合函数 count 来说明 count(*), count(1) 和 count(field) 三者之间的关系以及背后的原理. 概念 http://dev.mysql.com/doc/refman/5.6/en/group-by-functions.html#function_count COUNT(expr) 函数返回 select 语句中表达式 expr 非 null 值的数量, 返回值类型为 bigint. Returns a count...

MySQL slave 延迟复制

MySQL slave 延迟复制 延迟复制是一个很简单的概念,区别于传统的异步复制(接近实时), 比如用户误操作, 删除了重要的表, 延迟复制特性保证了用户有机会从延迟的 slave 中恢复误删除的表. 该特性的问题在于需要保证用户有足够的时间从 slave 阻止误操作复制的发生. 要理解该特性如何实现, 我们先简单回顾下 MySQL replication 如何实现, 见下图: 当 master 有一个更新操作(create, drop, delete, insert, update...