当前位置:网站首页>MySQL master-slave replication
MySQL master-slave replication
2022-07-06 03:51:00 【Li Jue】
Why copy ?
- Prevent accidental loss of data , Make users suffer losses .
- A machine is down , You can enable the backup of data on another machine .
- The probability of downtime is very small , Spare time can also allow the backup machine to share the flow pressure of the main machine .
- When upgrading the database version , The standby machine can be upgraded preferentially without stopping the user service , Upgrade the main database after observing its availability and stability .
Can't always let DBA Copy manually to complete the replication , So we still need to design a mechanism that can automatically copy .
Design replication mechanism
Our tentative replicated database is the main database , Pasted from the Library , To realize the replication from master library to slave Library , It looks very simple , Just one planning task , Regularly copy a copy of the main database data file , And transfer it to the server where the slave library is located .
But after all, scheduled tasks are not real-time , In case the main database fails ten minutes after the last replication , The activated slave library uses the last copied data , So ten minutes of data will be missing , The consequences are unimaginable .
Or do you want to copy in real time , That can be like this , The master library sends the executed statements to the slave Library in real time , Let the slave execute immediately , It can ensure the consistency of data on both sides .
The bad thing is , The master database sends data to the slave database in real time , You need to wait for the execution of the slave library to process the next statement , It seriously takes up the execution time of the main library , If there are too many libraries , The main warehouse is abandoned .
It has to be changed to asynchronous to save the time of the main database , You can save the executed statements of the main library into a file , Let's get it from the library , In this way, the master database does not have to wait for the slave database . Since it is written to the file , The speed is very fast , The main library can write statements to files before execution , Achieve higher synchronization efficiency .
Some of the above problems , It is impossible to run to the main database to get data from the database , Only one thread can be started to establish a connection with the main library , And ask for data from the main database , Then the main library also starts a thread to read the contents of the file , And push it to the slave thread , After receiving the statement from the library, it can be executed immediately .
Such efficiency is still very low , The thread of the main library cannot push another one until the statement is received and executed from the Library , If there are multiple slave Libraries , The master library needs to open multiple threads to keep communicating with each slave library for a long time , Occupy the main library server resources , It's better to create a file from the library to temporarily save the statements sent from the main library , Save it first and then execute it slowly , The pressure of the main reservoir is reduced , Rest assured from the Library .
Now I have my own file from the library as a relay , Don't worry , You can start another thread from the Library , Slowly execute the statements in the relay file , After the implementation, the original document has no value , You can clean it up , Avoid occupying server resources .
up to now , The most basic replication mechanism is designed , This way of copying from master database to slave database is a typical master-slave architecture , On this basis, evolution can be carried out , For example, there are many from the Library , The master database should push data for each slave database , The pressure of the main reservoir will increase , And because the main database is not only responsible for synchronizing data , Also busy reading and writing data , So people can replace the synchronization of data , For example, establish a master database between the master database and the slave database , The only responsibility of the newly established master database is to synchronize data to the slave database , In this way, the real master database only needs to push data to the new master database once , You can read and write data at ease in the rest of the time .
边栏推荐
- Crawler of explanation and application of agency theory
- [analysis of variance] single factor analysis and multi factor analysis
- Blue Bridge Cup - Castle formula
- Overview of super-resolution reconstruction of remote sensing images
- Factors affecting user perception
- BUAA计算器(表达式计算-表达式树实现)
- Pytoch foundation - (2) mathematical operation of tensor
- Teach you to build your own simple BP neural network with pytoch (take iris data set as an example)
- Containerization Foundation
- Record the pit of NETCORE's memory surge
猜你喜欢
2、GPIO相关操作
The ECU of 21 Audi q5l 45tfsi brushes is upgraded to master special adjustment, and the horsepower is safely and stably increased to 305 horsepower
Ks008 SSM based press release system
BUAA magpie nesting
Record the process of reverse task manager
【FPGA教程案例11】基于vivado核的除法器设计与实现
How to modify field constraints (type, default, null, etc.) in a table
3.1 rtthread 串口设备(V1)详解
简易博客系统
RT-Thread--Lwip之FTP(2)
随机推荐
Cf464e the classic problem [shortest path, chairman tree]
3.1 rtthread 串口设备(V1)详解
[prediction model] difference method model
BUAA喜鹊筑巢
C mouse event and keyboard event of C (XXVIII)
Pytoch foundation - (2) mathematical operation of tensor
多项目编程极简用例
mysql关于自增长增长问题
User perceived monitoring experience
Custom event of C (31)
2.1 rtthread pin device details
Conditionally [jsonignore]
BUAA magpie nesting
Shell pass parameters
[001] [stm32] how to download STM32 original factory data
Indicator system of KQI and KPI
Security xxE vulnerability recurrence (XXe Lab)
1. New project
Microkernel structure understanding
判断当天是当月的第几周