最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL Cluster集群的初級部署教程

 更新時間:2016年02月28日 17:30:59   作者:樂晨  
這篇文章主要介紹了MySQL Cluster集群的初級部署教程, MySql Cluster可以利用充分利用節(jié)點服務器的多進程做到高可用,需要的朋友可以參考下

Mysql Cluster概述

   MySql Cluster最顯著的優(yōu)點就是高可用性,高實時性,高冗余,擴展性強。

   它允許在無共享的系統(tǒng)中部署"內(nèi)存中"數(shù)據(jù)庫的Cluster.通過無共享體系結(jié)構(gòu),系統(tǒng)能夠使用廉價的硬件.此外,由于每個組件有自己的內(nèi)存和磁盤,所以不存在單點故障.

   它由一組計算機構(gòu)成,每臺計算機上均運行者多種進程,包括mysql服務器,NDB cluster的數(shù)據(jù)節(jié)點,管理服務啟,以及專門的數(shù)據(jù)訪問程序

   所有的這些節(jié)點構(gòu)成一個完整的mysql集群體系.數(shù)據(jù)保存在"NDB存儲服務器"的存儲引擎中,表(結(jié)構(gòu))則保存在"mysql服務器"中.應用程序通過"mysql服務器"訪問這些數(shù)據(jù)表,集群管理服務器通過管理工具(ndb_mgmd)來管理"NDB存儲服務器".

基本概念

   "NDB"是一種"內(nèi)存中"的存儲引擎,它具有可用性高和數(shù)據(jù)一致性好的特點.下面介紹mysql cluster 節(jié)點時,它表示進程.在單臺計算機上可以有任意數(shù)目的節(jié)點.

    管理節(jié)點(MGM):這類節(jié)點的作用是管理mysql cluster內(nèi)的其他節(jié)點,如配置文件和cluster 日志,啟動并停止節(jié)點,運行備份等.cluster中的每個節(jié)點從管理服務器上檢索配置數(shù)據(jù),并請求管理服務器所在位置的方式.當數(shù)據(jù)節(jié)點內(nèi)出現(xiàn)新的事件時,節(jié)點將關于這類事件的信息傳輸?shù)焦芾矸掌魃?然后,又將這類信息寫入cluster日志。由于這類節(jié)點負責管理其他節(jié)點的配置,所以應在啟動其他節(jié)點之前首先啟動這類節(jié)點.MGM節(jié)點是用命令"ndb_mgmd"來啟動

    數(shù)據(jù)節(jié)點(NDB):這類節(jié)點用于保存cluster的數(shù)據(jù).數(shù)據(jù)節(jié)點的數(shù)目與副本的數(shù)目相關,是片段的倍數(shù).假設有2個副本,每個副本有2個片段,那么就有4個數(shù)據(jù)節(jié)點.不過沒有必要設置多個副本.數(shù)據(jù)節(jié)點是用命令"ndbd"來啟動的.

   SQL節(jié)點:這是用來訪問cluster數(shù)據(jù)的節(jié)點.對于MYSQL cluster來說,客戶端節(jié)點是使用NDB cluster存儲引擎的傳統(tǒng)Mysql服務器.通常,sql節(jié)點使用將"ndbcluster"添加到"my.cnf"后使用"mysqld" 啟動

   此外,可以有任意數(shù)目的cluster客戶端進程或應該程序.它們分為兩種類型,即標準mysql客戶端和管理客戶端.

   標準mysql客戶端:能夠從php,perl,c,c++,java,python,ruby等編寫的現(xiàn)有mysql應用程序上訪問mysql cluster

   管理客戶端:這類客戶端與管理服務器相連,并提供了啟動和停止節(jié)點,啟動和停止消息跟蹤,顯示節(jié)點版本和狀態(tài),啟動和停止備份等命令.

   以下是mysql cluster 架構(gòu)示意圖:

2016228172415617.png (583×372)

由于Mysql Cluster采用的是TCP/IP方式連接,并且節(jié)點之間的數(shù)據(jù)傳輸沒有加密,最后使用單獨的子網(wǎng)里.

下面來實施部署

