当前位置:Gxlcms > 数据库问题 > [转]MySQL主从复制原理介绍

[转]MySQL主从复制原理介绍

时间:2021-07-01 10:21:17 帮助过:2人阅读

代码如下:

mysql>SHOW MASTER STATUS;

4. 释放锁:

代码如下:

mysql> UNLOCK TABLES;

方法二:

一个可选择的方法是,转储主服务器的SQL来代替前面步骤中的二进制复制。要这样做,你可以在主服务器上使用mysqldump –master-data,以后装载SQL转储到到你的从服务器。然而,这比进行二进制复制速度慢。

六、其他注意事项

1.不能从使用新二进制日志格式的主服务器向使用旧二进制日志格式的从服务器复制。
2.升级从服务器时,应先关闭从服务器,升级到相应5.1.x版本,然后重启从服务器并重新开始复制。5.1版本的从服务器能够读取升级前写入的旧的中继日志并执行日志中包含的语句。升级后从服务器创建的中继日志为5.1格式。

3.必须在主服务器和从服务器上总是使用相同的全局字符集和校对规则(–default-character-set、–default- collation)。否则,会在从服务器上遇到复制键值错误,因为在主服务器的字符集中被认为是唯一的键值在从服务器的字符集中可能不是唯一的。
4.Q:从服务器需要始终连接到主服务器吗?
A:不,不需要。从服务器可以宕机或断开连接几个小时甚至几天,重新连接后获得更新信息。

5.Q:我怎样知道从服务器与主服务器的最新比较? 换句话说,我怎样知道从服务器复制的最后一个查询的日期?
A:你可以查看SHOW SLAVE STATUS语句的Seconds_Behind_Master列的结果。

6. Q:我怎样强制主服务器阻塞更新直到从服务器同步?
A:使用下面的步骤:
1. 在主服务器上,执行这些语句:

复制代码 代码如下:

mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;

记录SHOW语句的输出的日志名和偏移量。这些是复制坐标。

2.在从服务器上,发出下面的语句,其中Master_POS_WAIT()函数的参量是前面步骤中的得到的复制坐标值:
mysql> SELECT MASTER_POS_WAIT(‘log_name‘, log_offset);
SELECT语句阻塞直到从服务器达到指定的日志文件和偏移量。此时,从服务器与主服务器同步,语句返回。

3.在主服务器上,发出下面的语句允许主服务器重新开始处理更新:

代码如下:

mysql> UNLOCK TABLES;

7.Q:怎样通过复制来提高系统的性能?
A:你应将一个服务器设置为主服务器并且将所有写指向该服务器。然后根据预算配置尽可能多的从服务器以及栈空间,并且在主服务器和从服务器之间分发读取操作。你也可以用–skip-innodb、–skip-bdb、–low-priority-updates以及–delay-key- write=ALL选项启动从服务器,以便在从服务器端提高速度。在这种情况下,为了提高速度,从服务器使用非事务MyISAM表来代替InnoDB和 BDB表。

[转]MySQL主从复制原理介绍

标签:

人气教程排行