国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Home Database Mysql Tutorial What is mysql master-slave replication

What is mysql master-slave replication

Jun 27, 2022 pm 03:37 PM
mysql master-slave replication

In mysql, master-slave replication means that data can be copied from a MySQL database server master node to one or more slave nodes. Asynchronous replication is used by default. The benefits of using master-slave replication: 1. Let the master database be responsible for writing and the slave database be responsible for reading. When the master database locks the table, the normal operation of the business can be ensured by reading from the slave database; 2. Hot backup of data can be done; 3. Expanding the architecture can reduce the frequency of disk I/O access and improve the I/O performance of a single machine.

What is mysql master-slave replication

The operating environment of this tutorial: windows7 system, mysql8 version, Dell G3 computer.

What is mysql master-slave replication?

MySQL master-slave replication means that data can be copied from a MySQL database server master node to one or more slave nodes. MySQL uses asynchronous replication by default, so that the slave node does not have to access the master server all the time to update its own data. Data updates can be performed on a remote connection. The slave node can copy all databases or specific databases in the master database, or specific tables. .

Why is master-slave replication needed?

1. In a system with complex business, there is a situation where a SQL statement needs to lock the table, resulting in the temporary inability to use the read service, which will greatly affect the running business. , use master-slave replication, let the main library be responsible for writing, and the slave library be responsible for reading. In this way, even if the main library locks the table, the normal operation of the business can be guaranteed by reading from the slave library.

2. Hot backup of data

3. Architecture expansion. The business volume is getting larger and larger, and the frequency of I/O access is too high, which cannot be satisfied by a single machine. At this time, multi-database storage is used to reduce the frequency of disk I/O access and improve the I/O performance of a single machine.

mysql replication principle

Principle:

(1) The master server will change the data Record the binary binlog log. When the data on the master changes, the changes are written to the binary log;

(2) The slave server will detect whether it occurs in the master binary log within a certain time interval. Change, if a change occurs, start an I/OThread to request the master binary event

(3) At the same time, the master node starts a dump thread for each I/O thread to send binary events to it and save it. To the local relay log of the slave node, the slave node will start the SQL thread to read the binary log from the relay log and replay it locally to make its data consistent with that of the master node. Finally, I/OThread and SQLThread will enter the sleep state. , waiting to be woken up next time.

In other words:

  • The slave library will generate two threads, one I/O thread and one SQL thread;
  • I The /O thread will request the binlog of the main library and write the obtained binlog to the local relay-log (relay log) file;
  • The main library will generate a log dump thread to provide the slave with The library I/O thread passes binlog;
  • SQL thread will read the log in the relay log file and parse it into sql statements to execute one by one;

##Note:

  • – The master records the operation statement into the binlog log, and then grants the slave remote connection permission (the master must enable the binlog binary log function; usually for data security reasons, the slave also Turn on the binlog function).

  • –slave opens two threads: IO thread and SQL thread. Among them: the IO thread is responsible for reading the binlog content of the master into the relay log; the SQL thread is responsible for reading the binlog content from the relay log and updating it to the slave database, so as to ensure that the slave data and the master data are maintained Consistent.

  • –Mysql replication requires at least two Mysql services. Of course, Mysql services can be distributed on different servers, or multiple services can be started on one server.

  • -Mysql replication is best to ensure that the Mysql versions on the master and slave servers are the same (if the versions cannot be consistent, then ensure that the version of the master node is lower than the version of the slave node)

  • –The time between the master and slave nodes needs to be synchronized

What is mysql master-slave replication

Specific steps:

1. The slave library connects to the master library by manually executing the change master to statement, providing all the conditions for the connected user (user, password, port, ip), and letting the slave library know the starting point of the binary log Position (file name position number); start slave

2. Establish a connection between the IO thread of the slave library and the dump thread of the main library.

3. Based on the file name and position number provided by the change master to statement, the slave library initiates a binlog request to the master library from the IO thread.

4. The main library dump thread sends the local binlog to the slave library IO thread in the form of events according to the slave library's request.

5. Receive binlog events from the library IO thread and store them in the local relay-log. The transmitted information will be recorded in master.info

6. Apply relay-log from the database SQL thread, and record the applied information to relay-log.info. By default, the applied relay will be automatically cleaned up purge

mysql master-slave form

(1) One master and one slave

What is mysql master-slave replication

(2) Master-master replication

What is mysql master-slave replication

(3) One master and multiple slaves

What is mysql master-slave replication

(4) Multiple masters and one slave

What is mysql master-slave replication

(5) Cascade replication

What is mysql master-slave replication

mysql master-slave synchronization delay analysis

Mysql’s master-slave replication is a single-threaded operation, and the main library handles all DDL The logs generated by and DML are written into the binlog. Since the binlog is written sequentially, it is very efficient. The slave's sql thread thread replays the DDL and DML operation events of the main library in the slave. The IO operations of DML and DDL are random, not sequential, so the cost is much higher. On the other hand, since the sql thread is also single-threaded, when the concurrency of the main library is high, the number of DML generated exceeds the capacity of the slave's SQL thread. The processing speed, or when there is a large query statement in the slave that causes a lock wait, then the delay occurs.

Solution:

1. The implementation of the business persistence layer adopts a sub-database architecture, and the mysql service can be expanded in parallel to spread the pressure.

2. Separate reading and writing in a single library, one master and multiple slaves, master writes and slaves read, to spread the pressure. In this way, the pressure of the slave library is higher than that of the main library, protecting the main library.

3. The service infrastructure adds memcache or redis cache layer between the business and mysql. Reduce the read pressure of mysql.

4. MySQL for different businesses is physically placed on different machines to spread the pressure.