為了方便 這里我把管理節(jié)點,數(shù)據(jù)節(jié)點,sql節(jié)點放在一臺機器上.

管理節(jié)點1 10.1.6.205 

數(shù)據(jù)節(jié)點1 10.1.6.203  

數(shù)據(jù)節(jié)點2 10.1.6.205

sql節(jié)點1   10.1.6.203

sql節(jié)點2   10.1.6.205

1.安裝(這里安裝7.2.6版本)

下載mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz 二進制包(里面包含ndb,mysql)

root@10.1.6.205:~# tar -C /usr/local -xzvf mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz
root@10.1.6.205:/usr/local# ln -s /usr/local/mysql-cluster-gpl-7.2.8-linux2.6-i686 /usr/local/mysql
root@10.1.6.205:/usr/local# cd mysql
root@10.1.6.205:/usr/local/mysql# scripts/mysql_install_db --user=mysql
root@10.1.6.205:/usr/local/mysql# chown -R mysql:mysql /usr/local/mysql
同理10.1.6.203

2.配置SQL節(jié)點和存儲NDB節(jié)點

root@10.1.6.205:/usr/local/mysql# vim /etc/my.cnf 
[mysqld]
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/
user=mysql
port=3306
socket=/tmp/mysql.sock
 
ndbcluster
max_connect_errors=10000
ndb-connectstring=10.1.6.205
connect_timeout = 300
 
[mysql_cluster]
ndb-connectstring=10.1.6.205

同理10.1.6.203
3.配置管理節(jié)點

root@10.1.6.205:/usr/local/mysql# vim /opt/cluster/config.ini
[ndbd default]
NoOfReplicas=2 
DataMemory=80M #分配data storage使用的內(nèi)存 每個ndb占用
IndexMemory=18M #分配index storage使用的內(nèi)存 每個ndb占用
 
[tcp default]
portnumber=2205 #ndb監(jiān)聽端口
 
#設置管理節(jié)點
[ndb_mgmd]
NodeId=1
hostname=10.1.6.205
datadir=/opt/cluster #在MGM上保存日志的目錄
 
#設置存儲節(jié)點NDB1
[ndbd]
NodeId=2
hostname=10.1.6.203
datadir=/usr/local/mysql/data
 
#設置存儲節(jié)點NDB2
[ndbd]
NodeId=3
hostname=10.1.6.205
datadir=/usr/local/mysql/data
 
#設置SQL節(jié)點1
[mysqld]
NodeId=4
hostname=10.1.6.203
 
#設置SQL節(jié)點2
[mysqld]
NodeId=5
hostname=10.1.6.205
[mysqld] #運行任意ip連接
[mysqld]

4.啟動mysql cluster

1)先啟動管理節(jié)點服務器.2)啟動NDB存儲節(jié)點服務器.3)啟動SQL節(jié)點服務器.

1)執(zhí)行啟動MGM節(jié)點進程

root@10.1.6.205:/usr/local/mysql/bin# /usr/local/mysql/bin/ndb_mgmd -f /opt/cluster/config.ini
MySQL Cluster Management Server mysql-5.5.22 ndb-7.2.6

必須用參數(shù)-f或--config-file告訴ndb_mgm配置文件config.ini文件所在的位置.
2)在2臺存儲節(jié)點服務器上,如果是第一次啟動NDB進程的話,必須先執(zhí)行以下命令:

root@10.1.6.205:/usr/local/mysql/bin# /usr/local/mysql/bin/ndbd --initial
2013-08-28 23:40:36 [ndbd] INFO  -- Angel connected to '10.1.6.205:1186'
2013-08-28 23:40:36 [ndbd] INFO  -- Angel allocated nodeid: 2

注意:僅在首次啟動NDB時,或者在備份/恢復或配置文件發(fā)生變化且重啟NDB時才使用-initial參數(shù).因為該參數(shù)會使節(jié)點刪除由早期NDB實例創(chuàng)建的,用于恢復的任何文件,包括用于恢復的日志文件.
如果不是第一次啟動,用以下命令

root@10.1.6.205:/usr/local/mysql/bin# /usr/local/mysql/bin/ndbd

3)啟動SQL節(jié)點服務器

