中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

wordpress做下載型網(wǎng)站6騰訊廣告代理商加盟

wordpress做下載型網(wǎng)站6,騰訊廣告代理商加盟,如何說服客戶做網(wǎng)站,外貿(mào)網(wǎng)站建設(shè)和seo目錄 相關(guān)知識(shí): 1. 主從復(fù)制和讀寫分離 2. mysql 支持的復(fù)制類型 對(duì)比: 一. 主從復(fù)制 1. 原理和工作過程 工作過程: 注意: 中繼日志(Relay Log): 2. 一些理解問題 2.1 為什么要復(fù)制 …

目錄

相關(guān)知識(shí):

1. 主從復(fù)制和讀寫分離

2. mysql 支持的復(fù)制類型

對(duì)比:

一. 主從復(fù)制

1. 原理和工作過程

工作過程:

注意:

中繼日志(Relay Log):

2. 一些理解問題

2.1 為什么要復(fù)制

2.2 誰復(fù)制誰

2.3 數(shù)據(jù)放在什么地方

3. 主從復(fù)制的搭建

① 主從服務(wù)器時(shí)間同步

② 主服務(wù)器的 mysql 配置

③從服務(wù)器的mysql配置

④ 測(cè)試驗(yàn)證

4. 總結(jié):

二. 讀寫分離

1. 相關(guān)知識(shí)

1.1 什么是讀寫分離

1.2?為什么要讀寫分離

1.3 什么時(shí)候要讀寫分離

2. 原理

3. MySQL讀寫分離方式

3.1 基于程序代碼內(nèi)部實(shí)現(xiàn)

3.2 基于中間代理層實(shí)現(xiàn)

4. 讀寫分離的搭建

① amoeba 服務(wù)器安裝java環(huán)境

② 安裝amoeba軟件

③ 配置 amoeba 讀寫分離

④ 客戶端測(cè)試:


相關(guān)知識(shí):

1. 主從復(fù)制和讀寫分離

在實(shí)際的生產(chǎn)環(huán)境中,對(duì)數(shù)據(jù)庫的讀和寫都在同一個(gè)數(shù)據(jù)庫服務(wù)器中,是不能滿足實(shí)際需求的。無論是在安全性、高可用性還是高并發(fā)等各個(gè)方面都是完全不能滿足實(shí)際需求的。因此,通過主從復(fù)制的方式來同步數(shù)據(jù),再通過讀寫分離來提升數(shù)據(jù)庫的并發(fā)負(fù)載能力。有點(diǎn)類似于rsync,但是不同的是rsync是對(duì)磁盤文件做備份,而mysql主從復(fù)制是對(duì)數(shù)據(jù)庫中的數(shù)據(jù)、語句做備份。

2. mysql 支持的復(fù)制類型

① STATEMENT

基于語句的復(fù)制。在服務(wù)器上執(zhí)行sql語句,在從服務(wù)器上執(zhí)行同樣的語句,mysql默認(rèn)采用基于語句的復(fù)制,執(zhí)行效率高。

② ROW

基于行的復(fù)制。把改變的內(nèi)容復(fù)制過去,而不是把命令在從服務(wù)器上執(zhí)行一遍。

③ MIXED

混合類型的復(fù)制。默認(rèn)采用基于語句的復(fù)制,一旦發(fā)現(xiàn)基于語句無法精確復(fù)制時(shí),就會(huì)采用基于行的復(fù)制。

對(duì)比:

STATEMENT:

  • 傳輸效率高,減少延遲。
  • 在從庫更新不存在的記錄時(shí),語句賦值不會(huì)失敗。而行復(fù)制會(huì)導(dǎo)致失敗,從而更早發(fā)現(xiàn)主從之間的不一致。
  • 設(shè)表里有一百萬條數(shù)據(jù),一條sql更新了所有表,基于語句的復(fù)制僅需要發(fā)送一條sql,而基于行的復(fù)制需要發(fā)送一百萬條更新記錄

