Answers:
我假设您使用InnoDB作为存储引擎。如果是这样,则需要打开bin-logging。如果现在不在,则需要在修改my.cnf之后重新启动MySQL。这是唯一的停机时间,之后您可以在不阻塞数据库的情况下以binlog位置进行数据库转储:
mysqldump --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 -A
基于此备份,还原从站上的数据。之后,您可以按照任何MySQL复制教程进行操作,并让从属服务器与主服务器一起追赶/运行。
要开始复制,您需要在从属服务器上具有一致的数据库副本
您的表是否支持myisam或innodb?找出问题
show table status
然后查看“引擎”列
如果所有表都是innodb,则可以使用mysqldump --single-transaction将停机时间设置为零,并将其导入从服务器
如果表是myisam,则必须停机,因为在复制表时必须锁定表以进行写入。mysqlhotcopy是可以帮助您的工具。
或者,如果您正在使用LVM(逻辑卷管理器),则可以停止数据库,在几秒钟内拍摄LVM快照,然后再次启动数据库。然后,您可以从快照制作一致的副本。