root@10.1.6.203:/usr/local/mysql/bin# /usr/local/mysql/bin/mysqld_safe /etc/my.cnf &

5.查看各個節(jié)點情況

root@10.1.6.205:/usr/local/mysql# /usr/local/mysql/bin/ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @10.1.6.203 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0, Master)
id=3 @10.1.6.205 (mysql-5.5.22 ndb-7.2.6, Nodegroup: 0)
 
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.1.6.205 (mysql-5.5.22 ndb-7.2.6)
 
[mysqld(API)] 4 node(s)
id=4 @10.1.6.203 (mysql-5.5.22 ndb-7.2.6)
id=5 @10.1.6.205 (mysql-5.5.22 ndb-7.2.6)
id=6 (not connected, accepting connect from any host)
id=7 (not connected, accepting connect from any host)
 
ndb_mgm>

6.測試

注意:與沒有使用Cluster的Mysql相比,在mysql cluster內(nèi)操作數(shù)據(jù)的方式?jīng)]有太大的區(qū)別.操作時注意

1)表必須用engine=NDB或engine=NDBCLUSTER選項創(chuàng)建

2)每個NDB表必須有一個主鍵.如果在創(chuàng)建表時用戶未定義主鍵,NDB Cluster存儲引擎會自動生成隱含的主鍵.

該隱含鍵也將占用空間,就像任何其他的表索引一樣.由于沒有足夠的內(nèi)存來容納這些自動創(chuàng)建的鍵,所以很容易出現(xiàn)問題.

在203 sql節(jié)點1上創(chuàng)建表


root@10.1.6.203:/usr/local/mysql/bin# /usr/local/mysql/bin/mysql -uroot -p
mysql> use test;
mysql> create table dave (num int(10)) engine=ndb;
mysql> show create table dave\G;
*************************** 1. row ***************************
  Table: dave
