當前位置:編程學習大全網 - 源碼下載 - 誰在或做過mysql cluster NDB 7.2集群

誰在或做過mysql cluster NDB 7.2集群

壹、災難恢復

我們知道,數據庫的日常維護,最重要的就是備份和恢復。有同事(也有DBA)告訴我說,cluster的維護成本很高。就我看來,Mysql發布這個版本的集群方案,是經過嚴格測試的。官方宣稱99.999%的可用性,毫秒級實時性非常誘人。引用官方的壹張圖:

在所有的管理節點,絕大部分的API節點(Mysqld節點和Memcache節點),超過半數的數據節點都崩潰的情況下,cluster仍然可以保障妳的業務正常運行。節點的事務如果出現沖突,cluster會自動修復,如果其中任意壹臺數據節點出現故障無法啟動,那麽,我們馬上可以換上新的,使用ndbd --initial初始化節點,alter online table重新同步寫入數據就行。

二、日常備份和恢復

cluster的備份命令非常容易,在管理節點上執行:

mgmd>start backup

語法:

START BACKUP [backup_id] [wait_option] [snapshot_option]

官方文檔我就不抄了。控制臺會顯示當前備份的簡要信息,如:哪個節點開始備份等。妳也可以指定具體哪個節點開始備份。cluster的備份數據存放在每個數據節點的數據目錄下,從1開始,每次備份產生壹個備份目錄,形如:BACKUP-備份id。在不指定節點的情況下,每個節點會依次備份。cluster的備份是在線的,不閉塞的,這樣我們在備份時完全不用擔心會造成數據庫堵塞。恢復數據同樣簡單,我們在每個數據節點(註意:是每個數據節點,不是其中某壹個)發出如下指令:

shell>/opt/soft/mysql/bin/ndb_resotre -c "管理服務器IP:1186" -n 節點id -b 備份id -r 就行,如果不想記binlog日誌,可以加上--no-binlog參數,全部參數列表請參考官方文檔。

在上文,我強調要在每個數據節點執行操作,但是,這只是為保險起見,事實上,在最少情況下,只需要在相同節點組的任意壹個節點各操作壹次就行。例如,如上圖典型的4數據節點集群,node1和2屬於node group1,node3和4屬於node group2,在恢復時,我們只需要在node1和node3上各執行壹次恢復指令就行了。其個中原因,大家可以再看圖多思考就會明白。

三、在線擴展節點

Mysql cluster宣稱可以在業務量大大增長時,在線添加節點以適應業務需求。方法如下:

(註:以下192.168.0.10是管理節點IP)

1.添加壹個[ndbd]並在config.ini裏加入

2.停掉mgmd : 10 stop 再重啟 ndb_mgmd -f config.ini --reload (這裏10是管理節點的id)

3.在已存在的數據節點上rolling restart :

mgmd>原數據節點ID1 restart

mgmd>原數據節點ID2 restart

可以在ndbinfo.nodes表檢查確認所有的數據節點使用了新的配置

4.rolling restart所有的sql和api節點 (如果有配置/etc/init.d/mysql.server restart也壹樣)

mysqladmin -uroot -ppassword shutdown

mysqld_safe --ndbcluster --ndb-connectstring=192.168.0.10 &

5.在新節點上執行初始化啟動

ndbd -c 192.168.0.10 --initial

6.建新節點組3,4是新節點的ID

mgmd>CREATE NODEGROUP 3,4

7.再分配集群數據,對每個表執行壹次

ALTER ONLINE TABLE tbl REORGANIZE PARTITION.

如果數據量很大,這個過程比較慢,請耐心等待。(如果要數落cluster的不足,我認為在線添加數據節點算是壹個)

四、Replication

今天,Mysql的replication異步復制技術已經相當成熟,使用也非常頻繁。cluster同樣對replication提供了支持。配置非常簡單,僅需在cluster中任意壹臺myql節點上啟用binlog,作為master,然後在從庫上不啟用ndb引擎,其他配置和mysqld之間的replication完全壹樣。這裏需要註意的壹點是,妳的binlog_format需要設置為STATEMENT,壹定不要設置為MIXED,否則妳的觸發器將會令妳的同步出錯。這可能是cluster的壹個bug,我沒有深究。

  • 上一篇:pubg國際服盜號方法
  • 下一篇:什麽叫做數字展廳?
  • copyright 2024編程學習大全網