2022-01-14 day71 MySQL主從復制

https://www.processon.com/view/link/61e11f22f346fb06cb98c0d1

第1章 MySQL主從復制

1.主從復制功能簡單介紹

主庫通過網(wǎng)絡傳輸binlog的數(shù)據(jù)給從庫,從庫接收同步主庫數(shù)據(jù)

2.主從復制應用場景

主庫如果宕機了,從庫可以快速切換替代主庫

代碼讀寫分離,寫入操作在主庫上,讀取操作在從庫上

備份可以再從庫上操作

分析數(shù)據(jù)可以再從庫上進行

第2章 MySQL主從復制部署

1.梳理思路

第一步:從庫安裝數(shù)據(jù)庫

第二步:主庫全備數(shù)據(jù)并發(fā)送給從庫

第三步:從庫導入主庫數(shù)據(jù)

第四步:找出主庫全備時刻的位置點

第五步:主庫創(chuàng)建復制用的賬號密碼

第六步:從庫配置同步命令

第七步:從庫開啟復制功能

第八步:從庫檢查同步是否完成

2.第一步:從庫安裝數(shù)據(jù)庫

cd /opt/

scp 10.0.0.51:/opt/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz .


tar zxf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz -C /opt/


mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql-5.7.28


查看解壓后目錄大小


ln -s mysql-5.7.28 mysql


配置環(huán)境變量

echo 'PATH=$PATH:/opt/mysql/bin' >> /etc/profile

source /etc/profile

mysql -V


rpm -qa|grep mariadb

yum remove mariadb-libs -y


rm -rf /etc/my.cnf


yum install -y libaio-devel


mkdir /data -p


useradd -s /sbin/nologin -M mysql

chown -R mysql.mysql /data/

chown -R mysql.mysql /opt/mysql*


初始化數(shù)據(jù)庫

mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/data/mysql_3306/


cat> /etc/my.cnf <<EOF

[mysqld]

port=3306

user=mysql

basedir=/opt/mysql

datadir=/data/mysql_3306

server_id=52

EOF


設置systemd啟動

cp /opt/mysql/support-files/mysql.server? /etc/init.d/mysqld

chkconfig --add mysqld

systemctl start mysqld



netstat -lntup|grep 3306


設置root賬號密碼

mysqladmin password 123



#統(tǒng)一主庫的環(huán)境

mkdir /data/binlog/ -p

chown -R mysql:mysql /data/


cat> /etc/my.cnf <<EOF

[mysqld]

port=3306

user=mysql

basedir=/opt/mysql

datadir=/data/mysql_3306

server_id=51

log_bin=/data/binlog/mysql-bin

EOF


systemctl restart mysqld


3.第二步:主庫全備數(shù)據(jù)并發(fā)送給從庫

mysqldump -uroot -p123 -A --master-data=2 --single-transaction > /tmp/full.sql



scp /tmp/full.sql 10.0.0.52:/tmp/


4.第三步:從庫導入主庫數(shù)據(jù)


mysql -uroot -p123 < /tmp/full.sql


5.第四步:找出主庫全備時刻的位置點

[root@db-51 ~]# sed -n '22p' /tmp/full.sql

-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;


6.第五步:主庫創(chuàng)建復制用的賬號密碼

grant replication slave on *.* to repl@'10.0.0.%' identified by '123';

select user,host from mysql.user;



repl遠程登錄測試


查看主從數(shù)據(jù)庫數(shù)據(jù)是否一致

7.第六步:從庫配置同步命令

mysql -uroot -p123




CHANGE MASTER TO

MASTER_HOST='10.0.0.51',

MASTER_USER='repl',

MASTER_PASSWORD='123',

MASTER_PORT=3306,

MASTER_LOG_FILE='mysql-bin.000002',

MASTER_LOG_POS=154,

MASTER_CONNECT_RETRY=10;


8.第七步:從庫開啟復制功能

start slave;


9.第八步:從庫檢查同步是否完成

show slave status\G


MySQL主從復制示意圖


10.報錯總結:

故障1:IO 顯示NO

Slave_IO_Running: No

Slave_SQL_Running: Yes

報錯內容:

Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).

原因:

The slave I/O thread stops because master and slave have equal MySQL server ids

從庫和主庫設置了相同的server_id

故障2:SQL NO

Slave_IO_Running: Yes

Slave_SQL_Running: No

原因:

主庫上執(zhí)行的SQL語句在從庫上執(zhí)行失敗了

解決:

讓這條SQL語句在從庫上可以執(zhí)行成功

解決完之后記得重啟復制功能

stop slave;

start slave;

第3章 主從復制原理

1.主從復制涉及到的文件及線程

