簡略講授MySQL的數據庫復制辦法。本站提示廣大學習愛好者:(簡略講授MySQL的數據庫復制辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是簡略講授MySQL的數據庫復制辦法正文
MySQL復制其實就是把數據從一個節點(master) 拷貝到另外一個節點(slaves), 固然依據運用架構的分歧,采取的方法也分歧,MySQL辦事器之間的復制應用的是二進制日記機制.對master的更新與更改都邑作為事宜(event)記載在日記中,日記中的信息會隨變更的分歧被記載成分歧的格局.slaves被設置裝備擺設成從master讀取日記,而且履行二進制日記中的事宜到slave當地數據庫.一旦master啟動二進制日記功效,那末一切語句操作都邑被記載上去,每個slave會收到一份全部日記內容的拷貝.slave的義務就是決議日記中的哪條語句須要被履行,而我們不克不及經由過程設置裝備擺設master來僅僅記載某些特定的事宜.假如您沒有另行指定,在主辦事器二進制日記中的一切事宜都在slave上履行.假如須要,還可以設置裝備擺設slave僅運用來自於特定命據庫或表的事宜.
依據上圖來講說MySQL復制的任務機制,復制的進程在主從架構中普通是有三個線程來完成復制任務的,主辦事器上dump thread ,從辦事器I/O thread ,從辦事器sql thread, 假如想應用多線程的話須要打補釘的, 依據上圖一主一從的架構復制是如許任務的,主辦事器將操作寫入二進制日記,由主辦事器上的dump線程將日記發送到從辦事器上的I/O線程,然後存儲為中繼日記,而由sql線程依據中繼日記將數據寫入從辦事器中,上面來設置裝備擺設下如許的復制架構,
MySQL同主機分歧數據庫的復制敕令:留意運轉在Terminal中,不運轉在MySQL敕令行中。
mysqldump Portal_DEV -u root -ppassword1$ --add-drop-table | mysql Portal_Optimize -u root -ppassword1$
在復制進程中,湧現以下報錯:
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 縮小,我本機默許是1M,縮小至32M。重啟MySQL。
OK. 以上計劃實用於小數據量的數據庫。上面來個年夜容量(1G以上)的。
mysqldump -uroot -ppassword --quick Portal_DEV | gzip > Portal_DEV.contents.gz
經由過程以上敕令,將Portal_DEV數據庫導成Portal_DEV.contents.gz緊縮文件。
gunzip < Portal_DEV.contents.gz | mysql -uroot -ppassword Portal_Optimize
然後經由過程以上敕令,將Portal_DEV導入Portal_Optimize數據庫。
Perfect, it's done!!!