mysql怎么不停機維護 MySQL維護

五大常見的MySQL高可用方案(最全)

1. 概述

10年積累的成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有姑蘇免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

我們在考慮MySQL數(shù)據(jù)庫的高可用的架構(gòu)時,主要要考慮如下幾方面:

如果數(shù)據(jù)庫發(fā)生了宕機或者意外中斷等故障,能盡快恢復(fù)數(shù)據(jù)庫的可用性,盡可能的減少停機時間,保證業(yè)務(wù)不會因為數(shù)據(jù)庫的故障而中斷。

用作備份、只讀副本等功能的非主節(jié)點的數(shù)據(jù)應(yīng)該和主節(jié)點的數(shù)據(jù)實時或者最終保持一致。

當(dāng)業(yè)務(wù)發(fā)生數(shù)據(jù)庫切換時,切換前后的數(shù)據(jù)庫內(nèi)容應(yīng)當(dāng)一致,不會因為數(shù)據(jù)缺失或者數(shù)據(jù)不一致而影響業(yè)務(wù)。

關(guān)于對高可用的分級在這里我們不做詳細(xì)的討論,這里只討論常用高可用方案的優(yōu)缺點以及高可用方案的選型。

2. 高可用方案

2.1. 主從或主主半同步復(fù)制

使用雙節(jié)點數(shù)據(jù)庫,搭建單向或者雙向的半同步復(fù)制。在5.7以后的版本中,由于lossless replication、logical多線程復(fù)制等一些列新特性的引入,使得MySQL原生半同步復(fù)制更加可靠。

常見架構(gòu)如下:

通常會和proxy、keepalived等第三方軟件同時使用,即可以用來監(jiān)控數(shù)據(jù)庫的 健康 ,又可以執(zhí)行一系列管理命令。如果主庫發(fā)生故障,切換到備庫后仍然可以繼續(xù)使用數(shù)據(jù)庫。

優(yōu)點:

架構(gòu)比較簡單,使用原生半同步復(fù)制作為數(shù)據(jù)同步的依據(jù);

雙節(jié)點,沒有主機宕機后的選主問題,直接切換即可;

雙節(jié)點,需求資源少,部署簡單;

缺點:

完全依賴于半同步復(fù)制,如果半同步復(fù)制退化為異步復(fù)制,數(shù)據(jù)一致性無法得到保證;

需要額外考慮haproxy、keepalived的高可用機制。

2.2. 半同步復(fù)制優(yōu)化

半同步復(fù)制機制是可靠的。如果半同步復(fù)制一直是生效的,那么便可以認(rèn)為數(shù)據(jù)是一致的。但是由于網(wǎng)絡(luò)波動等一些客觀原因,導(dǎo)致半同步復(fù)制發(fā)生超時而切換為異步復(fù)制,那么這時便不能保證數(shù)據(jù)的一致性。所以盡可能的保證半同步復(fù)制,便可提高數(shù)據(jù)的一致性。

該方案同樣使用雙節(jié)點架構(gòu),但是在原有半同復(fù)制的基礎(chǔ)上做了功能上的優(yōu)化,使半同步復(fù)制的機制變得更加可靠。

可參考的優(yōu)化方案如下:

2.2.1. 雙通道復(fù)制

半同步復(fù)制由于發(fā)生超時后,復(fù)制斷開,當(dāng)再次建立起復(fù)制時,同時建立兩條通道,其中一條半同步復(fù)制通道從當(dāng)前位置開始復(fù)制,保證從機知道當(dāng)前主機執(zhí)行的進度。另外一條異步復(fù)制通道開始追補從機落后的數(shù)據(jù)。當(dāng)異步復(fù)制通道追趕到半同步復(fù)制的起始位置時,恢復(fù)半同步復(fù)制。

2.2.2. binlog文件服務(wù)器

