1. 在有主鍵或者唯一鍵的情況下,Slave 重放 Binlog 并不會(huì)去比較檢索到的記錄的每一列是否和BI相同,因此如果 Slave 和 Master 存在數(shù)據(jù)不一致,會(huì)直接覆蓋 Slave 的數(shù)據(jù)而不會(huì)報(bào)錯(cuò)。

阿合奇網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站2013年開(kāi)創(chuàng)至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
2. 在沒(méi)有主鍵或者唯一鍵的情況下,Hash Scan / Hash Scan Over Index 的執(zhí)行效率 在理論上分析高于 Table Scan 和Index Scan 。
3. 在沒(méi)有主鍵或者唯一鍵的情況下,Slave 選擇的二級(jí)索引是第一個(gè)所有的列都在 BI 中存在的索引,不一定是 Master 執(zhí)行計(jì)劃所選擇的索引。
換:slave stop
有時(shí)候這兩順序不一樣,Oracle故意讓MySQL不好用的
可能原因:
網(wǎng)絡(luò)的延遲。
主從兩臺(tái)機(jī)器的負(fù)載不一致。
max_allowed_packet設(shè)置不一致。
key自增鍵開(kāi)始的鍵值跟自增步長(zhǎng)設(shè)置不一致引起的主從不一致。
mysql異常宕機(jī)情況下,如果未設(shè)置sync_binlog=1或者innodb_flush_log_at_trx_commit=1很有可能出現(xiàn)binlog或者relaylog文件出現(xiàn)損壞,導(dǎo)致主從不一致。
mysql本身的bug引起的主從不同步。
版本不一致,特別是高版本是主,低版本為從的情況下,主數(shù)據(jù)庫(kù)上面支持的功能,從數(shù)據(jù)庫(kù)上面不支持該功能。
今天發(fā)現(xiàn)Mysql的主從數(shù)據(jù)庫(kù)沒(méi)有同步
先上Master庫(kù):
mysqlshow
processlist;
查看下進(jìn)程是否Sleep太多。發(fā)現(xiàn)很正常。
show
master
status;
也正常。
mysql
show
master
status;
+-------------------+----------+--------------+-------------------------------+
|
File
|
Position
|
Binlog_Do_DB
|
Binlog_Ignore_DB
|
+-------------------+----------+--------------+-------------------------------+
|
mysqld-bin.000001
|
3260
|
|
mysql,test,information_schema
|
+-------------------+----------+--------------+-------------------------------+
1
row
in
set
(0.00
sec)
再到Slave上查看
mysql
show
slave
status\G
Slave_IO_Running:
Yes
Slave_SQL_Running:
No
可見(jiàn)是Slave不同步
下面介紹兩種解決方法:
方法一:忽略錯(cuò)誤后,繼續(xù)同步
該方法適用于主從庫(kù)數(shù)據(jù)相差不大,或者要求數(shù)據(jù)可以不完全統(tǒng)一的情況,數(shù)據(jù)要求不嚴(yán)格的情況
解決:
stop
slave;
#表示跳過(guò)一步錯(cuò)誤,后面的數(shù)字可變
set
global
sql_slave_skip_counter
=1;
start
slave;
之后再用mysql
show
slave
status\G
查看:
Slave_IO_Running:
Yes
Slave_SQL_Running:
Yes
ok,現(xiàn)在主從同步狀態(tài)正常了。。。
方式二:重新做主從,完全同步
該方法適用于主從庫(kù)數(shù)據(jù)相差較大,或者要求數(shù)據(jù)完全統(tǒng)一的情況
解決步驟如下:
1.先進(jìn)入主庫(kù),進(jìn)行鎖表,防止數(shù)據(jù)寫(xiě)入
使用命令:
mysql
flush
tables
with
read
lock;
注意:該處是鎖定為只讀狀態(tài),語(yǔ)句不區(qū)分大小寫(xiě)
2.進(jìn)行數(shù)據(jù)備份
#把數(shù)據(jù)備份到mysql.bak.sql文件
[root@server01
mysql]#mysqldump
-uroot
-p
-hlocalhost
mysql.bak.sql
這里注意一點(diǎn):數(shù)據(jù)庫(kù)備份一定要定期進(jìn)行,可以用shell腳本或者python腳本,都比較方便,確保數(shù)據(jù)萬(wàn)無(wú)一失
3.查看master
狀態(tài)
mysql
show
master
status;
+-------------------+----------+--------------+-------------------------------+
|
File
|
Position
|
Binlog_Do_DB
|
Binlog_Ignore_DB
|
+-------------------+----------+--------------+-------------------------------+
|
mysqld-bin.000001
|
3260
|
|
mysql,test,information_schema
|
+-------------------+----------+--------------+-------------------------------+
1
row
in
set
(0.00
sec)
4.把mysql備份文件傳到從庫(kù)機(jī)器,進(jìn)行數(shù)據(jù)恢復(fù)
#使用scp命令
[root@server01
mysql]#
scp
mysql.bak.sql
root@192.168.128.101:/tmp/
5.停止從庫(kù)的狀態(tài)
mysql
stop
slave;
6.然后到從庫(kù)執(zhí)行mysql命令,導(dǎo)入數(shù)據(jù)備份
mysql
source
/tmp/mysql.bak.sql
7.設(shè)置從庫(kù)同步,注意該處的同步點(diǎn),就是主庫(kù)show
master
status信息里的|
File|
Position兩項(xiàng)
change
master
to
master_host
=
'192.168.128.100',
master_user
=
'rsync',
master_port=3306,
master_password='',
master_log_file
=
'mysqld-bin.000001',
master_log_pos=3260;
8.重新開(kāi)啟從同步
mysql
stop
slave;
9.查看同步狀態(tài)
mysql
show
slave
status\G
查看:
Slave_IO_Running:
Yes
Slave_SQL_Running:
Yes
好了,同步完成啦。
分享名稱(chēng):nosql主從同步失敗的簡(jiǎn)單介紹
分享網(wǎng)址:http://chinadenli.net/article28/dsgesjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、企業(yè)網(wǎng)站制作、標(biāo)簽優(yōu)化、虛擬主機(jī)、微信小程序、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)