Mysql数据库同步Replication(三):相关SQL语句

四、用于控制主、从服务器的SQL语句

  1.用于控制主服务器的SQL语句

PURGE MASTER LOGS

用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除,这样被给定的日志成为第一个。

RESET MASTER

可以删除列于索引文件中的所有二进制日志,把二进制日志索引文件重新设置为空,并创建一个新的二进制日志文件。 来自方山子的博客 http://www.fangshanzi.com/

SET SQL_LOG_BIN

如果客户端使用一个有SUPER权限的账户连接,则可以禁用或启用当前连接的二进制日志记录。如果客户端没有此权限,则语句被拒绝,并伴随有错误。

SHOW BINLOG EVENTS

用于在二进制日志中显示事件。如果您不指定’log_name’,则显示第一个二进制日志。

SHOW MASTER LOGS    用于列出服务器中的二进制日志文件。
SHOW MASTER STATUS  用于提供主服务器二进制日志文件的状态信息。
SHOW SLAVE HOSTS    用于显示当前使用主服务器注册的复制从属服务器的清单。

  2.用于控制从服务器的SQL语句

  CHANGE MASTER TO  可以更改从属服务器用于与主服务器进行连接和通讯的参数。
  LOAD DATA FROM MASTER  用于对主服务器进行快照,并拷贝到从属服务器上。
  LOAD TABLE tbl_name FROM MASTER  用于把表的拷贝从主服务器转移到从属服务器。
  MASTER_POS_WAIT()
  这实际上是一个函数,而不是一个语句。它被用于确认,从属服务器已读取并执行了到达主服务器二进制日志的给定位置。
  RESET SLAVE   用于让从属服务器忘记其在主服务器的二进制日志中的复制位置。
  SET GLOBAL SQL_SLAVE_SKIP_COUNTER  从主服务器中跳过后面的n个事件。要复原由语句导致的复制中止,这是有用的。
  SHOW SLAVE STATUS  用于提供有关从属服务器线程的关键参数的信息。
  START SLAVE  用于启动从属服务器线程
  STOP SLAVE  用于中止从属服务器线程

以上内容摘自MySQL官方手册,具体用法详见:http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#reset-master 来自方山子的博客 http://www.fangshanzi.com/

3. 主从复制如何提高可靠性

主从单向复制,从服务器只是实时的保存了主服务器的一个副本。当主服务器发生故障时,可以切换到从服务器继续做查询,但不能更新。

如果采用双向复制,即两台mysql服务器即作为主服务器,又作为从服务器。那么两者都可以执行更新操作并能实现负载均衡,当一方出现故障时,另一方不受影响。但是,除非能保证任何更新操作顺序都是安全的,否则双向复制会导致失败。

为了更好的提高可靠性和可用性,需要当主服务器不可用时,令从服务器成为Master。原来的主服务器设定为Slave,并从新的Master上同步更新。现在已经有了一个这样开源解决方案[MySQL Master-Master Replication Manager],后面我会在写一篇关MySQL MMM架构的方案,敬请期待!来自方山子的博客 http://www.fangshanzi.com/

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注