日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

大家經(jīng)常聽說主從復(fù)制,那么主從復(fù)制的意義?能解決的問題有哪些?主從復(fù)制能解決的問題就是在我們平時(shí)開發(fā)的程序中操作數(shù)據(jù)庫的時(shí)候,大多數(shù)的情況查詢的操作大大超過了寫的操作,也就說對數(shù)據(jù)庫讀取數(shù)據(jù)的壓力比較大的問題,為了保證數(shù)據(jù)庫操作的效率,我們一般把讀的操作放在一個(gè)數(shù)據(jù)庫執(zhí)行(從庫),比較耗時(shí)與頻繁I/O的操作放在另外一個(gè)數(shù)據(jù)庫(我們稱之為主庫);這樣做的意義就是減輕主庫操作的壓力,主從庫可以各行其事,提高了數(shù)據(jù)庫的操作效率!

一、主從復(fù)制的原理

主庫會生成一個(gè)I/O操作線程進(jìn)去寫的的操作,而從庫則生成兩個(gè)線程,其一是I/O讀取線程,其二是一個(gè)SQL線程。

總結(jié)如下三點(diǎn):

1、主庫將數(shù)據(jù)的操作記錄到一個(gè)二進(jìn)制日志中(即:binary log),也就是配置文件中指定的log-bin指定的文件就是日志文件。

2、從庫將主庫的日志文件拷貝到他的中繼日志即配置文件中指定的relay log日志文件中,I/O線程去請求主庫的bin-log日志,并將日志寫入到relay log中繼日志中,此時(shí)主庫會生成一個(gè)log dump線程,用來給從庫I/O線程傳輸bin-log日志件。

3、從庫會更新relay log文件中的操作,將數(shù)據(jù)的改變在從庫中進(jìn)行數(shù)據(jù)重演即重新執(zhí)行一次,即SQL線程執(zhí)行操作,將日志文件中的記錄變?yōu)閿?shù)據(jù)操作行為再次執(zhí)行,以達(dá)到主從數(shù)據(jù)最終一致性的目的。

二、主從復(fù)制原理圖

注意

需要注意的是主從復(fù)制需要大量的I/O操作,所以延時(shí)是不可避免的。

三、準(zhǔn)備工作

準(zhǔn)備兩臺服務(wù)器(模擬一主一從),并安裝相同版本的MySQL數(shù)據(jù)庫。

主庫(master)地址:192.168.197.132 端口:3306。

從庫(slave)地址:197.168.197.131 端口:3306。

版本:MySQL 8.0.25。

準(zhǔn)備工作注意事項(xiàng):

1、 每個(gè)master可以有多個(gè)slave,每個(gè)slave只屬于一個(gè)master;

2、 數(shù)據(jù)庫的版本必須保證一致;

3、 數(shù)據(jù)庫的數(shù)據(jù)必須保證一致;

4、 主庫與從庫中配置文件中的server_id都必須唯一。

四、主庫配置

配置文件修改my.cnf的[mysqld]欄位下,所有配置文件路徑等不要出現(xiàn)中文、空格等非法操作。

4.1 配置文件

# 主機(jī)my.cnf配置文件如下:

#主服務(wù)器唯一ID

server-id=1

#啟用二進(jìn)制日志

log-bin=master-bin

#log-error=/opt/log #出錯(cuò)日志

#設(shè)置不要復(fù)制的數(shù)據(jù)庫

binlog-ignore-db=testDB

#設(shè)置需要復(fù)制的數(shù)據(jù)庫

binlog-do-db=mydb2

# 設(shè)置logbin格式,默認(rèn)就是statement

# statement:#日志記錄的是主機(jī)數(shù)據(jù)庫的寫指令 ,獲取默認(rèn)系統(tǒng)參數(shù)會出現(xiàn)數(shù)據(jù)不同步的情況,基本是可以忍受的,開發(fā)中大多數(shù)情況用的就是這種

# row:#基本不用

# mixed:#新出來的,與statement差不多,不會出現(xiàn)數(shù)據(jù)不同步現(xiàn)象

binlog_format=STATEMENT

4.2 操作命令

主庫創(chuàng)建從庫同步的用戶,并授權(quán)。

操作命令如下:

# 創(chuàng)建slave用戶

CREATE USER 'slave01'@'%';

# 設(shè)置密碼

ALTER USER 'slave01'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

# 授權(quán)

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

flush privileges;

查詢主節(jié)點(diǎn)信息命令:

SHOW MASTER STATUS

結(jié)果如下圖:

需要記錄下Position值,需要在從庫中設(shè)置同步起始值,特別重要,到此為止主庫切記不要再動任何操作。

五、從庫配置

從庫的配置就更加少了,除了server-id依然要保持唯一性,需要再加一個(gè)中繼日志配置即可。

5.1 配置文件

# 從機(jī)my.cnf配置文件如下

# server-id保證唯一并配置修改中繼日志

server-id=2

# MySQL中繼日志

relay-log=mysql-relay

注意

修改完配置文件需要重新啟動數(shù)據(jù)庫服務(wù)。

重啟命令:

systemctl restart mysqldSUMMER

5.2 操作命令

從庫執(zhí)行配置主從關(guān)系:

CHANGE MASTER TO

MASTER_HOST = '192.168.197.132',

MASTER_PORT = 3306,

MASTER_USER = 'slave01',

MASTER_PASSWORD = '123456',

MASTER_LOG_FILE = 'master-bin-log.000001',

MASTER_LOG_POS = 1048;

語句詳解:

master_port:主庫的ip地址

master_port:主庫的端口

master_user:用戶名

master_password:密碼

master_log_file:上節(jié)中主庫查詢的file項(xiàng)對應(yīng)的值

master_log_pos:上節(jié)中主庫查詢的的值

啟動slave同步:

START SLAVE;

查看同步狀態(tài):

SHOW SLAVE STATUS;

六、主從復(fù)制測試成果

在主庫創(chuàng)建testdb數(shù)據(jù)庫,刷新從庫即可看到新建的testdb庫;

主庫testdb創(chuàng)建test1表,從庫出現(xiàn)test1表。

主庫修改數(shù)據(jù),從庫跟著改變。

總結(jié)

通過配置主從復(fù)制在一定程度上可以減輕服務(wù)器的壓力,提高應(yīng)用的體驗(yàn);并且可以達(dá)到讀庫與寫庫在數(shù)據(jù)一致性方面達(dá)到最終一致性,寫的操作必須操作于主庫,讀數(shù)據(jù)則沒有限制。

分享到:
標(biāo)簽:MySQL
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定