首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在创建主从关系时如何避免服务器停机?

在创建主从关系时如何避免服务器停机?
EN

Server Fault用户
提问于 2011-11-18 12:04:06
回答 2查看 3.9K关注 0票数 6

我正在准备建立一个MySQL主从或主从关系.现在我只有一台MySQL生产服务器,当然,在连接从服务器时,我不希望有太多的停机时间。

我没有办法连接一个空的从机,让它“慢慢”地同步来自主站的数据,直到它们是相同的?

我已经注意到,我可以在主服务器上使用mysqldump进行事务转储,然后将其导入到从属程序中,但是当奴隶导入转储时,将会编写很多新行,而奴隶将如何获得这些数据呢?

我希望我在这里遗漏了一些显而易见的东西,但是广泛的googling给出了这样的建议,比如“由于这会导致未来的停机时间减少,所以现在的一些停机时间可能并不是什么坏事”。但我真的很想避免那样做。

相关的关于MyISAM的问题,但我使用InnoDB。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2011-11-18 13:12:53

如果你使用的是100%的InnoDB,那么你是幸运的。您可以使用XtraBackup对主数据库进行完全备份,而无需任何停机时间或任何表锁定。这将是一个一致的快照样式备份,与执行FLUSH TABLES WITH READ LOCK--master-data选项时得到的类型相同。

XtraBackup工具还在备份目录中删除一个额外的文件,其中包含在从服务器上开始复制所需的MASTER_LOG_POS和MASTER_LOG_FILE信息。

备份完成后,您将需要在备份上运行XtraBackup的--prepare选项,将其加载到从进程中,重新启动从MySQL进程,并告诉它它需要的新MASTER_LOG_POS和MASTER_LOG_FILE值。

在启动奴隶之前,您需要在您的skip-slave-start中使用my.cnf。

还请记住,默认情况下,mysql模式是MyISAM (如果内存服务正确,只能是MyISAM),因此在运行备份时,您仍然必须小心不要对这些表进行任何更改。只要你坚持这条规则,主信息仍然是正确的。

在从服务器上使用忽略mysqlmy.cnf中的模式通常是个好主意,并且只创建具有选择特权的用户。不一致和不同步的奴隶很难检测和处理痛苦,即使在使用Percona (和之前的Maatkit )提供的工具时也是如此。

编辑:

虽然您说您正在使用InnoDB,但为了完整性起见,如果您使用MyISAM表,还有另一种方法。如果有带有快照的卷管理器(如ZFSLVM),则可以运行FLUSH TABLES WITH READ LOCKSHOW MASTER STATUS,创建快照并运行UNLOCK TABLES。停机时间应该是相当小的。相比之下,昨晚用于备份一个数据库的cron作业用了6秒来创建快照,这是数据库处于“下线”的位置,将文件从快照复制到备份服务器需要27分钟。

票数 8
EN

Server Fault用户

发布于 2011-11-18 12:39:53

不可能“从头开始”启动mysql复制。

相反,在转储数据库时,可以将mysqldump与--master-data=2参数一起使用--例如:

代码语言:javascript
复制
mysqldump --master-data=2 --all-databases --opt -p > myinitialdump.sql

此命令将在转储期间锁定受影响数据库中的所有表,并以注释方式将复制坐标写入转储的标头,如下所示:

代码语言:javascript
复制
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000018', MASTER_LOG_POS=106;

导入完成后,您可以手动运行"change master to“命令,该命令以主机名和身份验证数据为调料--复制将在转储点启动。

请记住,mysqldump进程本身由于锁定争用而导致“停机时间”--它在转储的整个期间对所有表放置读锁(类似于带有读锁命令的同花顺表)。因此,除非转储完成,否则写入任何表的请求都不会返回。而且,除非您在低_优先级_更新配置中指定了MySQL,或者在转储之前发出了设置全局LOW_PRIORITY_UPDATES=1,否则写入请求可能也会阻止任何子序列读取请求。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/332339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档