mysql數據庫rp集群,使用MySQL-Cluster搭建MySQL數據庫集群

1、MySQL集群的作用:

- 解決訪問節點的單點故障

- 數據存儲節點的單點故障

- 解決數據存儲節點數據備份問題

2、集群:

使用一組服務器提供相同的服務

3、關于MySQL-Cluster:

MySQL官方提供的集群版本

已集成標準版MySQL程序,可獨立安裝使用

采用NDB(Network DataBase)引擎

假定每個節點都有獨立內存、硬盤

利用廉價硬件減少整個數據庫的單點故障

4、集群中服務器的角色

- 數據節點:ndbd(單線程) ndb_mtd(多線程)?? 存儲數據的(表里的記錄)

- Sql節點:mysqld? 是客戶端訪問數據的接口,負責執行SQL命令

可理解為支持NDB的標準MySQL服務器,僅存儲表結構、獨立的用戶授權

面向客戶端提供用戶鑒權、SQL查詢等訪問服務

- 管理節點:ndb_mgmd? 管理集群中的所有服務器

客戶端:client 訪問數據

5、案例拓撲:

0818b9ca8b590ca3270a3433284dd417.png

6、0818b9ca8b590ca3270a3433284dd417.pngMySQL集群的搭建(配置)

1)公共配置:

# rpm -qa | grep -i mysql

# service mysql? stop ; chkconfig? mysql off

# rpm -e --nodeps MySQL-devel MySQL-embeddedMySQL-test MySQL-server MySQL-client MySQL-shared MySQL-shared-compat

//保留RHEL自帶的mysql-libs包

# rm -rf??/etc/my.cnf

# rm -rf??/var/lib/mysql/*

# tar -xvfMySQL-Cluster-gpl-7.3.3-1.el6.x86_64.rpm-bundle.tar

# rpm -Uvh MySQL-Cluster-*.rpm

2)配置管理節點:

運行管理進程?? ndb_mgmd

配置文件? /etc/config.ini?? (服務器的角色? 和角色對應的ip? id號?? 工作目錄)

[ndbd?default] :數據節點的公共配置

[ndb_mgmd] :指定管理節點

[ndbd] :指定數據節點

[mysqld] :指定sql節點

# mkdir??-p??? /var/log/mysql-cluster?? //創建工作目錄

# vim?/etc/config.ini?? //編寫主配置文件

[ndbd?default]

NoOfReplicas=2?????? //保留2份數據拷貝

DataMemory=80M???? //數據緩存大小

IndexMemory=18M?? //索引緩存大小

[ndb_mgmd]

nodeid=7????? //管理節點的ID標識

hostname=192.168.4.100?? //管理節點的IP地址

datadir=/var/log/mysql-cluster??? //工作目錄

[ndbd]?????????? //設置數據節點ndbA

nodeid=8????? //數據節點ndbA的ID標識

hostname=192.168.4.30???? //此節點的IP地址

datadir=/var/log/mysql-cluster/data???? //工作目錄

[ndbd]???????? //設置數據節點ndbB

nodeid=9

hostname=192.168.4.40

datadir=/var/log/mysql-cluster/data

[mysqld]????? //設置sql節點sqlA

nodeid=10????? //sql節點sqlA的ID標識

hostname=192.168.4.10???? //此節點的IP地址

[mysqld]????? //設置sql節點sqlB

nodeid=11

hostname=192.168.4.20

:wq

3)配置數據節點:

運行數據進程?? ndbd

配置文件:? /etc/my.cnf

#mkdir?-p?? /var/log/mysql-cluster/data??? //創建工作目錄

#vim????/etc/my.cnf

[mysqld]

datadir=/var/log/mysql-cluster/data? ?? ??//工作目錄

ndb-connectstring=192.168.4.100??? //管理節點IP地址

ndbcluster???????????????????? //指定使用ndbcluster集群存儲引擎

[mysql_cluster]

ndb-connectstring=192.168.4.100?? //如何連接管理節點

:wq

4)配置sql節點

運行mysql服務??mysql(此服務是由mysql-cluster軟件包提供)

#vim???/etc/my.cnf

[mysqld]

ndbcluster??????????????????????????????? //指定使用ndbcluster集群存儲引擎

default-storage-engine=ndbcluster??? //指定表的默認存儲引擎是 ndbcluster

ndb-connectstring=192.168.4.100

[mysql_cluster]

ndb-connectstring=192.168.4.100???? //如何連接管理節點

:wq

7、啟動不同角色服務器上進程

1)? 啟動管理節點上的管理進程

#ndb_mgmd? -f??/etc/config.ini

//啟動進程,結合-f選項讀取.ini配置;默認后臺模式,調試時可加--nodaemon;修改了配置以后,可加--initial重新初始化

#netstat?-untlap? |? grep???:1186? ??//查看進程

