最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL讀寫分離的項(xiàng)目時(shí)間實(shí)踐

 更新時(shí)間:2025年03月06日 10:58:24   作者:Bean295  
本文主要介紹了MySQL數(shù)據(jù)庫(kù)的讀寫分離技術(shù),包括一主一從和雙主雙從兩種架構(gòu),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

讀寫分離,簡(jiǎn)單地說(shuō)是把對(duì)數(shù)據(jù)庫(kù)的讀和寫操作分開,以對(duì)應(yīng)不同的數(shù)據(jù)庫(kù)服務(wù)器。主數(shù)據(jù)庫(kù)提供寫操作,從數(shù)據(jù)庫(kù)提供讀操作,這樣能有效地減輕單臺(tái)數(shù)據(jù)庫(kù)的壓力。

一、一主一從讀寫分離

1、一主一從原理:

MySQL的主從復(fù)制,是基于二進(jìn)制日志(binlog)實(shí)現(xiàn)的。

10.1.1.10 :master

10.1.1.20 :slave

檢查主從同步是否生效:

2、一主一從讀寫分離

(1) 介紹:

MyCat控制后臺(tái)數(shù)據(jù)庫(kù)的讀寫分離和負(fù)載均衡由schema.xml文件datahost標(biāo)簽的balance屬性控制。

負(fù)載均衡策略 balance 配置:

(2) 配置:

① 修改 schema.xml:

② 修改 server.xml:

③ 啟動(dòng)mycat:

balance 值設(shè)置為3,所有的讀操作均由從庫(kù)承擔(dān),從庫(kù)的數(shù)據(jù)變更不會(huì)同步到從庫(kù)。如果從庫(kù)與主庫(kù)上的數(shù)據(jù)不一致,mycat查詢數(shù)據(jù)得到的結(jié)果是從庫(kù)中的數(shù)據(jù)。

加入主庫(kù)宕機(jī),查詢操作不受影響,但插入、更新等操作則無(wú)法實(shí)現(xiàn)。

二、雙主雙從讀寫分離

1、雙主雙從搭建:

(1) 介紹:

一個(gè)主機(jī) Master1 用于處理所有寫請(qǐng)求,它的從機(jī) Slave1 和另一臺(tái)主機(jī) Master2 還有它的從機(jī) Slave2 負(fù)責(zé)所有讀請(qǐng)求。當(dāng) Master1 主機(jī)宕機(jī)后,Master2 主機(jī)負(fù)責(zé)寫請(qǐng)求,Master1 、 Master2 互為備機(jī)。

10.1.1.10 :mycat 服務(wù)器

10.1.1.30 :master1

10.1.1.40 :master2

10.1.1.50 :slave1

10.1.1.60 :slave2

(2) 主庫(kù)配置:

① master1(10.1.1.30)

● 修改配置文件:

vim /etc/my.cnf

#mysql 服務(wù)ID,保證整個(gè)集群環(huán)境中唯一,取值范圍:1 – 2^32-1,默認(rèn)為1
server-id=1
#指定同步的數(shù)據(jù)庫(kù)
binlog-do-db=db01
binlog-do-db=db02
binlog-do-db=db03

# 在作為從數(shù)據(jù)庫(kù)的時(shí)候,有寫入操作也要更新二進(jìn)制日志文件

log-slave-updates

log-slave-updates:雙主雙從結(jié)構(gòu)下,兩個(gè)主庫(kù)不僅互為對(duì)方的從庫(kù),也有自己的從庫(kù),slave1、2需要讀取master1、2的二進(jìn)制日志文件保證數(shù)據(jù)同步。

● 重啟mysql服務(wù)器:systemctl restart mysqld

● 創(chuàng)建賬戶并授權(quán):

CREATE USER 'itcast'@'%' IDENTIFIED WITH mysql_native_password BY'6666' ;
GRANT REPLICATION SLAVE ON *.* TO 'itcast'@'%';

查看二進(jìn)制日志坐標(biāo):

② master2(10.1.1.40)

配置步驟與master1類似:

vim /etc/my.cnf

server-id=3
binlog-do-db=db01
binlog-do-db=db02
binlog-do-db=db03
log-slave-updates
systemctl restart mysqld

CREATE USER 'itcast'@'%' IDENTIFIED WITH mysql_native_password BY'6666' ;

GRANT REPLICATION SLAVE ON *.* TO 'itcast'@'%';

(3) 從庫(kù)配置:

① slave1(10.1.1.50)

● 修改配置文件

vim /etc/my.cnf

#mysql 服務(wù)ID,保證整個(gè)集群環(huán)境中唯一,取值范圍:1 – 23^2-1,默認(rèn)為1