搭建兩條半同步復(fù)制通道,其中連接文件服務(wù)器的半同步通道正常情況下不啟用,當(dāng)主從的半同步復(fù)制發(fā)生網(wǎng)絡(luò)問題退化后,啟動與文件服務(wù)器的半同步復(fù)制通道。當(dāng)主從半同步復(fù)制恢復(fù)后,關(guān)閉與文件服務(wù)器的半同步復(fù)制通道。

優(yōu)點:

雙節(jié)點,需求資源少,部署簡單;

架構(gòu)簡單,沒有選主的問題,直接切換即可;

相比于原生復(fù)制,優(yōu)化后的半同步復(fù)制更能保證數(shù)據(jù)的一致性。

缺點:

需要修改內(nèi)核源碼或者使用mysql通信協(xié)議。需要對源碼有一定的了解,并能做一定程度的二次開發(fā)。

依舊依賴于半同步復(fù)制,沒有從根本上解決數(shù)據(jù)一致性問題。

2.3. 高可用架構(gòu)優(yōu)化

將雙節(jié)點數(shù)據(jù)庫擴展到多節(jié)點數(shù)據(jù)庫,或者多節(jié)點數(shù)據(jù)庫集群。可以根據(jù)自己的需要選擇一主兩從、一主多從或者多主多從的集群。

由于半同步復(fù)制,存在接收到一個從機的成功應(yīng)答即認(rèn)為半同步復(fù)制成功的特性,所以多從半同步復(fù)制的可靠性要優(yōu)于單從半同步復(fù)制的可靠性。并且多節(jié)點同時宕機的幾率也要小于單節(jié)點宕機的幾率,所以多節(jié)點架構(gòu)在一定程度上可以認(rèn)為高可用性是好于雙節(jié)點架構(gòu)。

但是由于數(shù)據(jù)庫數(shù)量較多,所以需要數(shù)據(jù)庫管理軟件來保證數(shù)據(jù)庫的可維護性??梢赃x擇MMM、MHA或者各個版本的proxy等等。常見方案如下:

2.3.1. MHA+多節(jié)點集群

MHA Manager會定時探測集群中的master節(jié)點,當(dāng)master出現(xiàn)故障時,它可以自動將最新數(shù)據(jù)的slave提升為新的master,然后將所有其他的slave重新指向新的master,整個故障轉(zhuǎn)移過程對應(yīng)用程序完全透明。

MHA Node運行在每臺MySQL服務(wù)器上,主要作用是切換時處理二進制日志,確保切換盡量少丟數(shù)據(jù)。

MHA也可以擴展到如下的多節(jié)點集群:

優(yōu)點:

可以進行故障的自動檢測和轉(zhuǎn)移;

可擴展性較好,可以根據(jù)需要擴展MySQL的節(jié)點數(shù)量和結(jié)構(gòu);

相比于雙節(jié)點的MySQL復(fù)制,三節(jié)點/多節(jié)點的MySQL發(fā)生不可用的概率更低

缺點:

至少需要三節(jié)點,相對于雙節(jié)點需要更多的資源;

邏輯較為復(fù)雜,發(fā)生故障后排查問題,定位問題更加困難;

數(shù)據(jù)一致性仍然靠原生半同步復(fù)制保證,仍然存在數(shù)據(jù)不一致的風(fēng)險;

可能因為網(wǎng)絡(luò)分區(qū)發(fā)生腦裂現(xiàn)象;

2.3.2. zookeeper+proxy

Zookeeper使用分布式算法保證集群數(shù)據(jù)的一致性,使用zookeeper可以有效的保證proxy的高可用性,可以較好的避免網(wǎng)絡(luò)分區(qū)現(xiàn)象的產(chǎn)生。

優(yōu)點:

較好的保證了整個系統(tǒng)的高可用性,包括proxy、MySQL;

擴展性較好,可以擴展為大規(guī)模集群;

缺點:

數(shù)據(jù)一致性仍然依賴于原生的mysql半同步復(fù)制;

引入zk,整個系統(tǒng)的邏輯變得更加復(fù)雜;

2.4. 共享存儲