row:

  • 不需要執(zhí)行查詢計(jì)劃。
  • 不知道執(zhí)行的到底是什么語句。

一. 主從復(fù)制

1. 原理和工作過程

主從復(fù)制基于主mysql服務(wù)器和從mysql服務(wù)器的三個(gè)線程和兩個(gè)日志展開進(jìn)行的:

兩個(gè)日志:二進(jìn)制日志(bin log)?、中繼日志(Relay log)

三個(gè)線程:dump線程、I/O線程、SQL線程

工作過程:

(1)Master 節(jié)點(diǎn)將數(shù)據(jù)的改變記錄成二進(jìn)制日志(bin log),當(dāng)Master上的數(shù)據(jù)發(fā)生改變時(shí),則將其改變寫入二進(jìn)制日志中。
(2)Slave節(jié)點(diǎn)會(huì)在一定時(shí)間間隔內(nèi)對(duì) Master 的二進(jìn)制日志進(jìn)行探測(cè)其是否發(fā)生改變,如果發(fā)生改變,則開始一個(gè)I/O線程請(qǐng)求 Master的二進(jìn)制事件。
(3)同時(shí) Master 節(jié)點(diǎn)為每個(gè)I/O線程啟動(dòng)一個(gè)dump線程,用于向其發(fā)送二進(jìn)制事件,并保存至Slave節(jié)點(diǎn)本地的中繼日志(Relay log)中,Slave節(jié)點(diǎn)將啟動(dòng)SQL線程從中繼日志中讀取二進(jìn)制日志,在本地重放,即解析成 sql 語句逐一執(zhí)行,使得其數(shù)據(jù)和 Master節(jié)點(diǎn)的保持一致,最后I/O線程和SQL線程將進(jìn)入睡眠狀態(tài),等待下一次被喚醒。

注意:

  • 中繼日志通常會(huì)位于 OS 緩存中,所以中繼日志的開銷很小。
  • 復(fù)制過程有一個(gè)很重要的限制,即復(fù)制在 Slave上是串行化的,也就是說 Master上的并行更新操作不能在 Slave上并行操作。

中繼日志(Relay Log)

在MySQL的主從復(fù)制架構(gòu)中,中繼日志(Relay Log)扮演著至關(guān)重要的角色。當(dāng)一個(gè)MySQL服務(wù)器充當(dāng)從服務(wù)器時(shí),它會(huì)從主服務(wù)器接收二進(jìn)制日志(Binlog)事件,并將這些事件存儲(chǔ)在其自身的中繼日志中。中繼日志的主要功能是:

  1. 存儲(chǔ)主服務(wù)器的更改: 主服務(wù)器的二進(jìn)制日志記錄了所有的數(shù)據(jù)變更事件,這些事件通過主從復(fù)制傳輸?shù)綇姆?wù)器后,被暫時(shí)存儲(chǔ)在中繼日志中。

  2. 異步處理: 從服務(wù)器不需要實(shí)時(shí)同步主服務(wù)器的所有更改,而是先將這些更改存放在中繼日志中,然后按照事件發(fā)生的順序依次執(zhí)行。

  3. 故障恢復(fù)和數(shù)據(jù)一致性: 如果從服務(wù)器在處理過程中發(fā)生中斷,重啟后可以從上次執(zhí)行完的位置繼續(xù)讀取并執(zhí)行中繼日志中的事件,從而保持與主服務(wù)器數(shù)據(jù)的一致性。

  4. 多級(jí)復(fù)制: 在復(fù)雜的多級(jí)復(fù)制架構(gòu)中,從服務(wù)器也會(huì)將接收到的主服務(wù)器二進(jìn)制日志事件轉(zhuǎn)存為自己的中繼日志,以便傳遞給下一級(jí)別的從服務(wù)器。

