久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL主從復(fù)制怎樣實(shí)現(xiàn)高可用

144次閱讀
沒有評論

共計(jì) 2879 個字符,預(yù)計(jì)需要花費(fèi) 8 分鐘才能閱讀完成。

MySQL 主從復(fù)制怎樣實(shí)現(xiàn)高可用,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

1. MySQL 主從復(fù)制實(shí)現(xiàn)高可用 1.1. 數(shù)據(jù)庫永遠(yuǎn)是系統(tǒng)最脆弱的環(huán)節(jié)

80% 都是查詢

緩存來保護(hù)數(shù)據(jù)庫:Redis、ElasticSearch

數(shù)據(jù)庫系統(tǒng)要有一定的容災(zāi)能力

數(shù)據(jù)狀態(tài)化明顯

1.2. 數(shù)據(jù)庫的 HA 實(shí)現(xiàn)的方式 1.2.1. 高可以計(jì)算方式

MTTF:平均無故障時間

MTTR:平均維護(hù)時間

HA=MTTF/(MTTF+MTTR)* 100%(這就是常說的 99.95%)

1.2.2. 數(shù)據(jù)庫高可用的三種方式

主從(非對稱)

master-slave,熱數(shù)據(jù)備份,從庫一般是用來實(shí)時備份,從機(jī)可以快速切換為主庫,讀寫分離(數(shù)據(jù)的一致性),從庫一般設(shè)置為只讀

前端應(yīng)用走緩存,后端應(yīng)用 Report 走從庫查

對稱方式

兩個節(jié)點(diǎn),互為主從,雙主模式(兩個數(shù)據(jù)庫的主鍵如果是自動生成需要初始設(shè)置成不一樣的)

A-1001,1003,1005,B-1002,1004,1006

雙主下數(shù)據(jù)同步一定要實(shí)時

多機(jī)方式

MHA

MMM

MyCat(可以實(shí)現(xiàn)雙主機(jī)熱切)

1.2.3. 主從實(shí)現(xiàn)的邏輯

資源:兩臺數(shù)據(jù)庫

Master 會將修改記錄進(jìn) binlog

Slave 從主庫 binlog 讀取數(shù)據(jù)寫入 relaylog

relaylog 和 binlog 的格式一樣,可以用 mysqlbinlog 讀取 relaylog

mysql show relaylog events in relay-bin.000001

binlog 的 postition 方式

GTID 方式:MySQL 版本 =5.7

1.3. 配置主從復(fù)制

Master 服務(wù)器配置

#  慢查詢開關(guān)
slow_query_log=ON
slow_query_log_file=/usr/local/slowlog/slow.log
slow_launch_time=4
long_query_time=3
# chown -R mysql:mysql /usr/local/slowlog/

binlog 設(shè)置

server_id=213
log_bin=/usr/local/binlog/mysql-bin #  只需要給名字前綴
binlog_format=row
expire_logs_days=3
max_binlog_size=200m

Slave 服務(wù)器配置

#  慢查詢開關(guān)
slow_query_log=ON
slow_query_log_file=/usr/local/slowlog/slow.log
slow_launch_time=4
long_query_time=3
# chown -R mysql:mysql /usr/local/slowlog/

從庫的主從設(shè)置

server_id=214
relay_log=/usr/local/relaylog/relay-bin
relay_log_recovery=1 # 確保完整性
read_only=on # 從服務(wù)器只讀
skip_slave_start=on #slave 重啟后不會自己啟動復(fù)制鏈路,需要手動啟動,建議手動啟動,好處是檢查無誤后啟動
master_info_repository=TABLE #  將主從服務(wù)的信息保存進(jìn)表
relay_log_info_repository=TABLE #  將主從服務(wù)的信息保存進(jìn)表 

主從指明不同步的數(shù)據(jù)庫

# Master
#  不同步數(shù)據(jù)庫
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#  只同步某一些數(shù)據(jù)庫
binlog-do-db=icoding_admin
# Slave
#  復(fù)制哪些數(shù)據(jù)庫
replicate-do-db=icoding_admin
replicate-do-db=game
#  不復(fù)制哪些數(shù)據(jù)庫
replicate-ignore-db=mysql
replicate-ignore-db=information_schema

先 Master 上建立授權(quán)賬號

# Master 授權(quán)給 slave
mysql  use mysql;
mysql  grant replication slave on *.* to  synuser @ 192.168.0.214  identified by  123456 
mysql  flush privileges;

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

# Master 和 Slave 的數(shù)據(jù)庫版本要一致,Master =Slave
mysqldump -uroot -p123456 -h227.0.0.1 --flush-logs --master-data=2 --routines --triggers --events --single-transaction --databases icoding_admin   mydb.sql
#CHANGE MASTER TO MASTER_LOG_FILE= mysql-bin.000004 , MASTER_LOG_POS=154;  就用導(dǎo)出的日志 pos

啟動復(fù)制鏈路

#  在 slave 上執(zhí)行
mysql  
change master to master_host= 192.168.0.213 ,
master_port=3306,
master_user= synuser ,
master_password= 123456 ,
master_log_file= mysql-bin.000004 ,
master_log_pos=154;

注意事項(xiàng)

 主從復(fù)制的時候主從數(shù)據(jù)庫的 UUID 不能一樣,如果是鏡像方式,啟動前將 UUID 文件刪除,會重新創(chuàng)建
cd /var/lib/mysql
cat auto.cnf #  將他刪除
server-uuid=890980d9-b072-11ea-8ab8-00163e03668d

啟動主從復(fù)制

# show slave status \G  可以查看主從復(fù)制的狀態(tài)和日志錯誤
#  啟動 slave
mysql  start slave;
#  停止 slave
mysql  stop slave;

作業(yè) 1:搭建一個雙主的結(jié)構(gòu)

使用 GTID 方式進(jìn)行復(fù)制鏈路

#  默認(rèn) GTID 是不開啟的
#  如果開啟以下操作不可用
# create table ..... select * from xxx;  不可用
#  在一個事務(wù)里不能創(chuàng)建和刪除表
#  在一個事務(wù)里更新 innodb 引擎和 myisam 不可用 

無意中刪除了一個數(shù)據(jù),可以做延時從庫

#  從庫做備份就無法做到數(shù)據(jù)的及時恢復(fù)
#  讓我的從庫做到延時同步
mysql  stop slave;
mysql  change master to master_delay=10; #  延時 10 秒
mysql  start slave;
mysql  show slave status \G;

master(實(shí)時 slave,延時 slave)

看完上述內(nèi)容,你們掌握 MySQL 主從復(fù)制怎樣實(shí)現(xiàn)高可用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝各位的閱讀!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-17發(fā)表,共計(jì)2879字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 大同县| 涞源县| 潍坊市| 合水县| 彝良县| 松阳县| 宣化县| 龙井市| 琼海市| 苏尼特右旗| 丰县| 霸州市| 南澳县| 大安市| 伽师县| 新余市| 库尔勒市| 南陵县| 铜鼓县| 赣榆县| 绥宁县| 武邑县| 高邑县| 南开区| 衡阳市| 桂林市| 定远县| 兴业县| 莎车县| 新源县| 岫岩| 西宁市| 垣曲县| 苍溪县| 永丰县| 万荣县| 读书| 阿巴嘎旗| 涟源市| 通榆县| 汉中市|