如何以最少的停机时间设置 MySQL 复制

Pat*_*ick 13 mysql-replication master-slave

基本上,我们有一个大型 MySQL 数据库,我们希望复制到从站(主从设置)。你们有关于如何在数据库停机时间最短的情况下做到这一点的分步指南吗?备份数据库并将备份传输到从服务器(甚至通过专用网络)大约需要 40 分钟。相当长的停机时间。

pQd*_*pQd 17

我假设您使用 InnoDB 作为存储引擎。如果是这样,您需要打开bin-logging。如果现在没有开启,修改my.cnf后需要重启MySQL。这是唯一的停机时间,之后您可以在不阻塞数据库的情况下使用 binlog 位置转储数据库:

mysqldump --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 -A
Run Code Online (Sandbox Code Playgroud)

基于这个备份,在从机上恢复数据。在此之后,您可以按照任何MySQL 复制教程进行操作,并让从站与主站一起赶上/运行。


hel*_*oel 1

为了设置从站,您需要拍摄数据快照并记录二进制日志位置。备份数据库不应导致停机,尽管它会导致性能下降,但您已经备份了数据库,对吗?您可能会发现备份需要锁定某些表,这可能会导致您的应用程序锁定,确实需要查看它是如何实现的。

可以给磁盘做个快照吗?如果可以进行热备份,这将大大减少停机时间。