s for hehehehhe@10.166.129.226; ? ? || show grants for root@127.0.0.1; ? ? ? ? ? ? ?|| show grants for root@::1; ? ? ? ? ? ? ? ? ? ?|| show grants for root@TENCENT64.site; ? ? ? ? || show grants for root@localhost; ? ? ? ? ? ? ?|+----------------------------------------------+9 rows in set (0.00 sec)
?
然后将show grants语句放到脚本中,运行脚本获取到旧机器上相关授权信息。
最后,在新机器上运行之前获得的授权信息脚本,即可导入相关权限。
注意,这里可能出现报错,
数据库不存在的情况下将相关权限导入,所以在导入前需要过滤下。
?
0x06 数据校验与业务验证
数据校验和业务验证不是我们要讲的重点,但是是
数据库迁移不可缺少的一部分。
验证数据的方式有两种:
1.查看数据记录与主从同步状态,可以简单快速判断,但是不是最准确的。
2.通过跑脚本,校验数据库下每个表的checksum值,准确,可能会有些慢。
3.通过Percona Toolkit for MySQL 工具中pt-table-checksum来进行主从校验.
?
0x07 常见问题分析与解决
?
?
1. MyIsam存储引擎 锁表导致服务中断,影响到业务。
?
? 之前与互娱的兄弟在RTX沟通,备份数据时MyISAM锁表时间过久导致服务出现异常,所以我们一般建议搭建专门的备机进行备份数据,以及尽量用INNODB存储引擎。
?
2.数据校验时,用percona的工具发现数据不一致,处理数据时发现自增ID发生变化,通过自增ID查不到指定的业务数据
?
数据不一致时优先使用pt-table-sync进行修复,但是这个修复方式是缺少时插入,冲突时replace,自增ID会发生变化。
?
建议自增ID不要作为业务属性使用。
?
3.占坑,未完待续,欢迎一起续写。
?
0x08 其他
一切皆有可能,在实验环境多去实践会降低出问题时空手无策的几率。
还好这次迁移MySQL版本比较高,要是碰到5.0或5.1那就坑死了。
感谢Percona,让一个二把手也可以保障mysql服务的稳定性。
感谢国家,感谢父母。
感谢一起讨论问题的你们。