server-id=2

systemctl restart mysqld

● 關(guān)聯(lián)對(duì)應(yīng)的主庫(kù):

CHANGE MASTER TO MASTER_HOST='10.1.1.30', MASTER_USER='itcast', MASTER_PASSWORD='6666', MASTER_LOG_FILE='binlog.000010', MASTER_LOG_POS=663;

● 啟動(dòng)主從復(fù)制,查看從庫(kù)狀態(tài):

start slave;

show slave status \G;

② slave2(10.1.1.60)

● 修改配置文件

vim /etc/my.cnf

#mysql 服務(wù)ID,保證整個(gè)集群環(huán)境中唯一,取值范圍:1 – 23^2-1,默認(rèn)為1

server-id=4

systemctl restart mysqld

● 關(guān)聯(lián)對(duì)應(yīng)的主庫(kù):

CHANGE MASTER TO MASTER_HOST='10.1.1.40', MASTER_USER='itcast', MASTER_PASSWORD='6666', MASTER_LOG_FILE='binlog.000009', MASTER_LOG_POS=663;

● 啟動(dòng)主從復(fù)制,查看從庫(kù)狀態(tài):

start slave;

show slave status \G;

(4) 兩臺(tái)主庫(kù)互相復(fù)制:

① master1:

CHANGE MASTER TO MASTER_HOST='10.1.1.40', MASTER_USER='itcast', MASTER_PASSWORD='6666', MASTER_LOG_FILE='binlog.000009', MASTER_LOG_POS=663;

start slave;

show slave status \G;

② master2:

CHANGE MASTER TO MASTER_HOST='10.1.1.30', MASTER_USER='itcast', MASTER_PASSWORD='6666', MASTER_LOG_FILE='binlog.000010', MASTER_LOG_POS=663;

start slave;

show slave status \G;

(5) 測(cè)試:

在master1上創(chuàng)庫(kù)創(chuàng)表,插入數(shù)據(jù):

create database db01;
use db01;
create table tb_user(
id int(11) not null,
name varchar(50) not null,
sex varchar(1),
primary key (id)
)engine=innodb default charset=utf8;
insert into tb_user(id,name,sex) values(1,'Tom','1');
insert into tb_user(id,name,sex) values(2,'Trigger','0');
insert into tb_user(id,name,sex) values(3,'Dawn','1');
insert into tb_user(id,name,sex) values(4,'Jack Ma','1');
insert into tb_user(id,name,sex) values(5,'Coco','0');
insert into tb_user(id,name,sex) values(6,'Jerry','1');

2、雙主雙從讀寫分離:

(1) 介紹:

MyCat控制后臺(tái)數(shù)據(jù)庫(kù)的讀寫分離和負(fù)載均衡由schema.xml文件datahost標(biāo)簽的balance屬性控制,通過(guò)writeType及switchType來(lái)完成失敗自動(dòng)切換的。

(2) 配置:

① 配置 schema.xml:

配置邏輯庫(kù)和數(shù)據(jù)節(jié)點(diǎn):

配置節(jié)點(diǎn)主機(jī):

● balance="1" :代表全部的 readHost 與 stand by writeHost 參與 select 語(yǔ)句的負(fù)載均衡,即 M2,S1,S2 都參與 select 語(yǔ)句的負(fù)載均衡。

● writeType 0:寫操作都轉(zhuǎn)發(fā)到第1臺(tái)writeHost,writeHost1掛了會(huì)切換到writeHost2上;1:所有的寫操作都隨機(jī)地發(fā)送到配置的writeHost上。

● switchType -1 : 不自動(dòng)切換 ;1 : 自動(dòng)切換。

② 修改 server.xml:

③ 重啟啟動(dòng)mycat進(jìn)行測(cè)試:

當(dāng)主節(jié)點(diǎn)master1宕機(jī)后,在mycat上執(zhí)行insert和select操作均不受影響,說(shuō)明雙主雙從讀寫分離配置成功。

