查看master的運行情況:
[root@master] mysql -uroot -p************
[root@master] mysql> show master status \G;
*************************** 1. row ***************************
File: mysql-bin.000014 //這個信息點要記住,下面用
Position: 170017372 //這個信息點要記住,下面用
Binlog_Do_DB: ipharmacare_admin
Binlog_Ignore_DB: mysql,information_schema,performance_schema
Executed_Gtid_Set:
1 row in set (0.00 sec)
查看slave的運行情況:
[root@slave] mysql -uroot -p************
[root@slave] mysql> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: master.mysql.ipharmacare.org
Master_User: slave
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000013
Read_Master_Log_Pos: 1003623481
Relay_Log_File: mysql-bin.000022
Relay_Log_Pos: 36726417
Relay_Master_Log_File: mysql-bin.000013
Slave_IO_Running: No
Slave_SQL_Running: No
Replicate_Do_DB: ipharmacare_admin
Replicate_Ignore_DB: mysql,information_schema,performance_schema
Replicate_Do_Table:
Replicate_Ignore_Table: ipharmacare_admin.tb_hospital,ipharmacare_admin.t_customer,ipharmacare_admin.t_license,ipharmacare_admin.tb_hospital_zone_license,ipharmacare_admin.tb_hospital_license
Replicate_Wild_Do_Table: ipharmacare_admin.%
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 1003623481
Relay_Log_Space: 1003624042
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
Master_UUID: a8ddc479-8862-11e2-b6df-2761731e3dd6
Master_Info_File: /mnt/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State:
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
1 row in set (0.00 sec)
結論:由上可知數據同步延遲很多,且希望重新做主從,使得主從在數據上保持完全同步.
先進入主庫,進行鎖表,防止數據寫入
[root@master] mysql> flush tables with read lock;
進行master數據備份
[root@master] cd /mnt/mysql/bakdata [root@master] mkdir baksql [root@master] cd baksql [root@master] mysqldump ipharmacare_admin -uroot -p****** --opt> ipharmacare_admin.sql 或者: mysqldump -uroot -p***** --default-character-set=utf8 ipharmacare_admin > ipharmacare_admin.sql
打包數據(可選)
[root@master] 7za a ipharmacare_admin_20160505.7z ipharmacare_admin.sql
把mysql備份文件傳到從庫機器,進行數據恢復
[root@slave] cd /usr/downloads/ [root@slave] scp root@master:/mnt/mysql/bakdata/ipharmacare_admin_20160505.7z ./ [root@slave] 7az x ipharmacare_admin_20160505.7z [root@slave] mysql -uroot -p*****; [root@slave] mysql> drop database ipharmacare_admin; [root@slave] mysql> CREATE DATABASE ipharmacare_admin DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; [root@slave] msyql> source baksql.sql;
更新/設置同步進度點
[root@slave] change master to master_host='master.mysql.ipharmacare.org', master_user='slave', master_port=3306, master_password='************', master_log_file='mysql-bin.000014', master_log_pos=170017372;
注意:
1) 做了MySQL主從復制以后,使用mysqldump對數據備份時,一定要注意按照如下方式: [root@master] mysqldump –master-data –single-transaction –user=username –password=password dbname> dumpfilename 這樣就可以保留file和position的信息,在新搭建一個slave的時候,還原完數據庫,file和position的信息也隨之更新,接着再start slave 就可以很迅速的完成增量同步。 2) 忘記主從復制時,對從庫用戶密碼時,可以這樣去重置: [root@master] GRANT REPLICATION SLAVE ON *.* TO 'slave'@'slave.mysql.ipharmacare.org' IDENTIFIED BY