中繼日志文件通常位于從服務(wù)器的特定目錄下,并按照一定的命名規(guī)則(如主機(jī)名加時(shí)間戳)創(chuàng)建。MySQL的IO線程負(fù)責(zé)從主服務(wù)器讀取二進(jìn)制日志事件并寫入中繼日志,SQL線程則負(fù)責(zé)讀取中繼日志并執(zhí)行這些事件以更新從服務(wù)器的數(shù)據(jù)。

優(yōu)點(diǎn):

  • 數(shù)據(jù)分布:通過復(fù)制將數(shù)據(jù)分布到不同地理位置

  • 負(fù)載均衡:讀寫分離以及將讀負(fù)載到多臺(tái)從庫

  • 備份:可作為實(shí)時(shí)備份

  • 高可用性:利用主主復(fù)制實(shí)現(xiàn)高可用

2. 一些理解問題

2.1 為什么要復(fù)制

保證數(shù)據(jù)的完整性

2.2 誰復(fù)制誰

slave(從)?角色復(fù)制 master(主)角色的數(shù)據(jù)

2.3 數(shù)據(jù)放在什么地方

二進(jìn)制文件 mysql-bin-000001--->記錄完整的sql,slave復(fù)制二進(jìn)制文件到本地節(jié)點(diǎn),保存為中繼日志文件方式,最后基于這個(gè)中繼日志進(jìn)行恢復(fù)操作,將執(zhí)行的 sql 同步到自己的數(shù)據(jù)庫當(dāng)中做中達(dá)到與 master 數(shù)據(jù)一致性

3. 主從復(fù)制的搭建

① 主從服務(wù)器時(shí)間同步

主服務(wù)器:

[root@master ~]#yum install ntp -y

[root@master ~]#vim /etc/ntp.confserver 127.127.10.0
fudge 127.127.10.0 stratum 8

[root@master ~]#service ntpd start

從服務(wù)器:

[root@slave1 ~]#yum install ntp ntpdate -y

[root@slave1 ~]#service ntpd start

#進(jìn)行時(shí)間同步
[root@slave1 ~]#/usr/sbin/ntpdate 192.168.44.60#創(chuàng)建計(jì)劃任務(wù)
[root@slave1 ~]#crontab -e
*/30 * * * * /usr/sbin/ntpdate 192.168.44.60#查看計(jì)劃任務(wù)
[root@slave1 ~]#crontab -l

另一個(gè)從同理

② 主服務(wù)器的 mysql 配置

[root@master ~]#vim /etc/my.cnf[mysqld]
....
server-id = 1
log-bin=master-bin
binlog_format=MIXED
log-slave-updates=true

[root@master ~]#systemctl restart mysqld.service

mysql> grant replication slave on *.* to 'myslave'@'192.168.44.%' identified by '123';
#給從服務(wù)器授權(quán)mysql> flush privileges;
#刷新

mysql> show master status;

③從服務(wù)器的mysql配置

[root@slave1 ~]#vim /etc/my.cnf
[mysqld]
.....
server-id = 2
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
relay_log_recovery=1relay_log_recovery = 1  
##當(dāng) slave 從庫宕機(jī)后,假如 relay-log 損壞了,導(dǎo)致一部分中繼日志沒有處理,則自動(dòng)放棄所有未執(zhí)行的 relay-log,并且重新從 master 上獲取日志,這樣就保證了relay-log 的完整性。默認(rèn)情況下該功能是關(guān)閉的,將 relay_log_recovery 的值設(shè)置為 1 時(shí), 可在 slave 從庫上開啟該功能,建議開啟。

[root@slave1 ~]#mysql -uroot -p123#配置同步
mysql> change master to master_host='192.168.44.60',master_user='myslave',master_password='123',master_log_file='master-bin.000001',master_log_pos=603;

mysql> start slave;

#查看slave狀態(tài)
mysql> show slave status\GSlave_IO_Running: Yes				#負(fù)責(zé)與主機(jī)的io通信
Slave_SQL_Running: Yes				#負(fù)責(zé)自己的slave mysql進(jìn)程

另一臺(tái)同理,只要 server-id 不一樣即可