5. Use a better hardware device than the main database as the slave. Mysql will have less pressure and the delay will naturally become smaller.

6. Use more powerful hardware equipment

[Related recommendations: mysql video tutorial]

The above is the detailed content of What is mysql master-slave replication. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Performing logical backups using mysqldump in MySQL Performing logical backups using mysqldump in MySQL Jul 06, 2025 am 02:55 AM

mysqldump is a common tool for performing logical backups of MySQL databases. It generates SQL files containing CREATE and INSERT statements to rebuild the database. 1. It does not back up the original file, but converts the database structure and content into portable SQL commands; 2. It is suitable for small databases or selective recovery, and is not suitable for fast recovery of TB-level data; 3. Common options include --single-transaction, --databases, --all-databases, --routines, etc.; 4. Use mysql command to import during recovery, and can turn off foreign key checks to improve speed; 5. It is recommended to test backup regularly, use compression, and automatic adjustment.

Handling NULL Values in MySQL Columns and Queries Handling NULL Values in MySQL Columns and Queries Jul 05, 2025 am 02:46 AM

When handling NULL values ??in MySQL, please note: 1. When designing the table, the key fields are set to NOTNULL, and optional fields are allowed NULL; 2. ISNULL or ISNOTNULL must be used with = or !=; 3. IFNULL or COALESCE functions can be used to replace the display default values; 4. Be cautious when using NULL values ??directly when inserting or updating, and pay attention to the data source and ORM framework processing methods. NULL represents an unknown value and does not equal any value, including itself. Therefore, be careful when querying, counting, and connecting tables to avoid missing data or logical errors. Rational use of functions and constraints can effectively reduce interference caused by NULL.

Aggregating data with GROUP BY and HAVING clauses in MySQL Aggregating data with GROUP BY and HAVING clauses in MySQL Jul 05, 2025 am 02:42 AM

GROUPBY is used to group data by field and perform aggregation operations, and HAVING is used to filter the results after grouping. For example, using GROUPBYcustomer_id can calculate the total consumption amount of each customer; using HAVING can filter out customers with a total consumption of more than 1,000. The non-aggregated fields after SELECT must appear in GROUPBY, and HAVING can be conditionally filtered using an alias or original expressions. Common techniques include counting the number of each group, grouping multiple fields, and filtering with multiple conditions.

Paginating Results with LIMIT and OFFSET in MySQL Paginating Results with LIMIT and OFFSET in MySQL Jul 05, 2025 am 02:41 AM

MySQL paging is commonly implemented using LIMIT and OFFSET, but its performance is poor under large data volume. 1. LIMIT controls the number of each page, OFFSET controls the starting position, and the syntax is LIMITNOFFSETM; 2. Performance problems are caused by excessive records and discarding OFFSET scans, resulting in low efficiency; 3. Optimization suggestions include using cursor paging, index acceleration, and lazy loading; 4. Cursor paging locates the starting point of the next page through the unique value of the last record of the previous page, avoiding OFFSET, which is suitable for "next page" operation, and is not suitable for random jumps.

Implementing Transactions and Understanding ACID Properties in MySQL Implementing Transactions and Understanding ACID Properties in MySQL Jul 08, 2025 am 02:50 AM

MySQL supports transaction processing, and uses the InnoDB storage engine to ensure data consistency and integrity. 1. Transactions are a set of SQL operations, either all succeed or all fail to roll back; 2. ACID attributes include atomicity, consistency, isolation and persistence; 3. The statements that manually control transactions are STARTTRANSACTION, COMMIT and ROLLBACK; 4. The four isolation levels include read not committed, read submitted, repeatable read and serialization; 5. Use transactions correctly to avoid long-term operation, turn off automatic commits, and reasonably handle locks and exceptions. Through these mechanisms, MySQL can achieve high reliability and concurrent control.

Calculating Database and Table Sizes in MySQL Calculating Database and Table Sizes in MySQL Jul 06, 2025 am 02:41 AM

To view the size of the MySQL database and table, you can query the information_schema directly or use the command line tool. 1. Check the entire database size: Execute the SQL statement SELECTtable_schemaAS'Database',SUM(data_length index_length)/1024/1024AS'Size(MB)'FROMinformation_schema.tablesGROUPBYtable_schema; you can get the total size of all databases, or add WHERE conditions to limit the specific database; 2. Check the single table size: use SELECTta

Handling character sets and collations issues in MySQL Handling character sets and collations issues in MySQL Jul 08, 2025 am 02:51 AM

Character set and sorting rules issues are common when cross-platform migration or multi-person development, resulting in garbled code or inconsistent query. There are three core solutions: First, check and unify the character set of database, table, and fields to utf8mb4, view through SHOWCREATEDATABASE/TABLE, and modify it with ALTER statement; second, specify the utf8mb4 character set when the client connects, and set it in connection parameters or execute SETNAMES; third, select the sorting rules reasonably, and recommend using utf8mb4_unicode_ci to ensure the accuracy of comparison and sorting, and specify or modify it through ALTER when building the library and table.

Setting up asynchronous primary-replica replication in MySQL Setting up asynchronous primary-replica replication in MySQL Jul 06, 2025 am 02:52 AM

To set up asynchronous master-slave replication for MySQL, follow these steps: 1. Prepare the master server, enable binary logs and set a unique server-id, create a replication user and record the current log location; 2. Use mysqldump to back up the master library data and import it to the slave server; 3. Configure the server-id and relay-log of the slave server, use the CHANGEMASTER command to connect to the master library and start the replication thread; 4. Check for common problems, such as network, permissions, data consistency and self-increase conflicts, and monitor replication delays. Follow the steps above to ensure that the configuration is completed correctly.

See all articles