当前位置:网站首页>Senior programmers must know and master. This article explains in detail the principle of MySQL master-slave synchronization, and recommends collecting
Senior programmers must know and master. This article explains in detail the principle of MySQL master-slave synchronization, and recommends collecting
2022-07-07 23:25:00 【u012804784】
High quality resource sharing
Learning route guidance ( Click unlock ) | Knowledge orientation | Crowd positioning |
---|---|---|
🧡 Python Actual wechat ordering applet 🧡 | Progressive class | This course is python flask+ Perfect combination of wechat applet , From the deployment of Tencent to the launch of the project , Create a full stack ordering system . |
Python Quantitative trading practice | beginner | Take you hand in hand to create an easy to expand 、 More secure 、 More efficient quantitative trading system |
1. MySQL Implementation of master-slave synchronization
MySQL Master slave synchronization is based on Bin Log Realized , and Bin Log What is recorded is the original SQL sentence .
Bin Log There are three log formats , Sure binlog_format Configuration parameter assignment .
Parameter values | meaning |
---|---|
Statement | Record original SQL sentence , This will cause the update time to be inconsistent with the original database . such as update_time=now() |
Row | Record the changes in each row of data , Ensure that the data is consistent with the original database , The disadvantage is the large amount of data . |
Mixed | Statement and Row Mixed mode of , By default Statement Pattern , Date involved 、 When the function is related, use Row Pattern , It reduces the amount of data , It also ensures data consistency . |
Common master-slave synchronization architectures include one master and multiple slaves 、 Two masters and many subordinates .
2. MySQL The role of master-slave synchronization
- Read / write separation , Improve database performance
- disaster recovery , When the primary server is unavailable , Provide services from the server , Improve availability
- Redundant backup , The primary server data is damaged or lost , Keep backups from the server
One master and many slaves :
Generally, the master database is responsible for all read / write requests , The slave database is only responsible for disaster recovery and redundant backup .
If you do read-write separation , The main library is responsible for writing requests , The slave library is responsible for reading requests , Can improve database performance .
Dual master multi slave architecture :
Generally, it is the main database 1 Responsible for all read and write requests , Main library 2 No external services , Only for disaster recovery .
Compared with the one master multi slave architecture , Dual master multi slave architecture can reduce downtime , Faster recovery of database availability .
3. The principle of active synchronization
- When the master database data changes , Write local Bin Log file
- Slave Library IO Thread initiation dump Main library Bin Log File request
- Main library IO Thread push Bin Log File to and from the library
- Slave Library IO Thread Bin Log Content is written locally Relay Log In file
- Slave Library SQL Thread reads Relay Log The contents of the document
- Slave Library SQL The thread executes again SQL sentence
4. Master slave synchronization delay problem
The most common problem of master-slave synchronization is the delay of master-slave synchronization , You can do this by executing show slave status Command view delay time ,Seconds_Behind_Master Indicates the number of seconds to delay .
What are the reasons for the delay of master-slave synchronization ?
- The slave machine has poor performance
The master database is responsible for all read / write requests , The slave library is only used for backup , Be able to use machines with poor performance , The execution time is naturally slow .
2. The pressure from the reservoir is greater
After the separation of reading and writing , The main library is responsible for writing requests , The slave library is responsible for reading requests .
Internet applications generally have more read requests , So reading from the library is more stressful , Take up more CPU resources .
3. Network delay
When the main library Bin Log When a file is sent to or from the library , Network delays may occur , It will also cause the data from the database to not keep up .
4. The main database has large transactions
When a large transaction needs to be executed on the master database 5 minute , hold Bin Log File sent to slave Library , The slave library also needs to perform at least 5 minute , So at this time, the database appears 5 Minute delay .
The solution of master-slave synchronization delay ?
- The slave machine has poor performance
Replace the slave library with a machine of the same specification as the master library .
2. The pressure from the reservoir is greater
Get more slave computers , Share the pressure of reading request .
3. Network delay
Contact the O & M or cloud service provider for solutions .
4. The main database has large transactions
Divide large transactions into small ones for execution , Major events will not only cause slave delay , Deadlock may also occur , Reduce database concurrency performance , So try not to use big things .
5. How to improve master-slave synchronization performance
1. Start multi-threaded replication from the library
It is to use multithreading in the last two steps of master-slave synchronization , Modify the configuration slave_parallel_workers=4, Representative opens 4 Copy threads .
2. Modify the synchronization mode , Change to asynchronous
There are three replication methods for master-slave synchronization :
- Full synchronous replication
When the main library completes a transaction , And after all slave libraries have executed the transaction , To return success to the client .
2. Semi-synchronous replication
After at least one execution from the library is completed , It returns success to the client .
3. Asynchronous replication
After the main database is executed , Return to success immediately , Do not care whether the execution from the library is completed .
If the data security requirements are not so high , You can change the synchronous mode to semi synchronous replication or asynchronous replication .
3. Modify slave Library Bin Log To configure
modify sync_binlog To configure :
sync_binlog=0 , Said to write binlog Do not refresh the disk now , The system decides when to refresh the disk .
sync_binlog=1, Every time binlog Both refresh disks , High safety , Poor performance .
sync_binlog=N, Write N Time binlog To refresh the disk .
The requirements for data security from the database are not so high , You can set sync_binlog=0.
modify innodb_flush_log_at_trx_commit To configure :
innodb_flush_log_at_trx_commit=0, Every second , Flush the transaction log to disk .
innodb_flush_log_at_trx_commit=1, Each transaction is flushed to disk .
innodb_flush_log_at_trx_commit=2, Each transaction does not actively refresh the disk , The system decides when to refresh the disk .
The requirements for data security from the database are not so high , You can set innodb_flush_log_at_trx_commit=2.
Summary of knowledge points :
Articles are constantly updated , You can search through wechat 「 One light architecture 」 Read more technical dry goods for the first time .
边栏推荐
- Experience sharing of system architecture designers in preparing for the exam: the direction of paper writing
- 【微服务|SCG】gateway整合sentinel
- MySQL Index Optimization Practice II
- Oracle database backup and recovery
- LeeCode -- 6. Z 字形变换
- Technology at home and abroad people "see" the future of audio and video technology
- Matlab 信号处理【问答随笔·2】
- Add data analysis tools in Excel
- What are the similarities and differences between smart communities and smart cities
- The 19th Zhejiang Provincial Collegiate Programming Contest VP记录+补题
猜你喜欢
Description of longitude and latitude PLT file format
Oracle-数据库的备份与恢复
Oracle database backup and recovery
产业共融新势能,城链科技数字峰会厦门站成功举办
MySQL Index Optimization Practice I
13、 System optimization
深入理解Mysql锁与事务隔离级别
ArcGIS: two methods of attribute fusion of the same field of vector elements
Ros2 topic (03): the difference between ros1 and ros2 [01]
包装行业智能供应链S2B2B商城解决方案:开辟电商消费新生态
随机推荐
Deep understanding of MySQL lock and transaction isolation level
2021icpc Shanghai h.life is a game Kruskal reconstruction tree
Turbo introder common scripts
MATLAB signal processing [Q & A essays · 2]
USB (十七)2022-04-15
JS get the key and value of the object
Experience sharing of system architecture designers in preparing for the exam: the direction of paper writing
[compilation principle] lexical analysis design and Implementation
Installing spss25
PHP uses Alibaba cloud storage
Ros2 topic (03): the difference between ros1 and ros2 [01]
How to generate unique file names
Coreseek: the second step is index building and testing
php 使用阿里云存储
Freelink open source call center design idea
STL标准模板库(Standard Template Library)一周学习总结
Cloud native data warehouse analyticdb MySQL user manual
UE4_UE5蓝图command节点的使用(开启关闭屏幕响应-log-发布全屏显示)
2021ICPC上海 H.Life is a Game Kruskal重构树
Unity3D学习笔记4——创建Mesh高级接口