数据库
首页 > 数据库> > MySql – 以最短的停机时间创建复制

MySql – 以最短的停机时间创建复制

作者:互联网

我有一个~80GB的MySql DB.

我想在当前DB作为主数据库并为其设置从属数据库的同时在该数据库上创建复制.

我的主要问题是如何将数据(所有80GB)从主设备移动到新的从设备,并尽可能减少停机时间,最好不要停机.

我最初的想法是停止数据库(在获取日志位置后),然后从mysqldata lib复制文件,然后重新启动服务器,但只需复制文件大约需要2个小时.

有什么想法吗?

解决方法:

On July 8, 2011 I addressed a similar question. I wrote scripts that would zap binary logs and starting performing an rsync.

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