#pkill??-9?? ndb_mgmd????? //殺死進程

2)依次啟動數據節點上的數據進程

#ndbd

//首次執行時,可加--initial初始化;多個數據節點的操作相同

3)依次啟動sql節點上的數據庫服務

#service?? mysql?start??//多個sql節點的操作相同

8、查看集群狀態

1)管理節點上登錄管理界面,查看狀態

#ndb_mgm

ndb_mgm> show

Cluster Configuration

---------------------

[ndbd(NDB)]? 2node(s)

id=8 @192.168.4.30? (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0, *)

id=9 @192.168.4.40? (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0)

[ndb_mgmd(MGM)]????? 1 node(s)

id=7 @192.168.4.100? (mysql-5.6.14 ndb-7.3.3)

[mysqld(API)]?????? 2 node(s)

id=10????? @192.168.4.10? (mysql-5.6.14 ndb-7.3.3)

id=11????? @192.168.4.20? (mysql-5.6.14 ndb-7.3.3)

ndb_mgm>

2)Sql節點的mysql初始化

重設root密碼;為客戶端訪問添加用戶授權

#service mysqlstart

#mysql -uroot -p初始密碼??? //初始密碼見/root/.mysql_secret文件

3)在sql節點上,檢查默認的存儲引擎

Mysql>show engines;

9、測試訪問節點的單點故障

在sql節點上授權可以從遠端的客戶機連接自己

Grant all?on? webdb.* to webuser@”%”identified by “webuser88”;? //兩個sql節點都做授權

客戶端訪問:#mysql-h192.168.10/20? -uwebuser -pwebuser88

mysql>create? database??webdb;

mysql>create? table?webdb.a(id int);

mysql>insert?? into?webdb.a values(1000);

mysql> select? * from webdb.a ;

訪問sqlA節點操縱數據,在sqlB上會同步結果。

10、測試數據節點的單點故障

數據節點之間可以互相備份,自動選舉Master,自動同步數據。測試時可關掉一個數據節點的ndbd服務,插入、查詢數據驗證數據的同步性。

Sql節點和數據節點的進程正常運行后,不需要重啟的話,管理節點可以關掉

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287305.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287305.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287305.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

桌面虛擬化云技術將支撐數字化醫院

桌面虛擬化云技術將支撐數字化醫院 2013-12-04 10:32 現今醫療行業已經從醫院——患者的二元關系走向從醫院——患者——政府監督——醫療保險的多元關系,醫療體系需要更高效的運轉,患者需要更好的就醫體驗,這使得醫療行業信息化建設的重要性…

Blazor University (23)路由 —— 路由參數

原文鏈接:https://blazor-university.com/routing/route-parameters/路由參數源代碼[1]到目前為止,我們已經了解了如何將靜態 URL 鏈接到 Blazor 組件。靜態 URL 只對靜態內容有用,如果我們希望同一個組件根據 URL 中的信息(例如客…

【經典回放】多種語言系列數據結構算法:棧(C版)

本文采用C語言實現棧結構算法并舉例應用。 一 棧的基本原理分析 作為棧這種數據結構,數據是進行所謂的先進后出操作,但棧在操作中,并不需要在中間插入刪除操作、一般也不需要在進棧數據中查找什么,這種情況下,恰恰是順序表可以完成的非常好的場合,所以棧經常是用一個簡單…

Android之提示android.content.res.Resources$NotFoundException: Resource ID #0x7f08010a

1 問題 在我的oppo機器上面運行一個頁面沒有奔潰,但是在紅米安卓5.1版本運行頁面奔潰,奔潰信息如下 /Timeline(11600): Timeline: Activity_launch_request time:61313216 I/WtProcessController( 3721): FOREGROUND INFO: name=com.appsinnova.android.keepshare uid=1023…

《看聊天記錄都學不會C語言?太菜了吧》(14)這么神奇?我寫了20行代碼竟然一行就可以搞定?

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我,若你是真心學習可以送你書籍,指導你學習,給予你目標方向的學習路線,無套路,博客為證。 本系列文章將會以通俗易懂的對話方式進行教學,對話中將涵蓋…

Javascript和android原生互調

最近在做原生和js端的互調的功能&#xff0c;自己改了個demo&#xff0c;給大家講解下。 先上js代碼 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>方法調用基本流程測試</title> </head> <body> &l…

ice 服務java連接,“先進的互聯互通技術”–使用ice聯通php和java [part 1 server]

PHP沒有中間件&#xff0c;導致了對很多麻煩。比如&#xff0c;對數據庫的操作必須要鏈接數據庫&#xff0c;然后做SQL操作。WEB程序直接操作數據庫的方法&#xff0c;這樣會帶來很多人為因素的事故隱患&#xff0c;以及管理上的麻煩&#xff0c;尤其是對大型的網站應用來說。規…

