更新时间:2024-07-24
复制使数据能够从一台 MySQL 数据库服务器(称为源)复制到一台或多台 MySQL 数据库服务器(称为副本)。复制默认是异步的;副本不需要永久连接即可从源接收更新。
MySQL 中复制的优点包括:
- 横向扩展解决方案 - 在多个副本之间分散负载以提高性能。在此环境中,所有写入和更新都必须在源服务器上进行。然而,读取可能发生在一个或多个副本上。该模型可以提高写入性能(因为源专用于更新),同时显着提高越来越多副本的读取速度。
- 数据安全——由于副本可以暂停复制过程,因此可以在副本上运行备份服务,而不会损坏相应的源数据。
- 分析 - 可以在源上创建实时数据,同时可以在副本上进行信息分析,而不会影响源的性能。
- 远距离数据分发 - 您可以使用复制来创建数据的本地副本以供远程站点使用,而无需永久访问源。
复制过程:
- 从库会生成两个线程,一个I/O线程,一个SQL线程;
- I/O线程会去请求主库的binlog,并将得到的binlog写到本地的relay-log(中继日志)文件中;
- 主库会生成一个log dump线程,用来给从库I/O线程传binlog;
- SQL线程,会读取relay log文件中的日志,并解析成sql语句逐一执行。