|
本帖最后由 xfzhi888 于 2012-10-26 11:26 编辑
1.怎样强制主服务器阻塞更新直到从服务器同步?
看到很多朋友在说为何强制阻塞,在此就不讨论为何要强制阻塞更新了。
仅说说版主的问题,怎么强制主服务器阻塞更新。
操作如下:
1).主服务器执行以下语句
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
记录SHOW语句的输出的日志名和偏移量
2).从服务器执行以下语句
mysql> SELECT MASTER_POS_WAIT('log_name', log_offset);
SELECT语句阻塞直到从服务器达到指定的日志文件和偏移量。此时,从服务器与主服务器同步,语句返回
3).在主服务器上,执行下面的语句允许主服务器重新开始处理更新
mysql> UNLOCK TABLES;
2.MySQL复制能够何时和多大程度提高系统性能?
MySQL的复制不仅限于支持故障恢复,它还可用于读操作的横向扩展(scaleout),它可以实现大量服务器的高效复制。对于那些读频繁的应用,在商用硬件上支持大量查询是一个低成本的有效策略。
MySQL复制还有其他有用的应用。在线DDL是关系型数据库管理系统中非常复杂的一个特性。MySQL不支持在线DDL,但通过使用复制,往往可以足够好地部分实现它。
3.如何使用复制来提供冗余/高可用性?
复制是将主数据库的DML操作通过日志传到从服务器上,使得从服务器实现了对主服务器的远程备份,并且可以通过应用使得在主服务器繁忙的时候分担一部分负载。mysql支持同时向多台从服务器进行复制,从而提供冗余。缺点:不能保证主从同步,只能实现异步复制。目前Mysq形成很多套实现高可用方案,并且均都已在生产环境中应用,主要为这几种:mysql + replication 、mysql + heartbeat + 存储、mysql + drbd + heartbeat 、 mysql cluster。
客户可以从以上方案中综合费用和数据安全、时效性进行综合考虑选择。
另外大家可以看看这本美国人写的《高可用MySQL:构建健壮的数据中心 》(已被国内翻译)可以更深入的去理解mysql 的复制应用,以及如何构建高可用性和高性能的mysql数据库。
|
|