HttpCookie

參考 : http://www.cnblogs.com/fish-li/archive/2011/07/03/2096903.html 上文結尾有提到一個說法 4. HttpRequest.Cookies 與 HttpResponse.Cookies 會有關系&#xff08;很奇怪吧&#xff09;。 微軟官網也是這么說的 : https://msdn.microsoft.com/en-us/library/system.we…

Android之BaseQuickAdapter.setOnItemChildClickListener點擊死人也沒反應的原因

1 問題 用BaseQuickAdapter設置子view點擊事件 unInstalledAdapter!!.setOnItemChildClickListener(object: BaseQuickAdapter.OnItemChildClickListener {override fun onItemChildClick(adapter: BaseQuickAdapter<*, *>?, view: View?, position: Int) {var info =…

【經典回放】多種語言系列數據結構算法:棧(C#版)

本文采用C#語言實現棧結構算法并舉例應用。 一、C#的棧對象使用 對C#而言,要使用棧是極其簡單的事情,因為C#已經有棧對象,所以根本不需要自用再用順序表構造棧,只需要你會說明、會應用即可。 在C#中棧對象的類型名稱是Stack,這是個泛型的對象,所以,你在使用這個對象的時…

美國銀行將AI應用于企業應收賬款處理

據外媒消息&#xff0c;美國銀行&#xff08;Bank of America&#xff09;與Fintech創業公司High Radius達成合作&#xff0c;將人工智能應用于企業應收賬款處理。該應用程序專為大型、復雜的公司管理大筆支付業務&#xff0c;因這些公司常常發生回款信息丟失或一方單獨收到付款…

在 Kubernetes 上部署 Secret 加密系統 Vault

HashiCorp Vault 是一個基于身份的 Secret 和加密管理系統。Secret 是您想要嚴格控制訪問的內容&#xff0c;例如 API 加密密鑰、密碼或證書。Vault 提供由身份驗證和授權方法控制的加密服務。使用 Vault 的 UI、CLI 或 HTTP API&#xff0c;可以安全地存儲和管理對機密和其他敏…

《看聊天記錄都學不會C語言?太菜了吧》(15)你學了一節課的函數我5分鐘搞定了,還很熟

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我&#xff0c;若你是真心學習可以送你書籍&#xff0c;指導你學習&#xff0c;給予你目標方向的學習路線&#xff0c;無套路&#xff0c;博客為證。 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋…

【經典回放】多種語言系列數據結構算法:棧(JavaScript版)

本文采用JavaScript語言實現棧結構算法并舉例應用。 JavaScript的棧是數組對象中自動提供的,這點如同C#,實際也不需要自己編寫什么棧的程序,如果你用: var s=new Array(); 定義一個s的數組,則這個s上將有以下的方法可供使用: 其中:FF: Firefox, IE: Internet Explore…

設計模式(10)-----模板方法模式

模板方法模式(Template Method) 定義 定義了一個操作中的算法的骨架&#xff0c;而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。 UML類圖 例子 AbstractClass package com.csdhsm.pattemdesign.template;/** * Title: …

Android之提示Caused by: java.lang.UnsupportedOperationException: Binary XML file line #67: You must sup

1 問題 : Caused by: java.lang.UnsupportedOperationException: Binary XML file line #67: You must supply a layout_width attribute. 05-08 16:42:59.322 23038 23038 E AndroidRuntime: at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:7…

SLES修改本地FTP安裝源

2019獨角獸企業重金招聘Python工程師標準>>> SLES修改本地FTP安裝源 一、配置本機FTP............................................................................................................. 1 1.1、安裝.............................................…

.NET7 Preview4:重構的返回值TypedResults

為了更好的測試&#xff0c;更好的性能&#xff0c;Preview4帶了一個新的請求返回值類型&#xff0c;這個新的類型中封裝了所有的Http請求返回狀態函數&#xff0c;還包括了返回成功后的幾種數據類型&#xff0c;下面列舉了幾個常用的類型&#xff1a;app.MapGet("/test_o…

MATLAB軟件禁用利好,Matlab被禁用?一款國產軟件站了出來說:我就是中國的Matlab...

眾所周知&#xff0c;前段時間Matlab被禁用&#xff0c;引發了網友們對于國產工業軟件落后的諸多思考&#xff0c;比如為什么落后&#xff0c;落后到什么程度&#xff0c;有沒有替代品等等。并且從Matlab到EDA&#xff0c;再到CAD等等&#xff0c;甚至工業操作系統等等&#xf…

CMDB資產采集

Paramikoimport paramiko private_key paramiko.RSAKey.from_private_key_file(/home/auto/.ssh/id_rsa) # 創建SSH對象ssh paramiko.SSHClient()# 允許連接不在know_hosts文件中的主機ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 連接服務器ssh.connect(ho…