到此這篇關(guān)于MySQL讀寫分離的項(xiàng)目時(shí)間實(shí)踐的文章就介紹到這了,更多相關(guān)MySQL讀寫分離內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • DB為何大量出現(xiàn)select @@session.tx_read_only 詳解

    DB為何大量出現(xiàn)select @@session.tx_read_only 詳解

    這篇文章主要給大家介紹了關(guān)于DB為何大量出現(xiàn)select @@session.tx_read_only 的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • 獲取MySQL的表中每個(gè)userid最后一條記錄的方法

    獲取MySQL的表中每個(gè)userid最后一條記錄的方法

    這篇文章主要介紹了獲取MySQL的表中每個(gè)userid最后一條記錄的方法,并且針對(duì)userid不唯一的情況,需要的朋友可以參考下
    2015-05-05
  • MySQL索引總結(jié)(Index?Type)

    MySQL索引總結(jié)(Index?Type)

    本文主要介紹了MySQL索引總結(jié)(Index?Type),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Mysql分庫(kù)分表實(shí)現(xiàn)方式

    Mysql分庫(kù)分表實(shí)現(xiàn)方式

    這篇文章詳細(xì)介紹了分庫(kù)分表的概念,原因,如何實(shí)現(xiàn),以及不同中間件的優(yōu)缺點(diǎn),同時(shí),也介紹了如何進(jìn)行數(shù)據(jù)遷移和擴(kuò)容縮容,以及如何處理分庫(kù)分表后的ID和事務(wù)問(wèn)題
    2025-02-02
  • Mysql修改字段名和修改字段類型的實(shí)例代碼

    Mysql修改字段名和修改字段類型的實(shí)例代碼

    MySQL中如何使用SQL語(yǔ)句來(lái)修改表中某一個(gè)字段的數(shù)據(jù)類型呢,下面這篇文章主要給大家介紹了關(guān)于Mysql修改字段名和修改字段類型的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • MySQL如何添加環(huán)境變量和初始化MySQL

    MySQL如何添加環(huán)境變量和初始化MySQL

    本文主要介紹了如何在Windows系統(tǒng)中添加MySQL的環(huán)境變量以及如何初始化MySQL,通過(guò)添加環(huán)境變量,可以在任意一個(gè)命令提示符中直接調(diào)用MySQL的相關(guān)程序,大大簡(jiǎn)化了操作,初始化MySQL時(shí),需要新建一個(gè)配置文件并指定默認(rèn)編碼集和存儲(chǔ)引擎,如果初始化過(guò)程中出現(xiàn)錯(cuò)誤
    2024-11-11
  • mysql ONLY_FULL_GROUP_BY設(shè)置sql_mode無(wú)效排查問(wèn)題(windows)

    mysql ONLY_FULL_GROUP_BY設(shè)置sql_mode無(wú)效排查問(wèn)題(windows)

    這篇文章主要介紹了mysql ONLY_FULL_GROUP_BY設(shè)置sql_mode無(wú)效排查問(wèn)題(windows),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • MySQL數(shù)據(jù)庫(kù)常用操作和技巧(DBA必備知識(shí))

    MySQL數(shù)據(jù)庫(kù)常用操作和技巧(DBA必備知識(shí))

    MySQL數(shù)據(jù)庫(kù)可以說(shuō)是DBA們最常見和常用的數(shù)據(jù)庫(kù)之一,為了方便大家使用,老MySQL DBA總結(jié)了MySQL數(shù)據(jù)庫(kù)最常見和最常使用的一些經(jīng)驗(yàn)和技巧,與分享大家!
    2011-03-03
  • MySQL查看事務(wù)與鎖的操作示例小結(jié)

    MySQL查看事務(wù)與鎖的操作示例小結(jié)

    本文介紹了MySQL中事務(wù)和鎖的基本概念以及不同隔離級(jí)別下的鎖類型,并通過(guò)實(shí)際測(cè)試驗(yàn)證了這些鎖的使用情況,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • MySQL不推薦使用uuid或者雪花id作為主鍵的原因分析

    MySQL不推薦使用uuid或者雪花id作為主鍵的原因分析

    在數(shù)據(jù)庫(kù)設(shè)計(jì)中,選擇適當(dāng)?shù)闹麈I類型對(duì)于數(shù)據(jù)的存儲(chǔ)和查詢效率至關(guān)重要,在MySQL中,有些開發(fā)者傾向于使用UUID或者雪花ID作為主鍵,以確保數(shù)據(jù)的唯一性,本文將探討在MySQL中不推薦使用UUID或者雪花ID作為主鍵的原因,并與其他主鍵類型進(jìn)行差異化對(duì)比
    2023-11-11

最新評(píng)論

西昌市| 普宁市| 青川县| 东兴市| 高密市| 许昌市| 辛集市| 枣庄市| 周口市| 公安县| 博爱县| 柘城县| 梁山县| 突泉县| 清苑县| 渭源县| 景宁| 和林格尔县| 寻甸| 雅安市| 泰州市| 介休市| 清镇市| 新泰市| 楚雄市| 海伦市| 区。| 黔西| 越西县| 茶陵县| 彰武县| 定兴县| 湛江市| 河曲县| 理塘县| 搜索| 博白县| 辉南县| 三原县| 平湖市| 景宁|