Mysql 优化存储2

2022-03-21 18:28:11 浏览数 (3)

获取一致性检查结果

percona-toolkit 中提供一个叫 pt-table-sync 的工具,可以获取一致性检查结果

代码语言:javascript复制
[root@opti-master checkdb]# pt-table-sync --replicate ptcheck.checksum  h=opti-slave,u=ptcheck --ask-pass  --sync-to-master --databases=youku_db,jd_db,elearning_db,bat_db --print > /tmp/users.sql
Enter password for opti-slave: [root@opti-master checkdb]# 
[root@opti-master checkdb]# cat /tmp/users.sql 

[root@opti-master checkdb]#

其实这个工具是用来根据 pt-table-checksum 生成的结果来同步差异部分的,但是如若不使用 --execute 就不会执行,使用 --print 可以打印出差异的部分,我们就是通过有无差异的记录条目来确认一致性

从结果来看,是空的,说明主备数据是一致的

Note: 此时指定的host要是slave,也就是待检查的对象


停止复制

在待优化的slave上停止复制

代码语言:javascript复制
mysql> show slave statusG
mysql> stop slave;

停止复制后,最好再使用一个文本记录一下当前的position,以避免窗口信息丢失后,又执行了reset slave命令产生不良后果


生成优化语句

代码语言:javascript复制
mysql> select concat('optimize table ',TABLE_SCHEMA,'.',TABLE_NAME,';')  from information_schema.TABLES where (ENGINE='MyISAM' or ENGINE='InnoDB') and TABLE_SCHEMA!='information_schema' and TABLE_SCHEMA!='mysql'  into  outfile  "/tmp/optimize.sql";
Query OK, 365 rows affected (0.09 sec)

mysql> 

1 人点赞