[root@slave2 ~]#vim /etc/my.cnf
[mysqld]
....
server-id = 3
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
relay_log_recovery=1#重啟服務(wù)
systemctl restart mysqldmysql -uroot -p123mysql> change master to master_host='192.168.44.60',master_user='myslave',master_password='123',master_log_file='master-bin.000001',master_log_pos=603;mysql> start slave;mysql> show slave status\G

④ 測(cè)試驗(yàn)證

先在主服務(wù)器上執(zhí)行操作:

在從服務(wù)器查看:

4. 總結(jié):

主從復(fù)制核心部分 兩個(gè)日志 三個(gè)線程
mysql主從復(fù)制原理就是通過主數(shù)據(jù)庫變化記錄到二進(jìn)制日志(bin1og)中,然后從庫讀取主二進(jìn)制日志來去存放到本地最后 sql 線程 把數(shù)據(jù)導(dǎo)入到自己二進(jìn)制(類似)中保持主從數(shù)據(jù)一致

4.1 MySQL 主從復(fù)制的幾個(gè)同步模式

(1)異步復(fù)制(Asynchronous replication)
MySQL默認(rèn)的復(fù)制即是異步的,主庫在執(zhí)行完客戶端提交的事務(wù)后會(huì)立即將結(jié)果返給客戶端,并不關(guān)心從庫是否已經(jīng)接收并處理,這樣就會(huì)有一個(gè)問題,主如果crash掉了,此時(shí)主上已經(jīng)提交的事務(wù)可能并沒有傳到從上,如果此時(shí),強(qiáng)行將從提升為主,可能導(dǎo)致新主上的數(shù)據(jù)不完整。

(2)全同步復(fù)制(Fully synchronous replication)
指當(dāng)主庫執(zhí)行完一個(gè)事務(wù),所有的從庫都執(zhí)行了該事務(wù)才返回給客戶端。因?yàn)樾枰却袕膸靾?zhí)行完該事務(wù)才能返回,所以全同步復(fù)制的性能必然會(huì)收到嚴(yán)重的影響。

(3)半同步復(fù)制(Semisynchronous replication)
介于異步復(fù)制和全同步復(fù)制之間,主庫在執(zhí)行完客戶端提交的事務(wù)后不是立刻返回給客戶端,而是等待至少一個(gè)從庫接收到并寫到relay log中才返回給客戶端。相對(duì)于異步復(fù)制,半同步復(fù)制提高了數(shù)據(jù)的安全性,同時(shí)它也造成了一定程度的延遲,這個(gè)延遲最少是一個(gè)TCP/IP往返的時(shí)間。所以,半同步復(fù)制最好在低延時(shí)的網(wǎng)絡(luò)中使用。

二. 讀寫分離

1. 相關(guān)知識(shí)

1.1 什么是讀寫分離

讀寫分離,基本的原理是讓主數(shù)據(jù)庫處理事務(wù)性增、改、刪操作(INSERT、UPDATE、DELETE),而從數(shù)據(jù)庫處理SELECT查詢操作。數(shù)據(jù)庫復(fù)制被用來把事務(wù)性操作導(dǎo)致的變更同步到集群中的從數(shù)據(jù)庫。

1.2?為什么要讀寫分離

因?yàn)閿?shù)據(jù)庫的“寫”(寫10000條數(shù)據(jù)可能要3分鐘)操作是比較耗時(shí)的。
但是數(shù)據(jù)庫的“讀”(讀10000條數(shù)據(jù)可能只要5秒鐘)。
所以讀寫分離,解決的是,數(shù)據(jù)庫的寫入,影響了查詢的效率。

1.3 什么時(shí)候要讀寫分離

數(shù)據(jù)庫不一定要讀寫分離,如果程序使用數(shù)據(jù)庫較多時(shí),而更新少,查詢多的情況下會(huì)考慮使用。利用數(shù)據(jù)庫主從同步,再通過讀寫分離可以分擔(dān)數(shù)據(jù)庫壓力,提高性能。

2. 原理

讀寫分離就是只在主服務(wù)器上寫只在從服務(wù)器上讀?;镜脑硎亲屩鲾?shù)據(jù)庫處理事務(wù)性操作,而從數(shù)據(jù)庫處理 select 查詢。數(shù)據(jù)庫復(fù)制被用來把主數(shù)據(jù)庫上事務(wù)性操作導(dǎo)致的變更同步到集群中的從數(shù)據(jù)庫。

3. MySQL讀寫分離方式

3.1 基于程序代碼內(nèi)部實(shí)現(xiàn)

在代碼中根據(jù) select、insert 進(jìn)行路由分類,這類方法也是目前生產(chǎn)環(huán)境應(yīng)用最廣泛的。
優(yōu)點(diǎn)是性能較好,因?yàn)樵诔绦虼a中實(shí)現(xiàn),不需要增加額外的設(shè)備為硬件開支;缺點(diǎn)是需要開發(fā)人員來實(shí)現(xiàn),運(yùn)維人員無從下手。
但是并不是所有的應(yīng)用都適合在程序代碼中實(shí)現(xiàn)讀寫分離,像一些大型復(fù)雜的Java應(yīng)用,如果在程序代碼中實(shí)現(xiàn)讀寫分離對(duì)代碼改動(dòng)就較大。

3.2 基于中間代理層實(shí)現(xiàn)

代理一般位于客戶端和服務(wù)器之間,代理服務(wù)器接到客戶端請(qǐng)求后通過判斷后轉(zhuǎn)發(fā)到后端數(shù)據(jù)庫,有以下代表性程序。
(1)MySQL-Proxy。MySQL-Proxy 為 MySQL 開源項(xiàng)目,通過其自帶的 lua 腳本進(jìn)行SQL 判斷。
(2)Atlas。是由奇虎360的Web平臺(tái)部基礎(chǔ)架構(gòu)團(tuán)隊(duì)開發(fā)維護(hù)的一個(gè)基于MySQL協(xié)議的數(shù)據(jù)中間層項(xiàng)目。它是在mysql-proxy 0.8.2版本的基礎(chǔ)上,對(duì)其進(jìn)行了優(yōu)化,增加了一些新的功能特性。360內(nèi)部使用Atlas運(yùn)行的mysql業(yè)務(wù),每天承載的讀寫請(qǐng)求數(shù)達(dá)幾十億條。支持事物以及存儲(chǔ)過程。
(3)Amoeba。由陳思儒開發(fā),作者曾就職于阿里巴巴。該程序由Java語言進(jìn)行開發(fā),阿里巴巴將其用于生產(chǎn)環(huán)境。但是它不支持事務(wù)和存儲(chǔ)過程。

(4)mycat?

Mycat是一款開源的、面向企業(yè)級(jí)的數(shù)據(jù)庫中間件,主要用于解決大并發(fā)、大數(shù)據(jù)量下的數(shù)據(jù)庫訪問問題,尤其適用于MySQL數(shù)據(jù)庫集群。Mycat作為分布式數(shù)據(jù)庫系統(tǒng),能夠?qū)崿F(xiàn)MySQL數(shù)據(jù)庫的讀寫分離、分庫分表、數(shù)據(jù)路由等功能,從而提高數(shù)據(jù)庫的整體性能和擴(kuò)展性。

4. 讀寫分離的搭建

① amoeba 服務(wù)器安裝java環(huán)境

因?yàn)?Amoeba 基于是 jdk1.5 開發(fā)的,所以官方推薦使用 jdk1.5 或 1.6 版本,高版本不建議使用。?

[root@amoba opt]#chmod +x jdk-6u14-linux-x64.bin 
[root@amoba opt]#./jdk-6u14-linux-x64.bin

[root@amoba opt]#vim /etc/profileexport JAVA_HOME=/usr/local/jdk1.6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin/:$PATH:$HOME/bin
export AMOEBA_HOME=/usr/local/amoeba
export PATH=$PATH:$AMOEBA_HOME/bin

