6.2. Replication Implementation Overview
Each slave server receives from the master the saved updates(in binary log) that the master has recorded in its binary log, so that the slave can execute the same updates on its copy of the data.
It is extremely important to realize that the binary log is simply a record starting from the fixed point in time at which you enable binary logging. Any slaves that you set up need copies of the databases on your master as they existed at the moment you enabled binary logging on the master . If you start your slaves with databases that are not in the same state as those on the master when the binary log was started, your slaves are quite likely to fail.
【The Limitations about 'Load Data From Master'】
One way to copy the master's data to the slave is to use the LOAD DATA FROM MASTER
statement. However, LOAD DATA FROM MASTER
works only if all the tables on the master use the MyISAM
storage engine. In addition, this statement acquires a global read lock, so no updates on the master are possible while the tables are being transferred to the slave. (当执行load data from master时,不允许多master进行更新操作。) When we implement lock-free hot table backup (允许源表边更新,边同步的热备份好像是件挺棘手的工作) , this global read lock will no longer be necessary.
Due to these limitations , we recommend that at this point you use LOAD DATA FROM MASTER
only if the dataset on the master is relatively small , or if a prolonged read lock on the master is acceptable .
(由于这些诸多限制(limitations),建议您在使用Load Data From Master时,master上的数据集相对较小,或者master库上可以容忍长时间的Read Lock。)
(一秒钟能够同步1M的数据,环境是CPU-700MHz,网络是100M)
Although the actual speed of LOAD DATA FROM MASTER
may vary from system to system, a good rule of thumb for how long it takes is 1 second per 1MB of data. This is a rough estimate (大概的估计), but you should find it fairly accurate (相当精确) if both master and slave are equivalent to 700MHz Pentium CPUs in performance and are connected through a 100Mbps network.
After the slave has been set up with a copy of the master's data , it connects to the master(capture program) and waits for updates to process.(同步程序分两步:1、load data from master; 2、capture updates happened on the master and apply to the slave)
If the master fails, or the slave loses connectivity with your master, the slave keeps trying to connect periodically until it is able to resume listening for updates. The --master-connect-retry
option controls the retry interval. The default is 60 seconds.(断开重连机制,重连间隔是可配的,默认是60s。)
Each slave keeps track of where it left off when it last read from its master server.(slave都会记录上一次读的"断点" 。) The master has no knowledge of how many slaves it has or which ones are up to date at any given time.