Create Table: CREATE TABLE `dave` (
 `num` int(10) DEFAULT NULL
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
 
mysql> insert into dave
 -> values
 -> (100);
Query OK, 1 row affected (0.01 sec)
mysql> select * from dave;
+------+
| num |
+------+
| 100 |
+------+

然后在205 sql節(jié)點2上查看該表

root@10.1.6.205:/usr/local/mysql# /usr/local/mysql/bin/mysql -uroot -p
mysql> use test
mysql> select * from dave;
+------+
| num |
+------+
| 100 |
+------+

測試OK

關注一下表

mysql> select * from ndbinfo.memoryusage;
+---------+--------------+--------+------------+----------+-------------+
| node_id | memory_type | used | used_pages | total | total_pages |
+---------+--------------+--------+------------+----------+-------------+
|  2 | Data memory | 851968 |   26 | 83886080 |  2560 |
|  2 | Index memory | 212992 |   26 | 19136512 |  2336 |
|  3 | Data memory | 851968 |   26 | 83886080 |  2560 |
|  3 | Index memory | 212992 |   26 | 19136512 |  2336 |

注意:使用量寫滿會訪問不了,這時需要調(diào)整配置DataMemory,IndexMemory參數(shù).各配置文件都需調(diào)整重啟生效.


7.關閉cluster

root@10.1.6.205:/usr/local/mysql/bin# /usr/local/mysql/bin/ndb_mgm -e shutdown
Connected to Management Server at: 10.1.6.205:1186
3 NDB Cluster node(s) have shutdown.
Disconnecting to allow management server to shutdown.

再關閉SQL節(jié)點mysqld服務

root@10.1.6.203:/usr/local/mysql/bin# /usr/local/mysql/bin/mysqladmin -uroot -p shutdown
Enter password: 
130829 02:19:57 mysqld_safe mysqld from pid file /usr/local/mysql/data//debian.pid ended
[1]+ Done     /usr/local/mysql/bin/mysqld_safe /etc/my.cnf

以上就是mysql cluster初步部署, 之后會寫haproxy+keepalive 雙機高可用.

相關文章

  • MySQL慢sql優(yōu)化思路詳細講解

    MySQL慢sql優(yōu)化思路詳細講解

    在日常開發(fā)工作中數(shù)據(jù)庫是常用的數(shù)據(jù)存儲組件,一旦使用了數(shù)據(jù)庫,那慢查詢SQL的優(yōu)化是繞不開的一道坎,下面這篇文章主要給大家介紹了關于MySQL慢sql優(yōu)化思路的相關資料,需要的朋友可以參考下
    2023-01-01
  • mysql的聯(lián)合索引(復合索引)的實現(xiàn)

    mysql的聯(lián)合索引(復合索引)的實現(xiàn)

    這篇文章主要介紹了mysql的聯(lián)合索引(復合索引)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 安裝和使用percona-toolkit來輔助操作MySQL的基本教程

    安裝和使用percona-toolkit來輔助操作MySQL的基本教程

    這篇文章主要介紹了安裝和使用percona-toolkit來輔助操作MySQL的基本教程,這里舉了五個最常見的命令用法,需要的朋友可以參考下
    2015-11-11
  • 用SELECT... INTO OUTFILE語句導出MySQL數(shù)據(jù)的教程

    用SELECT... INTO OUTFILE語句導出MySQL數(shù)據(jù)的教程

    這篇文章主要介紹了用SELECT... INTO OUTFILE語句導出MySQL數(shù)據(jù)的教程,是MySQL入門學習中的基礎知識,需要的朋友可以參考下
    2015-05-05
  • Mysql inner join on的用法實例(必看)

    Mysql inner join on的用法實例(必看)

    下面小編就為大家?guī)硪黄狹ysql inner join on的用法實例(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Mysql中的Datetime和Timestamp比較

    Mysql中的Datetime和Timestamp比較

    這篇文章主要介紹了Mysql中的Datetime和Timestamp比較,本文總結(jié)了它們的相同點和不同點以及時間格式介紹等,需要的朋友可以參考下
    2015-03-03
  • MySQL排序檢索數(shù)據(jù)操作方法梳理

    MySQL排序檢索數(shù)據(jù)操作方法梳理

    SELECT語句是SQL中最常用的語句。它的用途是從一個或多個表中檢索信息。為了使用SELECT檢索表數(shù)據(jù),必須至少給出兩條信息:想選擇什么、從什么地方選擇,這篇文章主要介紹了MySQL排序檢索數(shù)據(jù)
    2022-10-10
  • mysql數(shù)據(jù)庫優(yōu)化必會的幾個參數(shù)中文解釋

    mysql數(shù)據(jù)庫優(yōu)化必會的幾個參數(shù)中文解釋

    對于自己配置mysql數(shù)據(jù)庫的朋友,需要注意的幾點,下面都是英文的解釋,比較易懂方便和我一樣需要優(yōu)化配置mysql的朋友
    2008-09-09
  • Mysql索引分類及其使用實例詳解

    Mysql索引分類及其使用實例詳解

    數(shù)據(jù)庫的索引就像一本書的目錄,能夠加快數(shù)據(jù)庫的查詢速度,MYSQL索引有四種PRIMARY、INDEX、UNIQUE、FULLTEXT,?其中PRIMARY、INDEX、UNIQUE是一類,F(xiàn)ULLTEXT是一類,本文給大家介紹Mysql索引分類及其使用實例,感興趣的朋友一起看看吧
    2022-07-07
  • MySQL中易被我們忽略的細節(jié)

    MySQL中易被我們忽略的細節(jié)

    這篇文章主要為大家介紹了幾處MySQL中易被我們誤會的地方,分享給大家,一來為了有趣,二來為了不讓自己踩坑。
    2016-07-07

最新評論

延吉市| 平远县| 伊吾县| 青龙| 永新县| 衢州市| 黄大仙区| 望奎县| 乐东| 门源| 获嘉县| 苍南县| 南阳市| 汉阴县| 绵阳市| 城市| 长岛县| 信宜市| 阳新县| 安平县| 临湘市| 同德县| 桓台县| 固始县| 项城市| 阳春市| 阿坝| 巩留县| 泰顺县| 崇仁县| 华安县| 松潘县| 滦平县| 阳原县| 长兴县| 吐鲁番市| 德令哈市| 云龙县| 广河县| 寿宁县| 凤城市|