② 安裝amoeba軟件

#創(chuàng)建amoeba 的解壓目錄
[root@amoba opt]#mkdir /usr/local/amoeba[root@amoba opt]#tar zxvf amoeba-mysql-binary-2.2.0.tar.gz -C /usr/local/amoeba/#增加目錄權(quán)限
[root@amoba opt]#chmod -R 755 /usr/local/amoeba/
#開啟amoeba
[root@amoba opt]#/usr/local/amoeba/bin/amoeba

③ 配置 amoeba 讀寫分離

主服務(wù)器授權(quán):

mysql> grant all on *.* to test@'192.168.44.%' identified by '123';

從服務(wù)器授權(quán):

mysql> grant all on *.* to test@'192.168.44.%' identified by '123';

另一臺(tái)

amomeba 主機(jī)amoeba.xml 配置文件的修改:

vim amoeba.xml--30行--
<property name="user">amoeba</property>
--32行-- 
<property name="password">123</property>
--115行--
<property name="defaultPool">master</property>
--117-去掉注釋-
<property name="writePool">master</property>
<property name="readPool">slaves</property>

再進(jìn)行另一個(gè)備份

?Aomeba 主機(jī) dbServers.xml 配置文件的設(shè)置:

vim dbServers.xml--23行--注釋掉  作用:默認(rèn)進(jìn)入test庫 以防m(xù)ysql中沒有test庫時(shí),會(huì)報(bào)錯(cuò)
<!-- <property name="schema">test</property> -->
--26--修改
<property name="user">test</property>
--28-30--去掉注釋
<property name="password">123</property>
--45--修改,設(shè)置主服務(wù)器的名Master
<dbServer name="master"  parent="abstractServer">
--48--修改,設(shè)置主服務(wù)器的地址
<property name="ipAddress">192.168.44.60</property>
--52--修改,設(shè)置從服務(wù)器的名slave1
<dbServer name="slave1"  parent="abstractServer">
--55--修改,設(shè)置從服務(wù)器1的地址
<property name="ipAddress">192.168.44.50</property>
--58--復(fù)制上面6行粘貼,設(shè)置從服務(wù)器2的名slave2和地址
<dbServer name="slave2"  parent="abstractServer">
<property name="ipAddress">192.168.44.40</property>
--65行--修改
<dbServer name="slaves" virtual="true">
--71行--修改
<property name="poolNames">slave1,slave2</property>

啟動(dòng)

/usr/local/amoeba/bin/amoeba start &					
#后臺(tái)啟動(dòng)Amoeba軟件,按ctrl+c 返回

查看端口

netstat -anpt | grep java或者
lsof -i:8066

④ 客戶端測(cè)試:

安裝mariadb?

啟動(dòng)

連接數(shù)據(jù)庫

[root@amoba ~]#mysql -uamoeba -p123 -h192.168.44.30 -P8066

主服務(wù)器:

先在主從之間是開啟主從同步的,從里面也創(chuàng)建了class表

然后,我們停掉兩臺(tái)從服務(wù)器

然后在主服務(wù)器里面插入數(shù)據(jù)

mysql> insert into class values(1,'master','run');

從里面插入數(shù)據(jù)

然后我們?nèi)タ蛻舳瞬樵?/p>

然后開啟主從復(fù)制

問題:

① 主從同步復(fù)制原理

主從復(fù)制基于主mysql服務(wù)器和從mysql服務(wù)器的三個(gè)線程和兩個(gè)日志展開進(jìn)行的:

兩個(gè)日志:二進(jìn)制日志(bin log)?、中繼日志(Relay log)

三個(gè)線程:dump線程、I/O線程、SQL線程

工作過程:

(1)Master 節(jié)點(diǎn)將數(shù)據(jù)的改變記錄成二進(jìn)制日志(bin log),當(dāng)Master上的數(shù)據(jù)發(fā)生改變時(shí),則將其改變寫入二進(jìn)制日志中。
(2)Slave節(jié)點(diǎn)會(huì)在一定時(shí)間間隔內(nèi)對(duì) Master 的二進(jìn)制日志進(jìn)行探測(cè)其是否發(fā)生改變,如果發(fā)生改變,則開始一個(gè)I/O線程請(qǐng)求 Master的二進(jìn)制事件。
(3)同時(shí) Master 節(jié)點(diǎn)為每個(gè)I/O線程啟動(dòng)一個(gè)dump線程,用于向其發(fā)送二進(jìn)制事件,并保存至Slave節(jié)點(diǎn)本地的中繼日志(Relay log)中,Slave節(jié)點(diǎn)將啟動(dòng)SQL線程從中繼日志中讀取二進(jìn)制日志,在本地重放,即解析成 sql 語句逐一執(zhí)行,使得其數(shù)據(jù)和 Master節(jié)點(diǎn)的保持一致,最后I/O線程和SQL線程將進(jìn)入睡眠狀態(tài),等待下一次被喚醒。

② 讀寫分離使用什么方式

通過amoeba代理服務(wù)器,實(shí)現(xiàn)只在主服務(wù)器上寫,只在從服務(wù)器上讀;
主數(shù)據(jù)庫處理事務(wù)性查詢,從數(shù)據(jù)庫處理select 查詢;
數(shù)據(jù)庫復(fù)制被用來把事務(wù)查詢導(dǎo)致的變更同步的集群中的從數(shù)據(jù)庫

③ 如何查看主從同步狀態(tài)是否成功

在從服務(wù)器上內(nèi)輸入 show slave status\G 查看主從信息查看里面有IO線程的狀態(tài)信息,還有master服務(wù)器的IP地址、端口事務(wù)開始號(hào)。
當(dāng) Slave_IO_Running和Slave_SQL_Running都是YES時(shí) ,表示主從同步狀態(tài)成功

④ 如果I/O不是yes,如何排查

首先排查網(wǎng)絡(luò)問題,使用ping 命令查看從服務(wù)器是否能與主服務(wù)器通信
再查看防火墻和核心防護(hù)是否關(guān)閉(增強(qiáng)功能)
接著查看從服務(wù)slave是否開啟
兩個(gè)從服務(wù)器的server-id 是否相同導(dǎo)致只能連接一臺(tái)
master_log_file master_log_pos的值跟master值是否一致

⑤ show slave status 可以看到哪些信息

IO線程的狀態(tài)信息
master服務(wù)器的IP地址、端口、事務(wù)開始的位置
最近一次的錯(cuò)誤信息和錯(cuò)誤位置
最近一次的I/O報(bào)錯(cuò)信息和ID
最近一次的SQL報(bào)錯(cuò)信息和id

⑥ 主從復(fù)制慢(延遲)會(huì)有哪些可能?怎么解決?

  • 主服務(wù)器的負(fù)載過大,被多個(gè)睡眠或 僵尸線程占用,導(dǎo)致系統(tǒng)負(fù)載過大,從庫硬件比主庫差,導(dǎo)致復(fù)制延遲
  • 主從復(fù)制單線程,如果主庫寫作并發(fā)太大,來不及傳送到從庫,就會(huì)到導(dǎo)致延遲
  • 慢sql語句過多
  • 網(wǎng)絡(luò)延遲

怎么解決:

(1)硬件方面
從庫配置更好的硬件,提升隨機(jī)寫的性能。比如原本是機(jī)械盤,可以考慮更換為ssd固態(tài)。升級(jí)核心數(shù)更強(qiáng)的cpu、加大內(nèi)存。避免使用虛擬云主機(jī),使用物理主機(jī)

(2)網(wǎng)絡(luò)方面?
? 將從庫分布在相同局域網(wǎng)內(nèi)或網(wǎng)絡(luò)延遲較小的環(huán)境中。盡量避免跨機(jī)房,跨網(wǎng)域進(jìn)行主從數(shù)據(jù)庫服務(wù)器的設(shè)置