共享存儲實現(xiàn)了數(shù)據(jù)庫服務(wù)器和存儲設(shè)備的解耦,不同數(shù)據(jù)庫之間的數(shù)據(jù)同步不再依賴于MySQL的原生復(fù)制功能,而是通過磁盤數(shù)據(jù)同步的手段,來保證數(shù)據(jù)的一致性。

2.4.1. SAN共享儲存

SAN的概念是允許存儲設(shè)備和處理器(服務(wù)器)之間建立直接的高速網(wǎng)絡(luò)(與LAN相比)連接,通過這種連接實現(xiàn)數(shù)據(jù)的集中式存儲。常用架構(gòu)如下:

使用共享存儲時,MySQL服務(wù)器能夠正常掛載文件系統(tǒng)并操作,如果主庫發(fā)生宕機,備庫可以掛載相同的文件系統(tǒng),保證主庫和備庫使用相同的數(shù)據(jù)。

優(yōu)點:

兩節(jié)點即可,部署簡單,切換邏輯簡單;

很好的保證數(shù)據(jù)的強一致性;

不會因為MySQL的邏輯錯誤發(fā)生數(shù)據(jù)不一致的情況;

缺點:

需要考慮共享存儲的高可用;

價格昂貴;

2.4.2. DRBD磁盤復(fù)制

DRBD是一種基于軟件、基于網(wǎng)絡(luò)的塊復(fù)制存儲解決方案,主要用于對服務(wù)器之間的磁盤、分區(qū)、邏輯卷等進行數(shù)據(jù)鏡像,當(dāng)用戶將數(shù)據(jù)寫入本地磁盤時,還會將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)中另一臺主機的磁盤上,這樣的本地主機(主節(jié)點)與遠程主機(備節(jié)點)的數(shù)據(jù)就可以保證實時同步。常用架構(gòu)如下:

當(dāng)本地主機出現(xiàn)問題,遠程主機上還保留著一份相同的數(shù)據(jù),可以繼續(xù)使用,保證了數(shù)據(jù)的安全。

DRBD是linux內(nèi)核模塊實現(xiàn)的快級別的同步復(fù)制技術(shù),可以與SAN達到相同的共享存儲效果。

優(yōu)點:

兩節(jié)點即可,部署簡單,切換邏輯簡單;

相比于SAN儲存網(wǎng)絡(luò),價格低廉;

保證數(shù)據(jù)的強一致性;

缺點:

對io性能影響較大;

從庫不提供讀操作;

2.5. 分布式協(xié)議

分布式協(xié)議可以很好解決數(shù)據(jù)一致性問題。比較常見的方案如下:

2.5.1. MySQL cluster

MySQL cluster是官方集群的部署方案,通過使用NDB存儲引擎實時備份冗余數(shù)據(jù),實現(xiàn)數(shù)據(jù)庫的高可用性和數(shù)據(jù)一致性。

優(yōu)點:

全部使用官方組件,不依賴于第三方軟件;

可以實現(xiàn)數(shù)據(jù)的強一致性;

缺點:

國內(nèi)使用的較少;

配置較復(fù)雜,需要使用NDB儲存引擎,與MySQL常規(guī)引擎存在一定差異;

至少三節(jié)點;

2.5.2. Galera

基于Galera的MySQL高可用集群, 是多主數(shù)據(jù)同步的MySQL集群解決方案,使用簡單,沒有單點故障,可用性高。常見架構(gòu)如下:

優(yōu)點:

多主寫入,無延遲復(fù)制,能保證數(shù)據(jù)強一致性;

有成熟的社區(qū),有互聯(lián)網(wǎng)公司在大規(guī)模的使用;

自動故障轉(zhuǎn)移,自動添加、剔除節(jié)點;

缺點:

需要為原生MySQL節(jié)點打wsrep補丁

只支持innodb儲存引擎

至少三節(jié)點;

2.5.3. POAXS

Paxos 算法解決的問題是一個分布式系統(tǒng)如何就某個值(決議)達成一致。這個算法被認(rèn)為是同類算法中最有效的。Paxos與MySQL相結(jié)合可以實現(xiàn)在分布式的MySQL數(shù)據(jù)的強一致性。常見架構(gòu)如下:

優(yōu)點:

多主寫入,無延遲復(fù)制,能保證數(shù)據(jù)強一致性;

有成熟理論基礎(chǔ);

自動故障轉(zhuǎn)移,自動添加、剔除節(jié)點;

缺點:

只支持innodb儲存引擎

至少三節(jié)點;

3. 總結(jié)

隨著人們對數(shù)據(jù)一致性的要求不斷的提高,越來越多的方法被嘗試用來解決分布式數(shù)據(jù)一致性的問題,如MySQL自身的優(yōu)化、MySQL集群架構(gòu)的優(yōu)化、Paxos、Raft、2PC算法的引入等等。

而使用分布式算法用來解決MySQL數(shù)據(jù)庫數(shù)據(jù)一致性的問題的方法,也越來越被人們所接受,一系列成熟的產(chǎn)品如PhxSQL、MariaDB Galera Cluster、Percona XtraDB Cluster等越來越多的被大規(guī)模使用。

隨著官方MySQL Group Replication的GA,使用分布式協(xié)議來解決數(shù)據(jù)一致性問題已經(jīng)成為了主流的方向。期望越來越多優(yōu)秀的解決方案被提出,MySQL高可用問題可以被更好的解決。

請問Windows10 安裝MySQL到execute時出現(xiàn)維護 有修復(fù)和卸載倆選項但試了都不能解

問題一:

當(dāng)各位在安裝、重裝時出現(xiàn)could not start the service mysql error:0

原因:?卸載mysql時并沒有完全刪除相關(guān)文件和服務(wù),需要手動清除。

安裝到最后一步execute時不能啟動服務(wù)的解決方法:

首先,在管理工具-服務(wù)里面將MySQL的服務(wù)給停止(有的是沒有安裝成功,有這個服務(wù),但是已經(jīng)停止了的),win+R—cmd,打開命令提示符窗口,輸入命令:sc delete mysql(查看服務(wù),此時服務(wù)中已沒有mysql),將已停的服務(wù)刪除,卸載MySQL記得選擇remove。最后將MySQL安裝目錄刪除,還有數(shù)據(jù)庫的目錄也刪除。

然后,命令提示符下輸入regedit,打開注冊表

把注冊表中

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Applications/MySQL

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Applications/MySQL

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Applications/MySQL

將相關(guān)目錄下的mysql相關(guān)鍵值(mysql、mysqladmin)刪掉

注冊表中有關(guān)MySQL的東西可能刪除的不徹底,ctrl+F查找mysql,之后用F3循環(huán)查找,將有關(guān)MySQL這個軟件的全部有關(guān)項刪除

注意:?(刪除項時出錯):

無法刪除 LEGACY_MYSQL51(自己建數(shù)據(jù)庫時置的用戶名): 刪除項時出錯。

解決辦法:注冊表項里右鍵增加administrators所有權(quán)限,之后打開360安全衛(wèi)士或金山衛(wèi)士清理一下注冊表!

接著,刪除MYSQL數(shù)據(jù)表目錄(C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data/)(Application Data是隱藏的,要在查看里面將其設(shè)置為顯示

win7下一般在C:\ProgramData\MySQL目錄下,注意ProgramData這個文件夾默認(rèn)是隱藏的),

最后,重啟計算機,重新安裝mysql, 運行向?qū)erver Instance Configuration wizard,進行相關(guān)設(shè)置即可。

問題二:mysql安裝時出現(xiàn)error Nr.1045問題

我們在windows下安裝MySQL時會出現(xiàn)Access denied for user 'root'@localhost'(using password:No)的問題,這個問題是因為你的機器上之前安裝過mysql,或者這 一次安裝配置了新密碼,進入應(yīng)用的最后一步時候由于某些原因卡出了或者由于服務(wù)未啟動等原因?qū)е聼o法配置成功,最終結(jié)果是,配置未成功,密碼設(shè)置已經(jīng)保存 進去了。這樣我們調(diào)整好了服務(wù)等原因后,進行重新配置的時候,會發(fā)現(xiàn)在設(shè)置密碼的時候,多了一個舊密碼輸入框。其實這也沒什么,在密碼知道的情況下,輸入 舊密碼重新設(shè)置密碼并不難,而問題關(guān)鍵在于即使舊密碼正確,你依舊無法完成配置,在最后一個環(huán)節(jié)密碼認(rèn)證的時候又出錯了,出錯原因是密碼問題,提示舊密碼 不對。

