日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql集群会备份数据吗_mysql集群即双机备份与主从复制

發(fā)布時間:2025/4/5 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql集群会备份数据吗_mysql集群即双机备份与主从复制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、主從復(fù)制有什么好處?

1、采用主從服務(wù)器這種架構(gòu),穩(wěn)定性得以提升。如果主服務(wù)器發(fā)生故障,我們可以使用從服務(wù)器來提供服務(wù)。

2、在主從服務(wù)器上分開處理用戶的請求,可以提升數(shù)據(jù)處理效率。

3、將主服務(wù)器上的數(shù)據(jù)復(fù)制到從服務(wù)器上,保護數(shù)據(jù)免受意外的損失。

二、安裝配置主從復(fù)制

前提條件:

1.兩臺數(shù)據(jù)庫服務(wù)器

例如:mysql-master???ip地址:192.168.1.77(已安裝mysql數(shù)據(jù)庫)

Mysql-slave????ip地址:192.168.1.78(已安裝mysql數(shù)據(jù)庫)

2.兩個數(shù)據(jù)庫版本一致

3.初始化表,并后臺啟動mysql

4.兩臺數(shù)據(jù)庫都修改root密碼

主從配置:

1.修改主服務(wù)器master:

#vi?/etc/my.cnf[mysqld]log-bin=mysql-bin???//[必須]啟用二進制日志

server-id=77//[必須]服務(wù)器唯一ID,默認是1,避免重復(fù)取IP最后一段

2.修改從服務(wù)器slave:

#vi?/etc/my.cnf[mysqld]log-bin=mysql-bin???//[必須]啟用二進制日志server-id=78//[必須]服務(wù)器唯一ID,默認是2,避免重復(fù)取IP最后一段

3.重啟兩臺服務(wù)器的mysql

Service?mysql?restart

4.在主服務(wù)器上建立賬戶并授權(quán)#mysql?-uroot?-p密碼mysql>GRANT?REPLICATION?SLAVE?ON?*.*?to?'mysync'@'%'?identified?by?'123456';

//一般不用root帳號,“%”表示所有客戶端都可能連,只要帳號,密碼正確,此處可用具體客戶端IP代替,如192.168.1.78,加強安全。

5.登錄主服務(wù)器的mysql,查詢master的狀態(tài)

show?master?status;

注:執(zhí)行完此步驟后不要再操作主服務(wù)器MYSQL,防止主服務(wù)器狀態(tài)值變化。并且記住File和position的值,后面需要用到

6.配置從服務(wù)器slave:

changemasterto

master_host='192.168.1.77',

master_user='mysync',

master_password='123456',

master_log_file='mysql-bin.000020',

master_log_pos=1191789;

//注意不要斷開,“1191789”無單引號Mysql>start?slave;????//啟動從服務(wù)器復(fù)制功能7.檢查從服務(wù)器復(fù)制功能狀態(tài):mysql>?show?slave?status\G

注:Slave_IO及Slave_SQL進程必須正常運行,即YES狀態(tài),否則都是錯誤的狀態(tài)(如:其中一個NO均屬錯誤)。8.主從復(fù)制驗證測試

A.在主服務(wù)器上創(chuàng)建數(shù)據(jù)庫test1,并創(chuàng)建表tb_tetst;

B.在從服務(wù)器上查看已經(jīng)有了一模一樣的數(shù)據(jù)庫和表。

C.刪除主服務(wù)器上的數(shù)據(jù)庫,從服務(wù)器上的也被刪除了。

9.**擴展**

編寫一個shell腳本,用nagios監(jiān)控slave的兩個“yes”,如發(fā)現(xiàn)只有一個或零個“yes”,就表明主從有問題了,就可以發(fā)短信警報給相關(guān)人員。

(Nagios是一個監(jiān)視系統(tǒng)運行狀態(tài)和網(wǎng)絡(luò)信息的監(jiān)視系統(tǒng)。Nagios能監(jiān)視所指定的本地或遠程主機以及服務(wù),同時提供異常通知功能等。Nagios可運行在Linux/Unix平臺之上,同時提供一個可選的基于瀏覽器的WEB界面以方便系統(tǒng)管理人員查看網(wǎng)絡(luò)狀態(tài),各種系統(tǒng)問題,以及日志等等。)

三、常見的一些問題

a.在從服務(wù)器上使用show?slave?status\G,

Slave_IO_Running,為No。

則說明IO_THREAD沒有啟動,請執(zhí)行start?slave?io_thread

Slave_SQL_Running為No。

則復(fù)制出錯,查看Last_error字段排除錯誤后執(zhí)行start?slave?sql_thread

查看Slave_IO_State字段空//復(fù)制沒有啟動

Connecting?to?master//沒有連接上master