(3)架構(gòu)方面
在事務(wù)當(dāng)中盡量對(duì)主庫讀寫,其他非事務(wù)中的讀在從庫。消除一部分延遲帶來的數(shù)據(jù)庫不一致。增加緩存降低一些從庫的負(fù)載。?

(4)mysqld服務(wù)配置方面?
該配置設(shè)置針對(duì)mysql主從復(fù)制性能優(yōu)化最大化,安全性并不高。如果從安全的角度上考慮的話,就要設(shè)置雙一設(shè)置

追求安全性的雙一設(shè)置:

innodb_flush_log_at_trx_commit=1
sync_binlog=1

追求性能化設(shè)置:

sync_binlog=0
innodb_flush_log_at_trx_commit=2
logs-slave-updates=0
增大 innodb_buffer_pool_size

http://www.risenshineclean.com/news/35184.html

相關(guān)文章:

  • 網(wǎng)站輪播圖片特效seo手機(jī)關(guān)鍵詞排行推廣
  • 網(wǎng)頁怎么制作長(zhǎng)面天貓seo搜索優(yōu)化
  • WordPress主題Cute主題網(wǎng)站優(yōu)化的方法與技巧
  • 網(wǎng)站如何做seo優(yōu)化教程標(biāo)題優(yōu)化
  • 中國前500強(qiáng)企業(yè)名單煙臺(tái)seo關(guān)鍵詞排名
  • 網(wǎng)站優(yōu)化怎么做ppt站長(zhǎng)推廣網(wǎng)
  • 我想做亞馬遜網(wǎng)站怎么做seo刷網(wǎng)站
  • 建建建設(shè)網(wǎng)站公司網(wǎng)站seo軟文是什么意思
  • 達(dá)內(nèi)網(wǎng)站開發(fā)學(xué)習(xí)培訓(xùn)seo下載站
  • wordpress怎么防站長(zhǎng)春百度網(wǎng)站優(yōu)化
  • 做金融平臺(tái)網(wǎng)站需要多少錢網(wǎng)站推廣包括
  • oa網(wǎng)站建設(shè)企業(yè)網(wǎng)站建設(shè)專業(yè)服務(wù)
  • 網(wǎng)站服務(wù)器租賃費(fèi)用網(wǎng)站制作建設(shè)
  • 公積金網(wǎng)站 如何做減員百度投訴電話人工客服24小時(shí)
  • 網(wǎng)站建設(shè)發(fā)言臨沂seo排名外包
  • 做pvc卡片的交流網(wǎng)站合肥百度seo代理
  • 做俄羅斯網(wǎng)站作品推廣
  • 哪些網(wǎng)站做的比較好看的自己可以做網(wǎng)站嗎
  • 網(wǎng)站分析 實(shí)例2022最新新聞素材摘抄
  • 建立學(xué)校網(wǎng)站需要多少錢?福州百度推廣排名優(yōu)化
  • 網(wǎng)站見建設(shè)seo高端培訓(xùn)
  • 平面設(shè)計(jì)包括哪些方面的設(shè)計(jì)北京網(wǎng)站seowyhseo
  • 個(gè)人網(wǎng)站制作模板圖片什么網(wǎng)站可以免費(fèi)推廣
  • 網(wǎng)站架構(gòu)和網(wǎng)絡(luò)seo優(yōu)化公司哪家好
  • 網(wǎng)站wordpress主題遼寧網(wǎng)站建設(shè)
  • 株洲網(wǎng)站設(shè)計(jì)公司百度競(jìng)價(jià)排名是什么意思
  • 建網(wǎng)站是什么技術(shù)怎么樣才能引流客人進(jìn)店
  • 成都有哪些做網(wǎng)站的優(yōu)化一個(gè)網(wǎng)站需要多少錢
  • 做網(wǎng)站如何購買服務(wù)器百度收錄入口
  • 成都營(yíng)銷型網(wǎng)站設(shè)計(jì)東莞seo管理