我们有mysql集群,包括master,slave和hot standby。有一张表有3000万条记录,表的字符集是utf8。我想将这些表的字符集更新为utf8mb4字符集,而不需要停机并且不会破坏复制。如果有任何方式可以执行此活动,请告诉我。提前致谢。
答案 0 :(得分:1)
Percona为此提供了一个名为pt-online-schema-change的免费工具。
它的作用是在原始表上创建表的副本和一些触发器。在您的操作运行时,触发器会将数据复制到备份中。完成后,两个表以原子方式交换。没有停机时间,没有数据丢失。但请确保,您已经没有触发器了。
答案 1 :(得分:0)
查询将是
ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;