一、MySQL的主從切換在什么情況下使用
主從切換一般在如下情況下才進(jìn)行:
1、例行的主庫重啟,主庫運(yùn)行一段時(shí)間后需要將主庫進(jìn)行重啟掃盤,降低主庫死機(jī)的風(fēng)險(xiǎn);
2、主庫異常情況下切到從庫。
3、分機(jī)房網(wǎng)絡(luò)調(diào)整涉及到主庫的情況。
你的情況要看宕掉后的情況。如果有期間同步延遲,需要另外進(jìn)行處理。
在開始切換之前先對(duì)主庫進(jìn)行鎖表:
flush tables with read lock
(在執(zhí)行完成后生產(chǎn)環(huán)境必須等待所有語句執(zhí)行完成)
在flush tables with read lock成功獲得鎖之前,必須等待所有語句執(zhí)行完成(包括SELECT)。所以如果有個(gè)慢查詢?cè)趫?zhí)行,或者一個(gè)打開的事務(wù),或者其他進(jìn)程拿著表鎖,flush tables with read lock就會(huì)被阻塞,直到所有的鎖被釋放。
延伸閱讀:
二、什么是數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫的應(yīng)用非常廣泛,舉個(gè)例子,我們平時(shí)在瀏覽器上搜索內(nèi)容,就要用到數(shù)據(jù)庫去檢索我們的關(guān)鍵字。以前我們可能會(huì)用數(shù)組、集合、文件等來存儲(chǔ)數(shù)據(jù),但是接下來我們就會(huì)面臨一個(gè)問題,當(dāng)存儲(chǔ)的數(shù)據(jù)或內(nèi)容過多的時(shí)候,我們?nèi)绾稳ゾ珳?zhǔn)的找到我們需要的東西,這時(shí)候數(shù)據(jù)庫管理系統(tǒng)就派上了用場(chǎng)。除此之外,數(shù)據(jù)庫管理系統(tǒng)還能永久的儲(chǔ)存我們的數(shù)據(jù)。
為了便于大家理解,這里先給大家講解幾個(gè)概念
DB數(shù)據(jù)庫(database):存儲(chǔ)數(shù)據(jù)的“倉庫”。它保存了一系列有組織的數(shù)據(jù)。
DBMS數(shù)據(jù)庫管理系統(tǒng)(Database Management System):數(shù)據(jù)庫是通過DBMS創(chuàng)建和操作的容器。
SQL,結(jié)構(gòu)化查詢語言(Structured Query Language)用一句話概括,SQL是一種特殊目的的編程語言,一種專門用來與數(shù)據(jù)庫通信的語言。在數(shù)據(jù)庫中,數(shù)據(jù)被結(jié)構(gòu)化并存儲(chǔ)在不同的表中,從而簡(jiǎn)化了訪問,更新和操作數(shù)據(jù)的過程。該表由列和行組成。數(shù)據(jù)庫中的表可以在關(guān)系的幫助下進(jìn)行連接。要在數(shù)據(jù)庫中執(zhí)行與數(shù)據(jù)相關(guān)的任務(wù),可以使用SQL。SQL代表結(jié)構(gòu)化查詢語言,旨在在特定RDBMS內(nèi)創(chuàng)建,修改和管理數(shù)據(jù)庫中的數(shù)據(jù)。
SQL優(yōu)點(diǎn):
1、不是某個(gè)特定數(shù)據(jù)庫供應(yīng)商專有的語言,幾乎所有DBMS(數(shù)據(jù)庫管理系統(tǒng))都支持SQL
2、簡(jiǎn)單易學(xué)
3、雖然簡(jiǎn)單,但實(shí)際上是一種強(qiáng)有力的語言,靈活使用其語言元素,可以進(jìn)行非常復(fù)雜和高級(jí)的數(shù)據(jù)庫操作。