有效的升级 MySQL 库中所有表的字段属性
背景介绍 本文基于一个 discuz 论坛表的需求描述 – 将论坛中所有表为 mediumint(8) 的字段升级为 int(10), 以存储更大的用户 id 信息; 通过批量升级字段的方式也适用于其它相关的需求. 顺便吐槽下 discuz 这么多年以来对基础表的优化接近于无, 在用户较多或访问较频繁的场景下, 基础表的结构依然缺乏比较完善的设计. 步骤 考虑到论坛运行一段时间后, 一些表会比较大, 如果业务需要持续运行的话, 不太适合直接 alter table...
MySQl schema 表变更版本管理
https://github.com/nomad-software/snap https://github.com/arstercz/snap 注: 笔者新启 snap 分支项目后, 做了以下改动: 修复 cli 命令行需要返回 error 信息的错误; 增加 clear 选择删除指定库的版本控制信息; 更多信息参见 snap 链接 snap 用途概述 在开发过程中, 我们经常需要对核心的库表结构进行调整, 新建表, 增删字段等都需要记录以便和线上的环境区别开, 亦可以和相关的代码对应起来方便功能的追溯....
Common utilities for sysadmin/dba
sys-toolkit Some useful scripts to sysadmins/dbas. read more from: https://github.com/arstercz/sys-toolkit toolkit lists: sys-genpass sys-nton sys-pubip sys-ascii sys-ipton sys-lock-run sys-repeat sys-checkport sys-echo-stderr sys-php-chroot sys-tcp-port-proxy sys-shell-type sys-memory-maps...
PERCOBA XTRADB CLUSTER介绍及使用(五)
Galera cluster 限制 Galera cluster 由于自身设计的原因存在几个限制, 开发者或 DBA 应该需要注意在标准的 MySQL Server 中(包括 MariaDB 和 Percona) 一些特性在 Galera cluster 中并不可用. Galera cluster 只能运行在 Linux/Unix 系统中, Windows...
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...