簡(jiǎn)單講解MySQL的數(shù)據(jù)庫(kù)復(fù)制方法
MySQL復(fù)制其實(shí)就是把數(shù)據(jù)從一個(gè)節(jié)點(diǎn)(master) 拷貝到另一個(gè)節(jié)點(diǎn)(slaves), 當(dāng)然根據(jù)應(yīng)用架構(gòu)的不同,采用的方式也不同,MySQL服務(wù)器之間的復(fù)制使用的是二進(jìn)制日志機(jī)制.對(duì)master的更新與變動(dòng)都會(huì)作為事件(event)記錄在日志中,日志中的信息會(huì)隨變化的不同被記錄成不同的格式.slaves被配置成從master讀取日志,并且執(zhí)行二進(jìn)制日志中的事件到slave本地?cái)?shù)據(jù)庫(kù).一旦master啟動(dòng)二進(jìn)制日志功能,那么所有語(yǔ)句操作都會(huì)被記錄下來(lái),每一個(gè)slave會(huì)收到一份整個(gè)日志內(nèi)容的拷貝.slave的責(zé)任就是決定日志中的哪條語(yǔ)句需要被執(zhí)行,而我們不能通過(guò)配置master來(lái)僅僅記錄某些特定的事件.如果您沒(méi)有另行指定,在主服務(wù)器二進(jìn)制日志中的所有事件都在slave上執(zhí)行.如果需要,還可以配置slave僅應(yīng)用來(lái)自于特定數(shù)據(jù)庫(kù)或表的事件.

根據(jù)上圖來(lái)說(shuō)說(shuō)MySQL復(fù)制的工作機(jī)制,復(fù)制的過(guò)程在主從架構(gòu)中一般是有三個(gè)線程來(lái)完成復(fù)制工作的,主服務(wù)器上dump thread ,從服務(wù)器I/O thread ,從服務(wù)器sql thread, 如果想使用多線程的話需要打補(bǔ)丁的, 根據(jù)上圖一主一從的架構(gòu)復(fù)制是這樣工作的,主服務(wù)器將操作寫入二進(jìn)制日志,由主服務(wù)器上的dump線程將日志發(fā)送到從服務(wù)器上的I/O線程,然后存儲(chǔ)為中繼日志,而由sql線程根據(jù)中繼日志將數(shù)據(jù)寫入從服務(wù)器中,下面來(lái)配置下這樣的復(fù)制架構(gòu),
MySQL同主機(jī)不同數(shù)據(jù)庫(kù)的復(fù)制命令:注意運(yùn)行在Terminal中,不運(yùn)行在MySQL命令行中。
mysqldump Portal_DEV -u root -ppassword1$ --add-drop-table | mysql Portal_Optimize -u root -ppassword1$
在復(fù)制過(guò)程中,出現(xiàn)如下報(bào)錯(cuò):
ERROR 1153 (08S01) at line 1160: Got a packet bigger than 'max_allowed_packet' bytes mysqldump: Got errno 32 on write
需要將my.cnf中的max_allowed_packet 放大,我本機(jī)默認(rèn)是1M,放大至32M。重啟MySQL。
OK. 以上方案適用于小數(shù)據(jù)量的數(shù)據(jù)庫(kù)。下面來(lái)個(gè)大容量(1G以上)的。
mysqldump -uroot -ppassword --quick Portal_DEV | gzip > Portal_DEV.contents.gz
通過(guò)以上命令,將Portal_DEV數(shù)據(jù)庫(kù)導(dǎo)成Portal_DEV.contents.gz壓縮文件。
gunzip < Portal_DEV.contents.gz | mysql -uroot -ppassword Portal_Optimize
然后通過(guò)以上命令,將Portal_DEV導(dǎo)入Portal_Optimize數(shù)據(jù)庫(kù)。
Perfect, it's done!!!
- MySQL主從復(fù)制的原理及配置方法(比較詳細(xì))
- mysql中復(fù)制表結(jié)構(gòu)的方法小結(jié)
- MySQL復(fù)制表結(jié)構(gòu)和內(nèi)容到另一張表中的SQL語(yǔ)句
- MySQL快速?gòu)?fù)制數(shù)據(jù)庫(kù)數(shù)據(jù)表的方法
- Mysql主從復(fù)制(master-slave)實(shí)際操作案例
- mysql主從同步復(fù)制錯(cuò)誤解決一例
- mysql跨數(shù)據(jù)庫(kù)復(fù)制表(在同一IP地址中)示例
- mysql同步復(fù)制搭建方法指南詳細(xì)步驟
- 詳解MySQL雙活同步復(fù)制四種解決方案
- MySQL 數(shù)據(jù)庫(kù)雙向鏡像、循環(huán)鏡像(復(fù)制)
- mysql 復(fù)制原理與實(shí)踐應(yīng)用詳解
相關(guān)文章
MySQL慢查詢優(yōu)化之慢查詢?nèi)罩痉治龅膶?shí)例教程
這篇文章主要介紹了MySQL慢查詢?nèi)罩痉治龅膶?shí)例教程,通過(guò)設(shè)置參數(shù)從慢查詢?nèi)罩鹃_(kāi)始分析性能問(wèn)題的原因,需要的朋友可以參考下2015-11-11
MYSQL中查詢LONGBLOB類型數(shù)據(jù)的大小的詳細(xì)示例
在MySQL中,LONGBLOB?是一種二進(jìn)制大對(duì)象(BLOB)數(shù)據(jù)類型,用于存儲(chǔ)大量的二進(jìn)制數(shù)據(jù),但是,LONGBLOB?數(shù)據(jù)類型本身并不直接存儲(chǔ)數(shù)據(jù)的大?。ㄩL(zhǎng)度),它存儲(chǔ)的是二進(jìn)制數(shù)據(jù)的實(shí)際內(nèi)容,這篇文章主要介紹了MYSQL中怎么查詢LONGBLOB類型數(shù)據(jù)的大小,需要的朋友可以參考下2024-06-06
MySQL和連接相關(guān)的timeout 的詳細(xì)整理
這篇文章主要介紹了MySQL和連接相關(guān)的timeout 的詳細(xì)整理的相關(guān)資料,本文主要總結(jié)下和連接有關(guān)的timeout,需要的朋友可以參考下2017-08-08
MySQL的Data_ADD函數(shù)與日期格式化函數(shù)說(shuō)明
今天看到了MySQL的日期函數(shù),里面很多有用的,這里只把兩個(gè)參數(shù)不太好記的粘下來(lái)了。2010-06-06

