How to Avoid synchronization of the MySQL database master

Source: Internet
Author: User
Tags mysql backup

How to Avoid synchronization of the MySQL database master

Fault description:

Go to the slave Database

Mysql> show slave status \ G;

The result is as follows:

...

Slave_IO_Running: Yes

Slave_ SQL _Running: No

Last_errno.: 1062

...

Cause:

1. The program may write on slave.

2. It may be caused by transaction rollback after the slave machine is restarted.

Most of them are caused by the second type.

Solution 1: Ignore errors and continue Synchronization

This method is applicable when the data in the Master/Slave database is not much different or the data requirements are not strict.

Mysql> slave stop;
Mysql> set GLOBAL SQL _SLAVE_SKIP_COUNTER = 1;
Mysql> slave start;

Solution 2: Force synchronization from a certain point

This method may cause some non-synchronous data loss, and the deletion record synchronization on the master server will also have some error messages, without affecting the use

Check the host status on the master server:
Record the value corresponding to File and Position.
Mysql> show master status;
+ ------------------ + ----------- + -------------- + ------------------ +
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+ ------------------ + ----------- + -------------- + ------------------ +
| Mysql-bin.000021 | 135617782 |
+ ------------------ + ----------- + -------------- + ------------------ +
1 row in set (0.00 sec)

3. Execute manual synchronization on the slave server:
Mysql> change master
> Master_host = 'master _ ip ',
> Master_user = 'user ',
> Master_password = 'pwd ',
> Master_port = 3307,
> Master_log_file = 'mysql-bin.20.21 ',
> Master_log_pos = 135617782;
1 row in set (0.00 sec)
Mysql> slave start;
1 row in set (0.00 sec)
View the slave status again and find:
Slave_IO_Running: Yes
Slave_ SQL _Running: Yes
...
Seconds_Behind_Master: 0

Solution 3: Re-master the master node and complete synchronization

This method is applicable when the data in the Master/Slave database is significantly different or the data must be completely unified.

1. Enter the master database for Data Backup


Mysqldump-u root-p -- opt -- master-data -- single-transaction-B> mysql. bak. SQL

2. Upload the mysql backup file to the slave database and import it to the slave database.

Mysql> stop slave;

Mysql-u root-p <mysql. bak. SQL

3. Find file and position in the backup file.

Grep-I "change master to" mysql. bak. SQL will get the following similar content:

Change master to MASTER_LOG_FILE = 'mysql-bin.000021 ', MASTER_LOG_POS = 135617782;

4. Set slave Database Synchronization

Mysql> change master
> Master_host = 'master _ ip ',
> Master_user = 'user ',
> Master_password = 'pwd ',
> Master_port = 3307,
> Master_log_file = 'mysql-bin.20.21 ',
> Master_log_pos = 135617782;

Mysql> slave start;
1 row in set (0.00 sec)
View the slave status again and find:
Slave_IO_Running: Yes
Slave_ SQL _Running: Yes
...
Seconds_Behind_Master: 0

This article permanently updates the link address:

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.