Ran*_*Ran 5 mysql replication database-replication
我有一个~80GB的MySql DB.
我想在当前DB作为主数据库并为其设置从属数据库的同时在该数据库上创建复制.
我的主要问题是如何将数据(所有80GB)从主设备移动到新的从设备,并尽可能减少停机时间,最好不要停机.
我最初的想法是停止数据库(在获取日志位置后),然后从mysqldata lib复制文件,然后重新启动服务器,但只需复制文件大约需要2个小时.
有什么想法吗?
2011年7月8日,我提出了类似的问题.我编写了可以删除二进制日志并开始执行rsync的脚本.
在2011年6月16日,我写了一篇文章,对比使用rsync而不是使用XtraBackup.
2011年5月23日,我讨论了在进行此类备份时要考虑的因素.
我不是重新发明轮子并重写我在这些帖子中写过的信息,而是简单地提供了链接到我自己的帖子来解决这个问题.
请仔细阅读.
试试看 !!!
警告
我的rsync算法中唯一的停机时间是在您按指定执行多个rsyncs后,关闭mysql,再执行一次rsync,然后启动mysql.
我想澄清关闭的原因:
当你关闭mysql时:
所有打开的MyISAM表都已关闭,有一个标题可以标记MyISAM表打开了多少个文件句柄.必须为零(0)才能使表格正常.否则,此标头字段中具有非零值的已关闭MyISAM表会将表标记为崩溃并需要进行表修复.关闭mysql可以清除所有这些.
所有在缓冲池中具有标记为脏的数据页或索引页的InnoDB表都需要刷新到磁盘.执行关闭会触发缓冲池的完全刷新.当然,池越大,脏页数越多,缓冲池刷新时间就越长.要缩短mysqld关闭的这个阶段,请在执行任何rsyncs之前运行SET GLOBAL innodb_max_dirty_pages_pct = 0;.所有交易均已完成(已提交或已回滚).