真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么用mysql做主備 mysql主備搭建

MySQL - 主備

在實際的生產(chǎn)中,為了解決Mysql的單點故障,一般都會采用「主備模式」。

林甸ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

MySQL幾乎所有的高可用架構(gòu),都直接依賴于 binlog。雖然這些高可用架構(gòu)已經(jīng)呈現(xiàn)出越來越復(fù)雜的趨勢,但都是從最基本的一主一備演化過來的。

下圖為主備切換流程

在狀態(tài) 1 中,客戶端的讀寫都直接訪問節(jié)點 A,而節(jié)點 B 是 A 的備庫,只是將 A 的更新都同步過來,到本地執(zhí)行。這樣可以保持節(jié)點 B 和 A 的數(shù)據(jù)是相同的。

當(dāng)需要切換的時候,就切成狀態(tài) 2。這時候客戶端讀寫訪問的都是節(jié)點 B,而節(jié)點 A 是 B 的備庫。

在狀態(tài) 1 中,雖然節(jié)點 B 沒有被直接訪問,但是依然建議把節(jié)點 B(也就是備庫)設(shè)置成只讀(readonly)模式。這樣做,有以下幾個考慮:

圖下圖 中畫出的就是一個 update 語句在節(jié)點 A 執(zhí)行,然后同步到節(jié)點 B 的完整流程圖。

備庫 B 跟主庫 A 之間維持了一個長連接。主庫 A 內(nèi)部有一個線程,專門用于服務(wù)備庫 B 的這個長連接。一個事務(wù)日志同步的完整過程是這樣的:

在備庫 B 上通過 change master 命令,設(shè)置主庫 A 的 IP、端口、用戶名、密碼,以及要從哪個位置開始請求 binlog,這個位置包含文件名和日志偏移量。

在備庫 B 上執(zhí)行 start slave 命令,這時候備庫會啟動兩個線程,就是圖中的 io_thread 和 sql_thread。其中 io_thread 負(fù)責(zé)與主庫建立連接。

主庫 A 校驗完用戶名、密碼后,開始按照備庫 B 傳過來的位置,從本地讀取 binlog,發(fā)給 B。

備庫 B 拿到 binlog 后,寫到本地文件,稱為中轉(zhuǎn)日志(relay log)。

sql_thread 讀取中轉(zhuǎn)日志,解析出日志里的命令,并執(zhí)行。

主庫需要復(fù)制新增binlog到從庫才能完成同步,這個同步過程就是同步延遲。主從延遲最直接的表現(xiàn)是,備庫消費中轉(zhuǎn)日志(relay log)的速度,比主庫生產(chǎn) binlog 的速度要慢。

「同步策略」:Master會等待所有的Slave都回應(yīng)后才會提交,這個主從的同步的性能會嚴(yán)重的影響。

「半同步策略」:Master至少會等待一個Slave回應(yīng)后提交。

「異步策略」:Master不用等待Slave回應(yīng)就可以提交。

「延遲策略」:Slave要落后于Master指定的時間。

對于不同的業(yè)務(wù)需求,有不同的策略方案,但是一般都會采用最終一致性,不會要求強一致性,畢竟強一致性會嚴(yán)重影響性能。

MySql服務(wù)器怎么架設(shè)主從數(shù)據(jù)庫服務(wù)器呢?

大致步驟如下:主MySQL服務(wù)器:192.168.3.1備MySQL服務(wù)器:192.168.3.2配置文件路徑:/etc/my點吸煙 fMySQL服務(wù)狀態(tài):停止-------------------------主服務(wù)器配置-------------------編輯配置文件:vi

/etc/my點吸煙 f找到[mysqld]在它下面添加內(nèi)容:server-id=1log-bin=backuplogbinlog-do-db=test#如果有多個數(shù)據(jù)庫需要同步,添加多行即可#binlog-do-db=test2保存my點吸煙 f配置文件。啟動mysql:service

mysqld

start用root登錄mysql,為同步數(shù)據(jù)創(chuàng)建新帳號:grant

file,select,replication

slave

on

*.*

to

'test'@'%'

identified

by

'123456';------------------------備服務(wù)器配置-------------------------編輯配置文件:vi

/etc/my點吸煙 f在[mysqld]下加入:server-id=2master-host=192.168.3.1master-user=testmaster-password=123456master-port=3306#replicate-do-db=test

#此配置項為設(shè)置僅同步的數(shù)據(jù)庫名,其它數(shù)據(jù)庫忽略(建議不設(shè)置此選項)保存并啟動mysql即可。如果需要查看同步狀態(tài),可分別在主從服務(wù)器上用如下命令查看:主服務(wù)器:show

master

status;從服務(wù)器:show

slave

