Mysql:群集概念

來源:互聯網
上載者:User

一 概述:

  • mysql的群集是個比較另類的東西,它本質上只是標準Mysql伺服器的一種儲存引擎而已——名稱叫 ndb 或者 ndbcluster。該引擎必須顯式的編譯進mysqld伺服器中才可以使用
  • ndb支援較為廣泛的平台及作業系統,且經過多年的發展,已經可以應用於生產環境
  • ndb引擎通過tcp協議交換群集資料
  • ndb不需要傳統的共用存放裝置,而是通過 專門的 ndbd資料存放區引擎 來類比共用儲存
  • ndbd儲存引擎支援 自動設定、多個資料複本、資料分區、自動分組等功能
  • ndb提供專門的管理工具集

 

二 ndb群集構架

 

 

  • 管理節點:ndb_mgmd  群集的心臟
  • 管理介面:ndb_mgm  群集的管理介面
  • 資料節點:ndbd  虛擬共用儲存引擎
  • sql節點:mysqld 支援ndb引擎的mysqld伺服器
  • 用戶端:任何的用戶端、如mysql、sqlyog等等, 無特殊要求

 

三 ndb群集中的邏輯概念和組件

  • nodeid:節點id號——唯一標識 群集內各種組件的 唯一 id 。注意:對於資料節點 範圍為:1-48;對於管理節點:範圍為:1-63。可能的話,管理節點和mysqld節點在:49-63的範圍內。控制參數為:[ndbd] [ndbd_mgmd] nodeid
  • replicas:複件——資料的冗餘度,可以理解為資料的副本個數。從資料安全和群集可用上來說,replicas越大越好,但終歸要考慮效能、網路通訊量、資料安全性要求等因素,mysql給出的預設值即一般的推薦值為2。控制參數為:[nbdb default] noofreplicas 。說的遠一點,mysql群集這點比使用共用儲存的 sqlserver群集和orace群集靈活、強大多了。
  • nodegroup:資料節點群組——服務於replicas的邏輯概念和實現機制1,目的是實現組內的各節點的 複件 功能, 同時實現 組間的 複件功能。通過組 將資料的 複製 簡化、明細化、可靠化。一般 組號 是動態計算的,也可以明確指定。控制參數為:[nbdb] nodegroup
  • partition:資料的的一個邏輯部分——服務於replicas的邏輯概念和實現機制2,細化邏輯資料片段,應該是複件 功能的最小邏輯單元
  • mysqld:使用和支援ndb的容器——當mysqld識別到ndb引擎的表時,就調用ndb儲存引擎外掛程式 進而使用 ndb群集訪問功能。必須注意:ndb對mysqld來說只是一個外掛程式儲存引擎而已,其他mysqld必須的東西 和原來一樣!!

 

四 群集管理節點設定檔和配置參數

mysql在這一點上真的不錯。所有的程式——無論是用戶端、伺服器、還是各組件程式——都遵循同樣的規則:識別同樣的參數、讀取同樣的設定檔、依照同樣的規則進行擴充!

  • 必須注意程式讀取設定檔的 次序、路徑
  • 可以通過命令列選項覆蓋預設的行為
  • 每種程式都讀取特定的節,注意通用節

 

群集設定檔:--config-file=filename, -f filename :預設為 "./config.ini"

群集管理節點讀取的節有很多很多,很多參數可以用在不同的節,某些參數只能用在特定的節。注意如果executeoncomputer 和 hostname 參數都不配置,則認為是 localhost

[computer]

  • id=n #注意:此處的id僅僅就是id而不是其他節中 nodeid的別名,所以,不能寫成nodeid。該值用在 [ndbd] 和 [ndbd_mgmd] 的 executeoncomputer的值中
  • hostname=name_or_ip

 

[mgm] [ndbd_mgmd]

  • nodeid={1-63}
  • executeoncomputer=id #不能用在 [??? default] 中
  • hostname={localhost|hostname or ip}[:port] #不能用在 [??? default] 中
  • datadir={.|path}  #注意不用使用引號括起來的字串
  • logdestination={FILE:filename=ndb_%nodeid%_cluster.log,maxsize=1000000,maxfile=6|[CONSOLE,{SYSLOG:{[auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, syslog, user, uucp, local0, local1, local2, local3, local4, local5, local6, local7]}},FILE]...} #日誌目標可以用多種和多個;FILE目標可以使用絕對路徑;SYSLOG有很多的系統日誌目的的!

 

[ndbd default] [ndbd]

  • noofreplicas={2|n} #必須在[ndbd default]中
  • nodegroup=n #只是第一次啟動節點是會用到,主要用來向現有的群集添加新的資料節點用。通常ndb會自動計算分配該值
  • nodeid=n #只能用於[ndbd]
  • hostname=string  #只能用於[ndbd]
  • serverport={動態|1-64K} #通常用於有防火牆的os中
  • datadir=path #指示trace files, log files, pid files and error logs 的位置。預設是節點進程的工作目錄。
  • filesystempath=path # 指示 metadata, REDO logs, UNDO logs (for Disk Data tables), and data files 的位置,預設是 DataDir。該目錄必須是os存在的!在該目錄下,節點檔案夾會自動建立,形如: ndb_2_fs.
  • backupdatadir=path #指示資料節點備份的目錄 ,預設 同 FileSystemPath 
  • datamemory={80M|1M-1024G}
  • -----其他記憶體、中繼資料等參數

 

[mysqld] [api]

  • nodeid
  • hostname

 

[tcp default] [tcp]

 

[sci]

 

 

五 資料節點設定檔和配置參數

使用標準的my.ini或my.cnf檔案

bind-address=hostname or specified ip address

ndb-connectstring={ localhost:1186 | [nodeid=id,] { hostname_or_ip [:port]}  [,....n]}

ndb-nodeid=n

initial

initial-start

nowait-nodes=node_id_1 [,.....n]

 

 

 

六 mysqld節點設定檔和配置參數

使用標準的my.ini或my.cnf檔案

讀取節:[mysqd]

ndbcluster | ndbcluster={on | yes | no | off} #預設是關閉的,相當於指定了 skip-ndbcluster參數

skip-ndbcluster #顯式的關閉ndb引擎,這是預設的

ndb-nodeid={1-63} #如果設定,必須在ndb-connectstring前面。設定該值 可以 覆蓋 ndb-connectstring中的指定的nodeid、可以覆蓋群集設定檔中指定的nodeid、可以禁止管理服務自動為該mysqld節點自動分配nodeid。注意:ndb-nodeid 不能和 ndb-connectstring中指定 nodeid=n同時設定;該值 必須和config指定了點nodeid相匹配、或者config中沒有指定nodeid而是讓管理服務自動分配nodeid;當然該值不能和群集中已經分配的nodeid衝突!!

ndb-connectstring={ localhost:1186 | [nodeid=id,] { hostname_or_ip [:port]}  [,....n]}

 

 

七 待續............... 還有很多未盡的事宜,不斷更新補充中......

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.