MYSQL master-slave replication: exploring key parameters that cannot be synchronized in real time

Source: Internet
Author: User

MYSQL master-slave replication: exploring key parameters that cannot be synchronized in real time

1. master database operations

1. Full Database Export
Mysqldump-h192.168.1.6 -- all-databases-uroot-proot -- opt -- add-drop-database -- add-drop-table -- events -- triggers -- routines -- default-character-set = utf8 -- master-data = 2 -- single-transaction -- complete-insert -- quote-names -- log-error =/gyj/mysqldump2015051_log>/gyj/backup_2015051_mysql


2. Obtain the binlog location of mysql during export.
(Head-50 backup_20150520.mysql or tail-50 backup_20150520.mysql)


---- Change master to MASTER_LOG_FILE = 'binlog. 100', MASTER_LOG_POS = 000001;


3. Copy the backup of the master database to the slave Database
[Root @ uubee6 gyj] # scp backup_2015051_mysql root@192.168.1.8:/gyj/


Ii. Slave database operations
1. Clear the standby database (retain information_schema, cece_schema, and mysql databases), and then import the data of the primary database.
Check whether the slow log is disabled: set global slow_query_log = off;
If the import is not disabled, the following ERROR occurs: ERROR 1580 (HY000) at line 3405: You cannot 'drop' a log table if logging is enabled.


Mysql-h192.168.1.8-uroot-proot </gyj/backup_20150520.mysql



Iii. master database operations
1. Create and copy users
Grant replication slave on *. * TO 'repl' @ '%' identified by 'slavepass ';

 

Iv. Slave database operations

1. Configure the connection to the master database in the slave database and run the following command:
CHANGE MASTER TOMASTER_HOST='192.168.1.6',MASTER_USER='repl',MASTER_PASSWORD='slavepass',MASTER_PORT=3306,MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=529372,MASTER_CONNECT_RETRY=10;



2. Start slave Database
Mysql> start slave;
Query OK, 0 rows affected (0.01 sec)




3. query the slave status:
mysql> show slave status\G;*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 192.168.1.6Master_User: replMaster_Port: 3306Connect_Retry: 10Master_Log_File: binlog.000001Read_Master_Log_Pos: 657284Relay_Log_File: relaylog.000002Relay_Log_Pos: 128192Relay_Master_Log_File: binlog.000001Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:Last_Errno: 0Last_Error:Skip_Counter: 0Exec_Master_Log_Pos: 657284Relay_Log_Space: 128358Until_Condition: NoneUntil_Log_File:Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File:Master_SSL_CA_Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master: 0Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error:Last_SQL_Errno: 0Last_SQL_Error:Replicate_Ignore_Server_Ids:Master_Server_Id: 101Master_UUID: c811e75a-d875-11e4-8bb1-b083fede6c94Master_Info_File: /u01/my3306/data/master.infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update itMaster_Retry_Count: 86400Master_Bind:Last_IO_Error_Timestamp:Last_SQL_Error_Timestamp:Master_SSL_Crl:Master_SSL_Crlpath:Retrieved_Gtid_Set:Executed_Gtid_Set:Auto_Position: 01 row in set (0.00 sec)ERROR:No query specified




V. Test
1. master database operations
mysql> select * from t1;+------+| id |+------+| 1 |+------+1 row in set (0.00 sec)mysql> insert into t1 values(2);Query OK, 1 row affected (0.00 sec)mysql> commit;Query OK, 0 rows affected (0.00 sec)mysql> select * from t1;+------+| id |+------+| 1 || 2 |+------+2 rows in set (0.00 sec)


2. Slave database operations
mysql> select * from t1;+------+| id |+------+| 1 |+------+1 row in set (0.00 sec)



3. The slave database is not synchronized, But I operate flush logs in the slave database. The command can be synchronized!




4. Check the parameters of the master database:
mysql> show variables like '%autocommit%';+---------------+-------+| Variable_name | Value |+---------------+-------+| autocommit | ON |+---------------+-------+1 row in set (0.00 sec)mysql> show variables like '%innodb_flush_metho%';+---------------------+----------+| Variable_name | Value |+---------------------+----------+| innodb_flush_method | O_DIRECT |+---------------------+----------+1 row in set (0.00 sec)mysql> show variables like '%sync_binlog%';+---------------+-------+| Variable_name | Value |+---------------+-------+| sync_binlog | 100 |+---------------+-------+1 row in set (0.00 sec)




5. Find the cause: sync_binlog = 100. Set the parameter sync_binlog to 1 in the master database !!!
Set global sync_binlog = 1; --- it is best to change the my. cnf configuration file permanently.



6. Write down several common commands
Reset master;
Show master status \ G;
Show binlog events in 'binlog. 100 ';
Flush logs;

 

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.