status\G------------------值得說明的兩個文件-----------------備份服務(wù)器上的/var/lib/mysql/目錄下有兩個:master.info和relay-log.info它們記錄了主服務(wù)器的配置信息和同步信息,如果出現(xiàn)備份服務(wù)器不能同步數(shù)據(jù)的問題,可嘗試將這兩個文件刪除,讓備服務(wù)器重新同步。備注:進(jìn)行操作之前先備份下數(shù)據(jù)比較保險一點。

如何在一臺windows主機上搭建mysql主從配置

先在主數(shù)據(jù)庫中創(chuàng)建新數(shù)據(jù)庫rep_test。

然后編輯主數(shù)據(jù)庫的my.ini文件

在[mysqld]節(jié)點中增加如下內(nèi)容:

server-id=1

#指定唯一的ID,1至32,必須的

log-bin=mysql-log-bin

#指定二進(jìn)制日志存放路徑,必須的

binlog-do-db=rep_test

#指定要同步的數(shù)據(jù)庫,必須的

#binlog-ignore-db=mysql

#指定不要同步的數(shù)據(jù)庫,如果指定了binlog-do-db就不用再指定該項

重啟主數(shù)據(jù)庫,然后在主數(shù)據(jù)庫中建立一個備份賬戶

mysqlgrant

replication

slave

on

*.*

to slave@192.168.1.128

identified

by

'slave'

;

mysqlflush

privileges;

PS:identified

by

指定的slave是賬號slave@192.168.1.128

的密碼

顯示主服務(wù)器的狀態(tài)信息,并且找到File

Position

的值記錄下來;

mysqlshow

master

status;

在從數(shù)據(jù)庫中創(chuàng)建新的數(shù)據(jù)庫rep_test。

然后編輯從數(shù)據(jù)庫的my.ini文件

在[mysqld]節(jié)點中增加如下內(nèi)容:

server-id=2

#指定唯一的ID,2至32,必須的,并且不能跟主數(shù)據(jù)庫一樣

replicate-do-db=rep_test

#指定要同步的數(shù)據(jù)庫,必須的

#replicate-ignore-db=mysql

#指定不要同步的數(shù)據(jù)庫,

重啟從數(shù)據(jù)庫,設(shè)置登錄主數(shù)據(jù)庫的賬號和密碼等信息,然后啟動slave

mysqlchange

master

to

master_host='192.168.1.2',master_user='slave',master_password='slave',

master_log_file='mysql-bin.000002',master_log_pos=120;

mysqlstart

slave;

查看從數(shù)據(jù)庫的信息

mysqlshow

slave

status

\G;

如果出現(xiàn): Slave_IO_Running:

YesSlave_SQL_Running:

Yes以上兩項都為Yes,那說明沒問題了

測試主從復(fù)制是否有效果

在主數(shù)據(jù)庫中創(chuàng)建一個新的數(shù)據(jù)庫,然后再切換到從數(shù)據(jù)庫查看是否同樣多出通名的數(shù)據(jù)庫

配置舊數(shù)據(jù)庫的主從復(fù)制

如果一開始數(shù)據(jù)庫的架構(gòu)不是主從復(fù)制,并且運行一段時間后已經(jīng)有數(shù)據(jù)存在,那配置的方式略有不同。

編輯主數(shù)據(jù)庫的my.ini文件,加上一下內(nèi)容:

binlog-do-db=landclash

重啟主數(shù)據(jù)庫,然后在主數(shù)據(jù)庫中鎖定所有的表

mysqlflush

tables

with

read

lock;

顯示主服務(wù)器的狀態(tài)信息,并且找到File

Position

的值記錄下來;

mysqlshow

master

status;

將主數(shù)據(jù)庫data目錄下需要做主從復(fù)制的數(shù)據(jù)庫的同名目錄拷貝到從數(shù)據(jù)庫的data目錄下

編輯從數(shù)據(jù)庫的my.ini文件,加上一下內(nèi)容:

replicate-do-db=landclash

重啟從數(shù)據(jù)庫,因為主數(shù)據(jù)庫在重新配置my.ini后,日志文件變成新的文件,所以需要再次設(shè)置登錄主數(shù)據(jù)庫的賬號和密碼等信息

mysqlstop

slave;

mysqlchange

master

to

master_host='192.168.1.2',master_user='slave',master_password='slave',

master_log_file='mysql-bin.000003',master_log_pos=120;

mysqlstart

slave;

再次輸入查看從數(shù)據(jù)庫狀態(tài)的命令

mysqlshow

slave

status

\G;

完成上述配置后,回到主數(shù)據(jù)庫,將表解鎖

mysqlunlock

tables;

之后在主數(shù)據(jù)庫的修改就能同步到從數(shù)據(jù)庫上了。


分享題目:怎么用mysql做主備 mysql主備搭建
本文來源:http://weahome.cn/article/ddiocoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部