MySql – 以最短的停机时间创建复制
作者:互联网
我有一个~80GB的MySql DB.
我想在当前DB作为主数据库并为其设置从属数据库的同时在该数据库上创建复制.
我的主要问题是如何将数据(所有80GB)从主设备移动到新的从设备,并尽可能减少停机时间,最好不要停机.
我最初的想法是停止数据库(在获取日志位置后),然后从mysqldata lib复制文件,然后重新启动服务器,但只需复制文件大约需要2个小时.
有什么想法吗?
解决方法:
On June 16, 2011, I wrote a post contrasting doing an rsync versus using XtraBackup.
On May 23, 2011, I discussed what considerations to make when doing this kind of backup.
我不是重新发明轮子并重写我在这些帖子中写过的信息,而是简单地提供了链接到我自己的帖子来解决这个问题.
请仔细阅读.
试试看 !!!
警告
我的rsync算法中唯一的停机时间是在您按指定执行多个rsyncs后,关闭mysql,再执行一次rsync,然后启动mysql.
我想澄清关闭的原因:
当你关闭mysql时:
>所有打开的MyISAM表都已关闭,有一个标题可以标记MyISAM表打开了多少个文件句柄.必须为零(0)才能使表格正常.否则,此标头字段中具有非零值的已关闭MyISAM表会将表标记为崩溃并需要进行表修复.关闭mysql可以清除所有这些.
>所有在缓冲池中具有标记为脏的数据页或索引页的InnoDB表都需要刷新到磁盘.执行关闭会触发缓冲池的完全刷新.当然,池越大,脏页数越多,缓冲池刷新时间就越长.要缩短mysqld关闭的这个阶段,运行SET GLOBAL innodb_max_dirty_pages_pct = 0;在执行任何rsyncs之前.所有交易均已完成(已提交或已回滚).
标签:mysql,replication,database-replication 来源: https://codeday.me/bug/20190518/1126587.html