使用不同的configuration镜像MySQL服务器

我必须将MySQL服务器迁移到不同的数据中心,所以我想在新的DC中创build另一个MySQL从服务器,然后再将其提升为主服务器。 我以前使用LVM快照和Percona XtraBackup来达到这个目的。 不过,这一次我已经优化了MySQLconfiguration文件,阻止我使用这些方法。

Old server (backup): innodb_log_file_size = 256M innodb_log_files_in_group = 3 New server (restore): innodb_log_file_size = 512M innodb_log_files_in_group = 2 

XtraBackup脚本和LVM快照复制整个目录结构,所以MySQL服务器不会启动,因为InnoDB日志的大小不同。

在这种情况下是否有解决scheme来避免停机? 我不能使用mysqldumps,因为有大约8000个数据库。 既然如此,我将不得不把服务器closures几个小时。

我也在考虑在XtraBackup上使用旧的设置,然后在新的服务器升级到无主服务器的情况下进行更改,但是我不确定这是否会起作用?

谢谢

问候

“大约8000个数据库,所以我不得不把服务器closures几个小时。”

是否已经有另外一台从服务器可以作为临时主服务器使用?

是mysqldump的性能问题或locking的问题(在后一种情况下 – 单事务 – 主数据可能是可行的。顺便说一句,不要依靠 – 触发器或 – 例程默认!)

我认为后面的这个build议听起来是最好的,你说的总尺寸是多less?

创build一个innobackupex FULL转储并将其转移到新的数据中心似乎相当简单,然后将新的服务器与xtrabackup转储一起提交,但使用旧的innodb设置。

一旦以只读模式运行,你可以mysqldump它,提供一个SQL文件,你可以在任何地方导入。

然后,您可以使用新的innodb设置将转储文件重新加载到新的mysql实例中。

我将从LVM快照和原始设置开始。 调出新的服务器。 关掉它。 检查它是否干净地退出。 移动日志文件,更改configuration,然后重新启动。 Mysql应该创build新的,并且你已经设置好了。

更深入的解释在这里。

你也可以阅读如何计算良好的Innodb日志文件大小/