解決辦法:

1.管理工具---服務(wù)里面停止Mysql服務(wù)。

2.控制面板---卸載Mysql,刪除C:\Program Files\MySQL目錄.

3.這是最關(guān)鍵一步,只做前面兩步,密碼還是修改不了,因為MySQL 還有文件,也就是在C:\Documents and Settings\All Users\Application Data(Application Data為隱藏文件夾)里面的MySQL文件夾,這個文件沒有清除是MySQL重裝出現(xiàn)舊密碼的根源所在。于是刪除MySQL文件夾。

4.檢查C:\WINDOWS目錄下是否有my.ini文件,將其刪除

5.注冊表里的HEKY_LOCAL_MACHINE,SOFTWARE,MYSQL刪除

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 目錄刪除

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 目錄刪除

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL 目錄刪除?

完成以上步驟,就可以重新安裝MySQL并且進行全新配置了

問題三:MySQL5.1安裝時出現(xiàn)Cannot create windows service for mysql.error:0

安裝MySQL5.1過程中,我把以前MySQL5.0的GUI工具和服務(wù)器全部刪掉,安裝目錄全部刪掉,數(shù)據(jù)文件目錄名字改掉,注冊表用完美卸載清理了。

然后重啟安裝MySQL5.1(我以前遇到過服務(wù)啟動不了的情況,這樣做就搞定了),可配置到最后一步時出現(xiàn)Cannot create windows service for MySQL.error:0錯誤,把配置工具關(guān)掉重試幾次都不行,后來百度了下,聽說要在系統(tǒng)管理員用戶下執(zhí)行sc delete mysql刪除MySQL服務(wù)后再啟動配置工具配置,實在不行重啟后再試。

我刪掉服務(wù)再配置還是同樣錯誤,再刪掉服務(wù),重啟后配置還是不行。

又在網(wǎng)上參考了好些文章,最后解決辦法如下:

1.出現(xiàn)錯誤后關(guān)掉配置工具,在系統(tǒng)管理員帳戶下執(zhí)行命令:sc delete mysql(mysql是服務(wù)名,根據(jù)你的服務(wù)名定);

2.刪除C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.1/data目錄下ib_logfile0、ib_logfile1兩個文件刪除,順便說句,此目錄下有個err文件,是以主機名命名的,里面記載著錯誤信息,類似下面這段:

InnoDB: The first specified data file E:/Data/ibdata1 did not exist:

InnoDB: a new database to be created!?

090501 19:20:08 InnoDB: Setting file E:/Data/ibdata1 size to 10 MB?

InnoDB: Database physically writes the file full: wait...?

InnoDB: Error: log file ./ib_logfile0 is of different size 0 48234496 bytes?

InnoDB: than specified in the .cnf file 0 17825792 bytes!?

090501 19:20:09 [ERROR] Plugin 'InnoDB' init function returned error.?

090501 19:20:09 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.?

090501 19:20:09 [ERROR] Unknown/unsupported table type: INNODB?

090501 19:20:09 [ERROR] Aborting?

090501 19:20:09 [Warning] Forcing shutdown of 1 plugins?

090501 19:20:09 [Note] E:/Program Files/MySQL/MySQL Server/bin/mysqld: Shutdown complete

3.刪除配置時指定的數(shù)據(jù)文件目錄,好像當(dāng)時我的不能立即刪除,我用unlocker刪除時它說要下次重啟時刪除。

4.重啟。

5.啟動配置工具配置。

這次就成功了。

感謝提供幫助信息的前輩們,也希望對出現(xiàn)同樣錯誤的朋友有幫助。

