mysql兩個主從不同步怎麼辦

(*-*)浩
發布: 2020-09-15 17:38:20
原創
3453 人瀏覽過

mysql兩個主從,是主伺服器從伺服器的意思,結構有一個主一從:一個Master,一個Slave。一主多從:一個Master,多個slave。

推薦課程:MySQL教學

mysql兩個主從不同步怎麼辦

#主從不同步解決方法

#先上Master庫: 

mysql>show processlist; 查看下进程是否Sleep太多。发现很正常。 
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
登入後複製

#可見是Slave不同步 

下面介紹兩種解決方法: 

方法一:忽略錯誤後,繼續同步 

此方法適用於主從庫資料相差不大,或要求資料可以不完全統一的情況,資料要求不嚴格的情況 

解決: 

stop slave; 
#表示跳过一步错误,后面的数字可变 
set global sql_slave_skip_counter =1; 
start slave; 
之后再用mysql> show slave status\G 查看: 
Slave_IO_Running: Yes 
Slave_SQL_Running: Yes 
ok,现在主从同步状态正常了。。。
登入後複製

方式二:重新做主從,完全同步 

此方法適用於主從庫數據相差較大,或要求資料完全統一的情況 

解決步驟如下: 

#1.先進入主庫,進行鎖定表,防止資料寫入 

##使用指令: 

mysql> flush tables with read lock;
登入後複製
注意:該處是鎖定為唯讀狀態,語句不區分大小寫 

2.進行資料備份 

#將資料備份到mysql.bak. sql檔 

[root@server01 mysql]#mysqldump -uroot -p -hlocalhost > mysql.bak.sql
登入後複製
這裡注意一點:資料庫備份一定要定期進行,可以用shell腳本或python腳本,都比較方便,確保資料萬無一失 

3.檢視master 狀態 

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備份檔傳到從函式庫機器,進行資料恢復 

#使用scp指令 

[root@server01 mysql]# scp mysql.bak.sql root@192.168.128.101:/tmp/
登入後複製
5.停止從函式庫的狀態 

mysql> stop slave;
登入後複製
登入後複製
6 .然後到從庫執行mysql指令,導入資料備份 

mysql> source /tmp/mysql.bak.sql
登入後複製
7.設定從庫同步,注意該處的同步點,就是主庫show master status資訊裡的| File| Position兩項 

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.重新開啟從同步 

mysql> stop slave;
登入後複製
登入後複製
9.查看同步狀態 

mysql> show slave status\G 查看; 
Slave_IO_Running: Yes 
Slave_SQL_Running: Yes
登入後複製

以上是mysql兩個主從不同步怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!