建设网站的方案,网站建设要学哪些东西,织梦手机网站制作教程,wordpress 自动seo1.主从复制的原理
主从复制的原理是通过基于日志的复制方式实现数据的同步。当主服务器上发生数据变更时#xff0c;会将这些变更写入二进制日志#xff08;Binary Log#xff09;中。从服务器通过连接到主服务器#xff0c;请求从主服务器获取二进制日志#xff0c;并将…1.主从复制的原理
主从复制的原理是通过基于日志的复制方式实现数据的同步。当主服务器上发生数据变更时会将这些变更写入二进制日志Binary Log中。从服务器通过连接到主服务器请求从主服务器获取二进制日志并将这些日志应用到自己的数据库中。
主从复制的基本原理
1. 主服务器生成二进制日志在主服务器上所有的写操作例如插入、更新、删除都会被记录在二进制日志中。这些写操作以事件event的形式被记录下来二进制日志包含了数据库变更的详细信息。
2. 从服务器连接到主服务器从服务器通过连接到主服务器建立一个复制连接。在连接建立时从服务器会获取到主服务器上当前的二进制日志文件名和位置作为复制的起点。
3. 从服务器请求复制数据从服务器会向主服务器发送一个复制请求请求从当前的二进制日志位置之后的写操作事件。主服务器根据复制请求将二进制日志中的事件发送给从服务器。
4. 从服务器应用复制日志从服务器接收到主服务器发送的二进制日志后会解析并应用这些事件到自己的数据库中。从服务器会按照事件的顺序依次执行以保持数据的一致性。
5. 复制链路的维护和监控主从复制过程中主服务器会持续记录二进制日志而从服务器会持续请求和应用这些日志。复制链路需要进行监控和维护以确保复制的正常运行和数据的可靠性。
注主从复制是异步的从服务器在应用写操作之前并不等待主服务器的确认。因此从服务器上的数据可能会有一定的延迟。
1.2为什么要做主从复制 1. 提高读性能通过设置从服务器Slave读操作可以被分摊到主服务器Master和从服务器上从而提高整体的读取性能。主服务器负责处理写操作从服务器负责处理读操作从而降低主服务器的负载提升整个系统的吞吐量。
例如在业务复杂的系统中有这么一个情景有一句sql语句需要锁表导致暂时不能使用读的服务那么就很影响运行中的业务使用主从复制让主库负责写从库负责读这样即使主库出现了锁表的情景通过读从库也可以保证业务的正常运作。
2. 数据冗余和备份通过主从复制从服务器上的数据是主服务器的冗余副本。在主服务器发生故障时从服务器仍然可以提供服务并且可以通过将某个从服务器提升为新的主服务器来快速恢复服务。此外从服务器也可以用于定期的备份操作以确保数据的安全性和可恢复性。
3. 高可用性通过主从复制可以实现数据库的故障转移和高可用性。当主服务器发生故障时可以手动或自动将某个从服务器提升为新的主服务器继续提供数据库服务从而实现快速的故障恢复。
4. 数据分析和报表生成由于从服务器可以处理读操作可以将其用于数据库的数据分析和报表生成等工作。这样可以避免对主服务器造成额外的负载同时提供实时的数据分析和报表服务。
5. 数据分发和跨地域部署主从复制可以用于将数据分发到不同的地理位置的从服务器上从而实现跨地域的数据访问和部署。这对于全球化的应用程序和多地域灾备是非常有用的。
3、架构的扩展。业务量越来越大I/O访问频率过高单机无法满足此时做多库的存储降低磁盘I/O访问的频率提高单个机器的I/O性能。 1.3主从复制基本架构 主从复制是一种常用的数据备份和恢复方法。它的基本架构包括主服务器master和从服务器slave两部分。主服务器负责写操作而从服务器负责读操作。Mysql的主从复制中主要有三个线程masterbinlog dump thread、slaveI/O thread 、SQL thread 案例
主库192.168.227.133
从库192.168.227.134
主库配置
设置server-id值并开启binlog参数 [mysqld] log_bin mysql-bin server_id 120 更改配置文件后记得重启服务 systemctl restart mysqld 建立同步账号 grant replication slave on *.* to slave_test192.168.227.% identRedHat123RedHat123; 锁表设置为只读 mysql flush tables with read lock; #提示如果超过设置时间不操作会自动解锁。 mysql show variables like %timeout%; 查看主库状态 show master status; 备份数据库 mysqldump -uroot -p -A -B | gzip backup/mysql_bak.$(date %F).sql.gz 解锁
释放表的锁定状态。这样其他会话才能对表进行写入操作。 unlock tables 主库备份数据上传到从库 scp backup/mysql_bak.2023-07-17.sql.gz 192.168.136.135:backups/ 从库设置 [mysqld] server-id130 从库上还原主库的备份数据 gzip -d mysql_bak.2015-11-18.sql.gz mysql -uroot -p mysql_bak.2015-11-18.sql 设置主从同步 mysql change master to MASTER_HOST192.168.227.133, MASTER_PORT3306, MASTER_USERslave_test, MASTER_PASSWORedHat123, MASTER_LOG_FILEmysql-bin.000001, MASTER_LOG_POS756; 启动主从同步 mysql start slave; # 检查状态 mysql show slave status\G