繼續(xù)為大家整理mysql安裝失敗的原因以及mysql安裝失敗的解決方法,抓緊來看看吧!

困難1:MySQL 5.1 安裝過程中報apply security setting錯誤

1.卸載MySQL。

2.刪除目錄 C:\Documents and Settings\All Users\Application Data\MySQL。

3.重新安裝MySQL就OK啦。

困難2:MySQL提示Could not start the service MySQL提示

安裝mysql 5.1.33,在運行Server Instance Configuration wizard時的Execute configurattion步驟中的第三項Start Service進出錯,錯誤提示為Could not start the service MySQL

分析:這種情況一般是因為裝過mysql,卸載不干凈造成的,卸載后重啟后再重裝。注意看下服務(wù),如果未能卸載,可以用mysqld-nt -remove卸載。

具體方法如下:

1.查看服務(wù)中有沒有mysql,如果有將該服務(wù)停掉。

2.在控制面板中運行添加刪除程序,將mysql卸載。

3.卸載后打開注冊表,查看HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 下的鍵值,如果有相關(guān)mysql鍵值(mysql、mysqladmin)則刪掉,即可。

4.重啟,將mysql的安裝殘余目錄刪掉 (查看服務(wù),此時服務(wù)中已沒有mysql)。

5.重新安裝mysql.安裝后先不要運行Server Instance Configuration wizard,重啟后在開始菜單中運行該向?qū)В纯伞?/p>

困難3:msyql安裝到最后一步start service錯誤

1.到控制面板里面先把mysql刪除。

2.到c盤C:\Program Files目錄下把mysql目錄刪除。

3.如果在其他盤還有設(shè)置目錄也要刪除.空目錄也要刪除。

4.到regedit把注冊表:

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Applications/MySQL

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Applications/MySQL

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Applications/MySQL

有的話,全部刪除?。记桑河肍3循環(huán)查找“mysql”)5.如果任務(wù)管理器里有關(guān)mysql內(nèi)容也刪除。

5.把防火墻關(guān)了。

6.重新裝mysql(這里我沒有重啟計算機)。

重裝時候有必要的話,重啟計算機,停用IIS,和刪除temp里的臨時文件。

實在不行的話,配置mysql時候,把mysql服務(wù)換個服務(wù)名。

精彩專題分享:mysql不同版本安裝教程?mysql5.7各版本安裝教程

以上就是在安裝mysql時經(jīng)常遇到的錯誤,希望本文對大家的學(xué)習(xí)有所幫助。。

mysql每用一段時間就會掛掉,是怎么回事

可能是連接數(shù)達到上限了??梢試L試的方法:

1.修改mysql的配置文件,設(shè)置合適的 wait_timeout

#指定一個請求的最大連接時間,對于4GB左右內(nèi)存的服務(wù)器可以設(shè)置為5-10。

wait_timeout = 10

2.清理tcp連接,這個方式比較麻煩,并且可能誤殺其他進程。我的站上有一個windows 7下執(zhí)行清理的python腳本可以試試

Dual Master在mysql中具體意義?

