程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 簡略講授MySQL的數據庫復制辦法

簡略講授MySQL的數據庫復制辦法

編輯:MySQL綜合教程

簡略講授MySQL的數據庫復制辦法。本站提示廣大學習愛好者:(簡略講授MySQL的數據庫復制辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是簡略講授MySQL的數據庫復制辦法正文


MySQL復制其實就是把數據從一個節點(master) 拷貝到另外一個節點(slaves), 固然依據運用架構的分歧,采取的方法也分歧,MySQL辦事器之間的復制應用的是二進制日記機制.對master的更新與更改都邑作為事宜(event)記載在日記中,日記中的信息會隨變更的分歧被記載成分歧的格局.slaves被設置裝備擺設成從master讀取日記,而且履行二進制日記中的事宜到slave當地數據庫.一旦master啟動二進制日記功效,那末一切語句操作都邑被記載上去,每個slave會收到一份全部日記內容的拷貝.slave的義務就是決議日記中的哪條語句須要被履行,而我們不克不及經由過程設置裝備擺設master來僅僅記載某些特定的事宜.假如您沒有另行指定,在主辦事器二進制日記中的一切事宜都在slave上履行.假如須要,還可以設置裝備擺設slave僅運用來自於特定命據庫或表的事宜.

https://www.aspphp.online/shujuku/UploadFiles_3118/201707/2017072814271702.jpg (506×339)

依據上圖來講說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!!!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved