一。主庫(kù),備份數(shù)據(jù)庫(kù)
mysqldump -uroot -p ?--single-transaction --master-data=2 --no-autocommit ?-A > /root/alldatas.sql
--single-transaction參數(shù)的作用,設(shè)置事務(wù)的隔離級(jí)別為可重復(fù)讀,即REPEATABLE READ,這樣能保證在一個(gè)事務(wù)中所有相同的查詢讀取到同樣的數(shù)據(jù),也就大概保證了在dump期間,如果其他innodb引擎的線程修改了表的數(shù)據(jù)并提交,對(duì)該dump線程的數(shù)據(jù)并無(wú)影響
--master-data=2該選項(xiàng)將二進(jìn)制日志的位置和文件名寫(xiě)入到輸出中。該選項(xiàng)要求有RELOAD權(quán)限,并且必須啟用二進(jìn)制日志。=2 是把change log 那行注釋掉,=1 是沒(méi)有注釋.
head -n 30 alldatas.sql
記錄: 1. MASTER_LOG_FILE??
? ? ? ? ? ? ?2. MASTER_LOG_POS

二。copy 數(shù)據(jù)到從庫(kù),刪掉原來(lái)數(shù)據(jù), 從新source?alldatas.sql
三。 重新同步
change master to master_host='192.16.1.100', MASTER_PORT=3306, master_user='replication',master_password='Xsjy%123',master_log_file='mysql-bin.000007',master_log_pos=422223897;
四。 start slave ;? ?show slave status \G;? ? ? ?這時(shí)從庫(kù)已經(jīng)同步主庫(kù)數(shù)據(jù)。
如果是主主同步, 還需要主庫(kù)同步從庫(kù)上數(shù)據(jù)
1. 從庫(kù)鎖表,flush tables with read lock;??
2. 從庫(kù)查詢: show master status \G;
3. 到主庫(kù)同步從庫(kù),并啟動(dòng)同步線程
change master to master_host='192.168.1.1', MASTER_PORT=3306, master_user='replication',master_password='Xsjy%123',master_log_file='mysql-bin.000033',master_log_pos=638897339;
start slave;
show slave status \G;
4. 從庫(kù)解鎖? ?unlock tables;