Dual Master實際上就是兩臺MySQL服務(wù)器互相將對方作為自己的 Master,自己作為對方的Slave,這樣任何一臺服務(wù)器上的數(shù)據(jù)變更,都會通過MySQL 的復(fù)制機制同步到另一臺服務(wù)器。當(dāng)然,有的可能會擔(dān)心,這樣不會導(dǎo)致兩臺互為Master 的 MySQL之間循環(huán)復(fù)制嗎?當(dāng)然不會,這是由于MySQL在記錄Binary log日志時,記錄了當(dāng)前的server-id, server-id在我們配置MySQL復(fù)制時就已經(jīng)設(shè)置好了。一旦有了server-id,MySQL就很容易判斷最初的寫入是在哪臺服務(wù)器上發(fā)生的,MySQL不會將復(fù)制所產(chǎn)生的變更記錄到Binary log,這樣就避免了服務(wù)器間數(shù)據(jù)的循環(huán)復(fù)制。當(dāng)然,我們搭建Dual-Master 架構(gòu),并不是為了讓兩個 Master 能夠同時提供寫入服務(wù),這樣會導(dǎo)致很多問題。舉例來說,假如Master A 與Master B幾乎同時對一條數(shù)據(jù)進行了更新,對Master A的更新比對Master B的更新早,當(dāng)對Master A的更新最終被同步到Master B時,老版本的數(shù)據(jù)將會把版本更新的數(shù)據(jù)覆蓋,并且不會拋出任何異常,從而導(dǎo)致數(shù)據(jù)不一致的現(xiàn)象發(fā)生。在通常情況下,我們僅開啟一臺Master的寫入,另一臺Master僅僅 stand by或者作為讀庫開放,這樣可以避免數(shù)據(jù)寫入的沖突,防止數(shù)據(jù)不一致的情況發(fā)生。在正常情況下,如需進行停機維護,可按如下步驟執(zhí)行Master的切換操作:

1)停止當(dāng)前Master 的所有寫入操作。

2)在 Master 上執(zhí)行set global read_only=1,同時更新MySQL 配置文件中相應(yīng)的配置,避免重啟時失效。

3)在 Master上執(zhí)行show Master status,以記錄 Binary log 坐標(biāo)。

4)使用Master上的Binary log坐標(biāo),在stand by的 Master上執(zhí)行select Master_pos_wait(),等待stand by Master的 Binary log跟上 Master的 Binary log。

5)在stand by Master 開啟寫入時,設(shè)置read_only=O。

6)修改應(yīng)用程序的配置,使其寫入到新的Master。

mysql給表增加字段會鎖表,怎樣才可以不鎖表嗎?

這個是屬于系統(tǒng)遺留問題,也就是一種系統(tǒng)的保護機制。就是為了避免出現(xiàn)這種在線修改系統(tǒng)的操作。

增加字段屬于系統(tǒng)的修改操作。盡量不要在線操作,因為可能出現(xiàn)。未知的漏洞。一定要。離線。修改完畢,然后經(jīng)過測試后。認(rèn)為已經(jīng)沒有問題了。在。次日的凌晨發(fā)一個通知。停機維護。這樣才能保證系統(tǒng)的正常運轉(zhuǎn)。

如果在前期設(shè)置系統(tǒng)的時候就預(yù)留了。熱升級的空間。這樣才能達到在線操作的目的,而且系統(tǒng)的金融群總是一部分先升級。

很多情況下,你需要使用系統(tǒng)里邊的工具集。在線修改表格。原理其實非常的簡單,新建的和原表的表格結(jié)構(gòu)。要一模一樣。對這個表格進行修改,然后把結(jié)構(gòu)變更的日期。插入進去。而且還建議您盡量在業(yè)務(wù)的低縫隙進行修改。避免發(fā)生不可控的未知狀況。

使用說明:

1、如果是用 MySQL + Apache,使用的又是 FreeBSD 網(wǎng)絡(luò)操作系統(tǒng)的話,安裝時候你應(yīng)按注意到FreeBSD的版本問題,在FreeBSD 的 3.0 以下版本來說,MySQL Source 內(nèi)含的 MIT-pthread 運行是正常的,但在這版本以上,你必須使用 native threads。

2、如果在 COMPILE 過程中出了問題,請先檢查你的 gcc版本是否在 2.81 版本以上,gmake 版本是否在3.75以上。

3、如果不是版本的問題,那可能是你的內(nèi)存不足,請使用configure--with-low-memory 來加入。

4、如果要重新做你的configure,那么你可以鍵入rm config.cache和make clean來清除記錄。

5、把 MySQL 安裝在 /usr/local 目錄下,這是缺省值,您也可以按照你的需要設(shè)定你所安裝的目錄。

網(wǎng)頁題目:mysql怎么不停機維護 MySQL維護
分享URL:http://www.muchs.cn/article0/hggiio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、云服務(wù)器、App開發(fā)、網(wǎng)站策劃虛擬主機、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站