Waiting?for?master?to?send?event//已經(jīng)連上

b.從庫SLAVE啟動問題

由于一些錯誤操作導(dǎo)致?CHANGE?MASTER和SLAVE服務(wù)無法啟動,系統(tǒng)報錯如下:

*****************************************************************

Could?not?initialize?master?info?structure;?more?error?messages?can?be?found?in?the?MySQL?error?log.

*****************************************************************

無法初始化master?info結(jié)構(gòu),MySQL錯誤日志記錄了更詳細的錯誤信息。

解決方法:

1、查看MySQL錯誤日志,如:同步的上一個Position是多少,很多情況下無法啟動服務(wù)是由于mysql識別的同步始終停留在上一個Position上。

2、查看master.info和relay-log.info,master.info記錄MASTER相關(guān)信息,relay-log.info記錄當前同步日志信息。

3、停止myslq服務(wù),刪除master.info和relay-log.info。

4、啟動mysql服務(wù)。

5、重新CHANGE?MASTER,重新啟動SLAVE服務(wù)。

c.主從不能同步

show?slave?status;報錯:Error?xxx?dosn't?exist

且show?slave?status\G:

Slave_SQL_Running:?NO

Seconds_Behind_Master:?NULL

解決方法:

stop?slave;

set?global?sql_slave_skip_counter?=1?;

start?slave;

之后Slave會和Master去同步?主要看:

Slave_IO_Running:?Yes

Slave_SQL_Running:?Yes

Seconds_Behind_Master是否為0,0就是已經(jīng)同步了

四、一些優(yōu)化與監(jiān)視:

show?full?processlist;?//查看mysql當前同步線程號

skip-name-resolve?//跳過dns名稱查詢,有助于加快連接及同步的速度

max_connections=1000?//增大Mysql的連接數(shù)目,(默認100)

max_connect_errors=100?//增大Mysql的錯誤連接數(shù)目,(默認10)

五、查看日志一些命令

1,?show?master?status\G;

在這里主要是看log-bin的文件是否相同。

show?slave?status\G;

在這里主要是看:

Slave_IO_Running=Yes

Slave_SQL_Running=Yes

如果都是Yes,則說明配置成功.

2,在master上輸入show?processlist\G;

mysql>?SHOW?PROCESSLIST\G

***************************?1.?row?***************************

Id:?2

User:?root

Host:?localhost:32931

db:?NULL

Command:?Binlog?Dump

Time:?94

State:?Has?sent?all?binlog?to?slave;?waiting?for?binlog?to

be?updated

Info:?NULL

如果出現(xiàn)Command:?Binlog?Dump,則說明配置成功.

3.stop?slave?#停止同步

4.start?slave?#開始同步,從日志終止的位置開始更新。

5.SET?SQL_LOG_BIN=0|1?#主機端運行,需要super權(quán)限,用來開停日志,隨意開停,會造成主機從機數(shù)據(jù)不一致,造成錯誤

6.SET?GLOBAL?SQL_SLAVE_SKIP_COUNTER=n?#?客戶端運行,用來跳過幾個事件,只有當同步進程出現(xiàn)錯誤而停止的時候才可以執(zhí)行。

RESET?MASTER?#主機端運行,清除所有的日志,這條命令就是原來的FLUSH?MASTER

RESET?SLAVE?#從機運行,清除日志同步位置標志,并重新生成master.info

雖然重新生成了master.info,但是并不起用,最好,將從機的mysql進程重啟一下,

7.LOAD?TABLE?tblname?FROM?MASTER?#從機運行,從主機端重讀指定的表的數(shù)據(jù),每次只能讀取一個,受timeout時間限制,需要調(diào)整timeout時間。執(zhí)行這個命令需要同步賬號有reload和super權(quán)限。以及對相應(yīng)的庫有select權(quán)限。如果表比較大,要增加net_read_timeout和net_write_timeout的值

8.LOAD?DATA?FROM?MASTER?#從機執(zhí)行,從主機端重新讀入所有的數(shù)據(jù)。執(zhí)行這個命令需要同步賬號有reload和super權(quán)限。以及對相應(yīng)的庫有select權(quán)限。如果表比較大,要增加net_read_timeout和net_write_timeout的值

9.show?binlog?events;?#查看主庫二進制日志文件內(nèi)容:

注意:

1.主輔庫同步主要是通過二進制日志來實現(xiàn)同步的。

2.在啟動輔庫的時候必須先把數(shù)據(jù)同步,并刪除日志目錄下的:master.info文件。因為master.info記錄了上次要連接主庫的信息,如果不刪除,即使my.cnf里進行了修改,也不起作用。因為讀取的還是master.info文件里的信息。

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的mysql集群会备份数据吗_mysql集群即双机备份与主从复制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。