mysql> show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: No
Last_Errno: 1062
....
Seconds_Behind_Master:NULL
原因:
1.程序可能在slave上進(jìn)行了寫操作
2.也可能是slave機(jī)器重起后,事務(wù)回滾造成的.
1.首先停掉Slave服務(wù):slave stop
記錄File和Position對(duì)應(yīng)的值,。
mysql> show master status;
+------------------+-----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+-----------+--------------+------------------+
| mysql-bin.000020 | 135617781 | | |
+------------------+-----------+--------------+------------------+
1 row in set (0.00 sec)
mysql> change master to
> master_host='master_ip',
> master_user='user',
> master_password='pwd',
> master_port=3307,
> master_log_file='mysql-bin.000020',
> master_log_pos=135617781;
1 row in set (0.00 sec)
mysql> slave start;
1 row in set (0.00 sec)
再次查看slave狀態(tài)發(fā)現(xiàn):
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
Seconds_Behind_Master: 0
mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;
且show slave status\G:
Slave_SQL_Running: NO
Seconds_Behind_Master: NULL
stop slave;
set global sql_slave_skip_counter =1 ;
start slave;
Slave_SQL_Running: Yes
Seconds_Behind_Master是否為0,0就是已經(jīng)同步了
show full processlist; //查看mysql當(dāng)前同步線程號(hào)
skip-name-resolve //跳過dns名稱查詢,,有助于加快連接及同步的速度
max_connections=1000 //增大Mysql的連接數(shù)目,,(默認(rèn)100)
max_connect_errors=100 //增大Mysql的錯(cuò)誤連接數(shù)目,(默認(rèn)10)
查看日志一些命令
1, show master status\G;
在這里主要是看log-bin的文件是否相同,。
show slave status\G;
在這里主要是看:
Slave_IO_Running=Yes
Slave_SQL_Running=Yes
如果都是Yes,則說明配置成功.
mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
Id: 2
User: root
Host: localhost:32931
db: NULL
Command: Binlog Dump
Time: 94
State: Has sent all binlog to slave; waiting for binlog to
be updated
Info: NULL
start slave #開始同步,,從日志終止的位置開始更新。
SET SQL_LOG_BIN=0|1 #主機(jī)端運(yùn)行,,需要super權(quán)限,,用來開停日志,隨意開停,,會(huì)造成主機(jī)從機(jī)數(shù)據(jù)不一致,,造成錯(cuò)誤
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=n # 客戶端運(yùn)行,,用來跳過幾個(gè)事件,,只有當(dāng)同步進(jìn)程出現(xiàn)錯(cuò)誤而停止的時(shí)候才可以執(zhí)行,。
RESET MASTER #主機(jī)端運(yùn)行,清除所有的日志,這條命令就是原來的FLUSH MASTER
RESET SLAVE #從機(jī)運(yùn)行,,清除日志同步位置標(biāo)志,,并重新生成master.info
雖然重新生成了master.info,但是并不起用,最好,,將從機(jī)的mysql進(jìn)程重啟一下,,
LOAD TABLE tblname FROM MASTER #從機(jī)運(yùn)行,,從主機(jī)端重讀指定的表的數(shù)據(jù),,每次只能讀取一個(gè),,受timeout時(shí)間限制,,需要調(diào)整timeout時(shí)間。執(zhí)行這個(gè)命令需要同步賬號(hào)有 reload和super權(quán)限,。以及對(duì)相應(yīng)的庫有select權(quán)限,。如果表比較大,,要增加net_read_timeout 和 net_write_timeout的值
LOAD DATA FROM MASTER #從機(jī)執(zhí)行,,從主機(jī)端重新讀入所有的數(shù)據(jù),。執(zhí)行這個(gè)命令需要同步賬號(hào)有reload和super權(quán)限,。以及對(duì)相應(yīng)的庫有select權(quán)限,。如果表比較大, 要增加net_read_timeout 和 net_write_timeout的值
CHANGE MASTER TO master_def_list #在線改變一些主機(jī)設(shè)置,,多個(gè)用逗號(hào)間隔,比如
CHANGE MASTER TO
MASTER_HOST='master2.mycompany.com',
MASTER_USER='replication',
MASTER_PASSWORD='bigs3cret'
MASTER_POS_WAIT() #從機(jī)運(yùn)行
SHOW MASTER STATUS #主機(jī)運(yùn)行,,看日志導(dǎo)出信息
SHOW SLAVE HOSTS #主機(jī)運(yùn)行,,看連入的從機(jī)的情況。
SHOW SLAVE STATUS (slave)
SHOW MASTER LOGS (master)
SHOW BINLOG EVENTS [ IN 'logname' ] [ FROM pos ] [ LIMIT [offset,] rows ]
PURGE [MASTER] LOGS TO 'logname' ; PURGE [MASTER] LOGS BEFORE 'date'
本文出自 “聆聽未來” 博客,,請(qǐng)務(wù)必保留此出處http://kerry.blog.51cto.com/172631/277414