主庫涉及到的文件: binlog

從庫涉及到的文件: master.info db-52-relay-bin-00000x relay-log.info

?master.info



主庫涉及到的線程: Binlog Dump

從庫涉及到的線程: Slave_IO Slave_SQL

2.主從復制原理

第一步: 從庫讀取master.info里的信息連接主庫

master.info里包含了主庫的IP,端口,賬號,密碼,請求的binlog文件,post位置點

第二步: 主庫驗證從庫的連接信息Binlog Dump一直監(jiān)控著binlog文件并截取從庫需要的SQL語句

第三步: 主庫發(fā)送binlog數(shù)據(jù)



第四步: IO線程從庫接收主庫的數(shù)據(jù),并存儲到自己的relay-bin日志里


第五步: IO線程從庫存儲完之后會更新自己的master.info信息


第六步: SQL線程查看自己的relay-log.info文件,讀取自己上一次執(zhí)行過的位置




第七步: SQL線程回放relay-bin日志里SQL語句


第八步: SQL線程將最新執(zhí)行過的位置點更新到relay-log.info文件里

第4章 主從復制監(jiān)控

1.主庫狀態(tài)

mysql -uroot -p123 -e 'show processlist;'|grep 'Binlog Dump'

2.從庫狀態(tài)

查看信息:

mysql -uroot -p123 -e 'show slave status\G'

主庫連接信息、binlog位置信息:

Master_Host: 10.0.0.51

Master_User: repl

Master_Port: 3306

Connect_Retry: 10

Master_Log_File: mysql-bin.000003

Read_Master_Log_Pos: 154



從庫中relay-log的回放信息:

Relay_Log_File: db-52-relay-bin.000006

Relay_Log_Pos: 367

Relay_Master_Log_File: mysql-bin.000003

Exec_Master_Log_Pos: 154



線程監(jiān)控信息:主要用來排查主從故障-重點監(jiān)控:

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

落后于主庫的秒數(shù)-重點監(jiān)控:

Seconds_Behind_Master: 0

過濾復制相關信息:

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

延時從庫狀態(tài)信息:

SQL_Remaining_Delay: NULL

GTID復制信息:

Retrieved_Gtid_Set:

Executed_Gtid_Set:

Auto_Position: 0

第5章 主從復制故障

1.IO故障

故障原因:

賬號,密碼,端口,IP寫錯

2.SQL故障

主庫和從庫數(shù)據(jù)沖突:

建議:

以主庫的數(shù)據(jù)為主,手動修復從庫沖突的數(shù)據(jù)

如果沖突的數(shù)據(jù)過多,干脆直接重做從庫

不建議:

跳過此條錯誤

stop slave;

set global sql_slave_skip_counter = 1;

start slave;

更不推薦:

直接按錯誤代碼跳過

vi /etc/my.cnf

slave-skip-errors = 1032,1062,1007

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末倡缠,一起剝皮案震驚了整個濱河市东涡,隨后出現(xiàn)的幾起案子虑乖,更是在濱河造成了極大的恐慌刊侯,老刑警劉巖汁政,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件勉躺,死亡現(xiàn)場離奇詭異侈百,居然都是意外死亡瓮下,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門钝域,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讽坏,“玉大人,你說我怎么就攤上這事例证÷肺兀” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵织咧,是天一觀的道長拣宰。 經(jīng)常有香客問我,道長烦感,這世上最難降的妖魔是什么巡社? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮手趣,結果婚禮上晌该,老公的妹妹穿的比我還像新娘肥荔。我一直安慰自己,他們只是感情好朝群,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布燕耿。 她就那樣靜靜地躺著,像睡著了一般姜胖。 火紅的嫁衣襯著肌膚如雪誉帅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天右莱,我揣著相機與錄音蚜锨,去河邊找鬼。 笑死慢蜓,一個胖子當著我的面吹牛亚再,可吹牛的內容都是我干的。 我是一名探鬼主播晨抡,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼氛悬,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了耘柱?” 一聲冷哼從身側響起如捅,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎调煎,沒想到半個月后伪朽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡汛蝙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年烈涮,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窖剑。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡坚洽,死狀恐怖,靈堂內的尸體忽然破棺而出西土,到底是詐尸還是另有隱情讶舰,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布需了,位于F島的核電站跳昼,受9級特大地震影響,放射性物質發(fā)生泄漏肋乍。R本人自食惡果不足惜鹅颊,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望墓造。 院中可真熱鬧堪伍,春花似錦锚烦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至尸闸,卻和暖如春彻亲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吮廉。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工苞尝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人茧痕。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像恼除,于是被迫代替她去往敵國和親踪旷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內容