`
zhang_ly520
  • 浏览: 162072 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql集群配置

阅读更多

1.   概述

MySQL Cluster是一种技术,该技术允许在无共享的系统中部署内存中数据库的簇。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。

MySQL Cluster将标准的MySQL服务器与名为NDB内存中簇式存储引擎集成了起来。在我们的文档中,术语NDB指的是与存储引擎相关的设置部分,而术语MySQL Cluster指的是MySQLNDB存储引擎的组合。

MySQL Cluster由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB簇的数据节点,管理服务器,以及(可能)专门的数据访问程序。关于簇中这些组件的关系,请参见下图:

 

2.   名词解释

NDB是一种内存中存储引擎,它具有可用性高和数据一致性好的特点。

管理(MGM)节点这类节点的作用是管理MySQL簇内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM节点是用命令ndb_mgmd启动的。

数据节点:这类节点用于保存簇的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。没有必要有一个以上的副本。数据节点是用命令ndbd启动的。

SQL节点:这是用来访问簇数据的节点。对于MySQL簇,客户端节点是使用NDB簇存储引擎的传统MySQL服务器。典型情况下,SQL节点是使用命令mysqld –ndbcluster启动的,或将ndbcluster添加到my.cnf后使用mysqld启动。

标准MySQL客户端:对于MySQL簇,它们与标准的(非簇类)MySQL没有区别。换句话讲,能够从用PHPPerlCC++JavaPythonRuby等编写的现有MySQL应用程序访问MySQL簇。

管理客户端:这类客户端与管理服务器相连,并提供了优雅地启动和停止节点、启动和停止消息跟踪(仅对调试版本)、显示节点版本和状态、启动和停止备份等的命令。 

3.   服务器环境

节点

IP地址

管理(MGM)节点

192.168.0.207

MySQL服务器(SQL)节点1

192.168.0.199

MySQL服务器(SQL)节点2

192.168.0.203

数据(NDBD)节点"A"

192.168.0.204

数据(NDBD)节点"B"

192.168.0.205

由一台机器上的vmware提供的5台系统为redhat5 linux的虚拟机(主机环境2003)。

4.   Mysql Cluster的简单实例

4.1. 文件的准备

4.1.1.    Mysql数据库

mysql-cluster-gpl-6.3.20-linux-i686-glibc23.tar.gz 多数文档都说下载MySQL-max,但是在超过5.1版本中只提供了mysql-cluster 效果应该一样。

 

4.2. Mysql Cluster的安装

4.2.1.    数据节点和数据节点的安装

安装方法和安装普通的mysql数据库二进制包相同。如果遇到已经安装有数据库的机器进行卸载。方法见mysql的卸载。

1)        检查你的/etc/passwd/etc/group文件(或使用操作系统提供的用于管理用户和组的工具),查看在系统上是否已存在mysql组和mysql用户,这是因为某些操作系统会将其作为安装进程的一部分予以创建。如果它们不存在,创建新的mysql用户组,然后为该组添加1mysql用户。

2)        groupadd mysql

3)        useradd -g mysql mysql

4)        进入包含下载文件的目录,解包档案文件,并创建与mysql-max可执行文件的symlink。注意,根据MySQL的版本号,实际的文件名和目录名会有所不同:

a)         cd /var/tmp

b)        tar -xzvf -C /usr/local/bin mysql-max-5.1.2-alpha-pc-linux-gnu-i686.tar.gz

c)        ln -s /usr/local/bin/mysql-max-5.1.2-alpha-pc-linux-gnu-i686 mysql

5)        进入mysql目录,运行所提供的用于创建系统数据库的脚本:

a)         cd mysql

b)        scripts/mysql_install_db --user=mysql

6)        MySQL服务器和数据目录设置必要的权限:

a)         chown -R root .     (注意“.”符号)

b)        chown -R mysql data    (在每台运行数据节点的机器上,数据目录是/usr/local/mysql/data。配置管理节点时将用到这类信息)

c)        chgrp -R mysql .    (注意“.”符号)

7)        MySQL启动脚本拷贝到恰当的目录下,使之成为可执行的脚本,并设置它以便在启动操作系统时启动:

a)         cp support-files/mysql.server /etc/rc.d/init.d/

b)        chmod +x /etc/rc.d/init.d/mysql.server

c)        chkconfig --add mysql.server

8)        bin/mysqladmin -u root -p password    修改root密码。

9)         /usr/local/mysql/bin/mysqld_safe --user=mysql& 启动数据库,重启自动启动(如出现 Starting mysqld daemon with databases from /usr/local/mysql/data代表正常启动mysql服务了, Ctrl + C 跳出)

10)     /usr/local/mysql/bin/mysql -u root –p 登陆数据库。(测试安装成功否)

11)     在其他存储节点和sql节点上重复上述操作

4.2.2.    管理节点的安装

对于MGM(管理)节点,不需要安装mysqld可执行文件,仅需安装用于MGM服务器和客户端的二进制文件,这类文件可在下载的-max档案中找到。再次假定你将该文件放在了/var/tmp目录下,引导系统时(也就是说使用sudo, su root或系统的等效命令后,假定具有系统管理员账户的权限),执行下述步骤,在簇管理节点主机上安装ndb_mgmdndb_mgm

1)  即如/var/tmp目录,从档案文件中将ndb_mgmndb_mgmd提取到恰当的目录下,如/usr/local/bin

a)         cd /var/tmp

b)        tar -zxvf mysql-max-5.1.2-alpha-pc-linux-gnu-i686.tar.gz /usr/local/bin '*/bin/ndb_mgm*'

2)  进入解包文件所在的目录,然后使这两个文件成为可执行的:

a)         cd /usr/local/bin

b)        chmod +x ndb_mgm*

4.3. 节点的配置

4.3.1.    配置存储节点和SQL节点

1)      数据节点所需的my.cnf文件相当简单。配置文件应位于/etc目录下,并能用任何文本编辑器进行编辑(如有必要,创建该文件),例如:

a)         vi /etc/my.cnf

2)      对于本示例中的每个数据节点和SQL节点,my.cnf文件类似于:

[MYSQLD]                       

ndbcluster                      # run NDB engine

ndb-connectstring=192.168.0.207 # location of MGM node

[MYSQL_CLUSTER]                

ndb-connectstring=192.168.0.207  # location of MGM node

3)      在其他存储节点和sql节点上重复上述操作。

4.3.2.    配置管理节点

1)  配置MGM节点的第一步是创建目录,该目录用于存放配置文件,然后创建配置文件本身。例如(以根用户身份运行):

a)         mkdir /var/lib/mysql-cluster

b)        cd /var/lib/mysql-cluster

c)        vi config.ini

2)  对于我们的典型设置,config.ini文件应类似于:

# Options affecting ndbd processes on all data nodes:

[NDBD DEFAULT]

NoOfReplicas=2             # Number of replicas

DataMemory=80M        # How much memory to allocate for data storage

IndexMemory=18M      # How much memory to allocate for index storage

                       # For DataMemory and IndexMemory, we have used the

                       # default values. Since the "world" database takes up

                       # only about 500KB, this should be more than enough for

                       # this example Cluster setup.

# TCP/IP options:

[TCP DEFAULT]

#portnumber=2202       # This the default; however, you can use any

                       # port that is free for all the hosts in cluster

                       # Note: It is recommended beginning with MySQL 5.0 that

                       # you do not specify the portnumber at all and simply allow

                       # the default value to be used instead

# Management process options:

[NDB_MGMD]

hostname=192.168.0.207                     # Hostname or IP address of MGM node

datadir=/var/lib/mysql-cluster        # Directory for MGM node logfiles

# Options for data node "A":

[NDBD]

# (one [NDBD] section per data node)

hostname=192.168.0.204                     # Hostname or IP address

datadir=/usr/local/mysql/data         # Directory for this data node's datafiles

# Options for data node "B":

[NDBD]

hostname=192.168.0.205                     # Hostname or IP address

datadir=/usr/local/mysql/data       # Directory for this data node's datafiles

 

# SQL node options:

[MYSQLD]

# (additional mysqld connections can be specified for this node for various

hostname=192.168.0.203                     # Hostname or IP address

[MYSQLD]

hostname=192.168.0.199

4.4. Mysql Cluster的启动

1)  在管理主机上,从系统shell发出下述命令以启动MGM节点进程:

a)         ndb_mgmd -f /var/lib/mysql-cluster/config.ini (如果不能直接使用ndb_mgmd请到安装目录下执行此命令)

2)  在每台数据节点主机上,对于首次启动,运行下述命令启动NDBD进程:

a)         ndbd --initial(如果不能直接使用ndb_mgmd请到安装目录下执行此命令)

b)        注意,仅应在首次启动ndbd时,或在备份/恢复或配置变化后重启ndbd时使用“--initial”参数,这很重要。原因在于,该参数会使节点删除由早期ndbd实例创建的、用于恢复的任何文件,包括恢复用日志文件。

3)  ndb_mgm        进入管理节点客户端。

a)         SHOW    命令可以显示节点运行情况。

Connected to Management Server at: 192.168.0.207:1186

Cluster Configuration

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

[ndbd(NDB)]     2 node(s)

id=2    @192.168.0.204  (mysql-5.1.30 ndb-6.3.20, Nodegroup: 0, Master)

id=3    @192.168.0.205  (mysql-5.1.30 ndb-6.3.20, Nodegroup: 0)

 

[ndb_mgmd(MGM)] 1 node(s)

id=1    @192.168.0.207  (mysql-5.1.30 ndb-6.3.20)

 

[mysqld(API)]   2 node(s)

id=4    @192.168.0.203  (mysql-5.1.30 ndb-6.3.20)

id=5    @192.168.0.199  (mysql-5.1.30 ndb-6.3.20)

b)        ctrl+c退出管理节点客户端

4.5. 简单测试实例

1)  登陆任意一个sql节点A.

2)  创建一个表:ENGINE必须为NDB或者NDBCLUSTER

Use test

DROP TABLE IF EXISTS City;

CREATE TABLE City (

ID int(11) NOT NULL auto_increment,

Name char(35) NOT NULL default '',

CountryCode char(3) NOT NULL default '',

District char(20) NOT NULL default '',

Population int(11) NOT NULL default '0',

PRIMARY KEY  (ID)

) ENGINE=NDBCLUSTER;

INSERT INTO City VALUES (1,'Kabul','AFG','Kabol',1780000);

INSERT INTO City VALUES (2,'Qandahar','AFG','Qandahar',237500);

INSERT INTO City VALUES (3,'Herat','AFG','Herat',186800);

 

 

3)  登陆另外一个sql节点B

4)  Use test

Show tables;

5)  可以看到刚才创建的表City。代表配置成功。

4.6. 安全关闭和重启

4.6.1.    关闭

1)        ndb_mgm -e shutdown  该命令将恰当地中止ndb_mgmndb_mgmd以及任何ndbd进程。注意,这里的“-e”选项用于将命令从shell传递到ndb_mgm客户端.

2)        mysqladmin -u root -p shutdown 可中止SQL节点。

4.6.2.    重启

1)  ndb_mgmd -f /var/lib/mysql-cluster/config.ini     

重启cluster. 在管理主机上(本设置中为192.168.0.207

2)  ndbd        在每台数据节点主机上(192.168.0.204192.168.0.205

本文属于参照文档实践总结文章,多数数据来自文档,也包括一些其他文章中参考而来。

 

 

分享到:
评论

相关推荐

    mysql集群配置教程

    MySQL集群配置教程旨在帮助初学者理解并实现MySQL集群的搭建,让数据库的高可用性和负载均衡成为可能。MySQL集群(MySQL Cluster)是一种分布式事务处理系统,它提供了数据复制和分区,确保了数据的一致性和可用性。...

    mysql 集群配置

    ### MySQL集群配置详解 在现代数据管理环境中,MySQL集群配置是一项关键的技术,它不仅能够提高数据库系统的可用性和扩展性,还能够确保数据的一致性和完整性。本文将详细解析一个具体的MySQL集群配置案例,并深入...

    mycat mySql集群配置

    【标题】:mycat MySQL集群配置 MySQL集群配置是一个复杂的过程,特别是在大数据量和高并发的场景下,为了提升数据库的性能和可用性,我们通常会采用分布式数据库系统,如mycat。mycat是一个开源的分布式数据库系统...

    MySQL集群配置.txt

    ### MySQL集群配置详解 #### 一、概述 本篇文章将详细介绍如何在两台服务器上配置一个MySQL集群,并确保即使其中一台服务器出现故障或宕机,MySQL仍能保持正常运行。通常情况下,为了达到高可用性及容错能力,即便...

    mysql集群配置 txt格式

    根据提供的文件信息,我们可以归纳出以下关于MySQL集群配置的关键知识点: ### 一、MySQL集群配置概述 MySQL集群是一种高可用性和高性能的解决方案,它通过在多个服务器之间分发数据来提高系统的可伸缩性,并通过...

    mysql集群配置说明(XP下配置)

    MySQL集群配置在Windows XP环境下是一项复杂但必要的任务,尤其对于需要高可用性和数据冗余的系统。MySQL集群是一种分布式数据库系统,它由多个组件组成,包括管理节点(Management Node)、数据节点(Data Node)和...

    MySQL集群配置

    MySQL集群配置是一项关键任务,特别是对于那些需要高可用性和数据容错性的应用而言。这篇文档详细介绍了如何在两台服务器上设置一个MySQL集群,并通过第三台服务器作为管理节点来确保即使在单个服务器故障的情况下,...

    mycat mySql集群配置 含按日分库 按月分库等

    《Mycat MySQL集群配置:实现按日分库与按月分库详解》 在大数据时代,单个MySQL数据库往往无法满足高并发、大数据量的处理需求,这时就需要借助于分布式数据库中间件来提升系统的扩展性和性能。Mycat作为一款开源...

    Mysql集群配置手册V1.1

    资源名称:Mysql集群配置手册V1.1 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    MySQL集群配置与使用(Windows环境)

    Windows环境下MySQL集群的搭建,使用了三个节点,第一个节点作为管理节点,第二个节点作为数据节点A和SQL节点A,第三个节点作为数据节点B和SQL节点B。 此外,还演示了如何使用图形化客户端管理MySQL集群,新建数据库...

    Mysql 高效集群配置

    ### MySQL高效集群配置详解 #### 一、项目背景与需求 在当今的信息化时代,尤其在金融、基金、证券、保险以及电信等关键行业,业务的连续性和用户体验的提升成为了核心竞争力之一。为了满足7x24小时不间断服务的...

    mysql数据库集群配置详解.doc

    MySQL 数据库集群配置详解 MySQL 集群是一种高可用、高性能的数据库解决方案,可以提供高可用性和高性能的数据库服务。MySQL 集群配置主要包括集群管理节点、存储节点和SQL节点三部分。 MySQL 集群配置主要步骤...

    mysql集群环境搭建.docx

    MySQL 集群配置主要包括管理节点配置和数据节点配置。管理节点配置需要配置管理节点服务器的日志文件和配置文件。数据节点配置需要配置数据节点服务器的日志文件和配置文件。 5. MySQL 集群的优点 MySQL 集群...

    Mysql集群配置.docx

    随着人们对业务的要求和用用户的...我们将可将应用服务再整合,搭建一个集群环境,保证能够把出现问题的机器自动启动,使其恢复到初始状态。而且在整个服务切换过程中,不需要任何的人为干预。这也是高效能的解决方案

    linux mysql集群

    Linux MySQL 集群安装和配置 本文将向您讲述如何安装和配置一个基于 Linux 的 MySQL 集群,实现高可用性和负载均衡。我们将介绍如何在 3 台服务器上安装和配置 MySQL 集群,包括 Server1、Server2 和 Server3,其中...

    mysql集群配置文档[借鉴].pdf

    集群配置完成后,即使单个服务器出现故障,集群也可以继续运行,因为数据有多个副本。此外,由于数据分布在多台服务器上,MySQL集群还可以实现负载均衡,提高系统整体性能。 为了保持集群的稳定运行,你应该定期...

Global site tag (gtag.js) - Google Analytics