`
ssydxa219
  • 浏览: 622265 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

mysql cluster

 
阅读更多

配置之前,先补充一些Linux常用命令:

ls 浏览

ls -l     查看文件夹及文件权限

vi 文本编辑器(搜索、编辑)

   i  状态为修改

   退出:“Esc”键后,然后输入":",然后输入“wq”写入、退出

   :q! 强制退出

vim -f [文件名] 强制恢复文件

 

cp    拷贝文件命令

rm    删除文件

mkdir     创建文件夹

ln    连接问价或目录

 

man [命令]   查看命令参数

ifconfig  网卡信息命令

dig   (域信息搜索器)

df    查看系统文件

vmstat    系统状态

ps    查看进程(-e显示全部,-f全格式输出)

ps -ef|grep mysql 查看所有mysql进程

 

Tips:输入一个文件或文件名,按一下Tab键,会自动完成改文件名(前提是这个文件或文件夹必须存在);

例如:

输入

[root@localhost tmp]# tar –xzvf mysql-c

按一下Tab键自动完成:

[root@localhost tmp]# tar –xzvf mysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz

 

下面,我们一起来架构吧!

 

一、配置环境:

OS:Linux CentOS 5.0

MySQL: mysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz (注意:需用Cluster版本,可在官网上下载 http://dev.mysql.com/downloads/cluster/#downloads

 

 

节点配置情况:

MGM:192.168.20.231

NDBD1:192.168.20.232

NDBD2:192.168.20.233

SQL1:192.168.20.234

SQL2:192.168.20.235

 

 

修改CentOS IP地址

(1)打开/etc/sysconfig/network-scripts/ifcfg-eth0文件,做如下修改

# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)

DEVICE=eth0

BOOTPROTO=static

ONBOOT=yes

HWADDR=00:0c:29:be:b3:53

IPADDR=192.168.20.231

NETMASK=255.255.255.0

GATEWAY=192.168.20.1

 

 

(2)修改/etc/resolv.conf文件, 如下(修改DNS服务)

nameserver 202.101.172.35

search localdomain

(3)重启网络服务

[root@localhost ~]# service network restart

 

二、软件安装:

(一)管理节点MGM

配置管理节点

首先在合适的位置,创建一个管理节点的配置文件,步骤如下:

[root@localhost ~]# mkdir /var/lib/mysql-cluster

[root@localhost ~]# cd /var/lib/mysql-cluster

[root@localhost mysql-cluster]# vi config.ini

配置文件config.ini内容如下:

[ndbd default]

NoOfReplicas=2

DataMemory=80M

IndexMemory=18M

 

[tcp default]

portnumber=2202

 

[ndb_mgmd]

hostname=192.168.20.231

datadir=/var/lib/mysql-cluster

 

[ndbd]

hostname=192.168.20.232

datadir=/usr/local/mysql/data

 

[ndbd]

hostname=192.168.20.233

datadir=/usr/local/mysql/data

 

[mysqld]

hostname=192.168.20.234

 

[mysqld]

hostname=192.168.20.235

 

 

 

安装管理节点,不需要mysqld二进制文件,只需要MySQL Cluster服务端程序(ndb_mgmd)和监听客户端程序(ndb_mgm)。这两个文件都在下载的MySQL-cluster文件解压后的bin 文件夹中。执行如下步骤,在集群的管理节点上安装ndb_mgmd 和 ndb_mgm。

1、改变地址到/var/tmp目录下,解压MySQL-Cluster压缩文件,取出ndb_mgm和ndb_mgmd复制到/usr/local/bin 目录下。

[root@localhost ~]# cd /var/tmp

[root@localhost tmp]# tar –xzvf mysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz

[root@localhost tmp]# cd mysql-cluster-gpl-7.1.13-linux-i686-glibc23

[root@localhost tmp]# cp bin/ndb_mgm* /usr/local/bin

 

2、改变路径为拷贝到的目录下,并确保这两个文件可执行。

[root@localhost tmp]# cd /usr/local/bin

[root@localhost bin]# chmod +x ndb_mgm*

3、在/usr/local下创建mysql文件夹。

[root@localhost ~]# cd /usr/local

[root@localhost local]# mkdir mysql

 

(二)、数据节点NDBDSQL节点

配置数据节点NDBD和SQL节点

在每一个SQL节点中的/etc目录下找到my.cnf文件,并做如下配置:

 

[client]

socket=/usr/local/mysql/sock/mysql.sock

 

[mysqld]

ndbcluster

datadir=/usr/local/mysql

socket=/usr/local/mysql/sock/mysql.sock

ndb-connectstring=192.168.20.231

old_passwords=1

 

[mysql_cluster]

ndb-connectstring=192.168.20.231

 

 

在每一个数据节点NDBD和SQL节点的机器上,用root用户执行下面的步骤。

1、检查/etc/passwd 和 /etc/group 文件,是否存在mysql组和mysql用户,如果没有,用下面的命令创建一个mysql组,并在改组中添加mysql用户。

[root@localhost ~]# groupadd mysql

[root@localhost ~]# useradd –g mysql mysql

 

2、改变文件夹位置到mysql压缩包的存放位置,解压文件,准备安装,步骤如下:

(下载文件可以从其他电脑映射, 在/home/下面创建一个download文件夹,如果是在本机Linux下下载的文件,则不需要此映射步骤。)

[root@localhost ~]# mount -t cifs -o username="name",password="password" //192.168.20.210/MySQL /home/download

[root@localhost ~] cp /home/download/ mysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz /var/tmp

[root@localhost ~]# cd /var/tmp

[root@localhost tmp]# tar –C /usr/local –xzvf mysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz

 

 

3、改变位置到local文件夹,改变mysql解压后的文件夹名称为mysql,然后执行提供的脚本,创建系统数据库。

[root@localhost tmp]# cd /usr/local

[root@localhost local]# mv mysql-cluster-gpl-7.1.13-linux-i686-glibc23/ mysql/

[root@localhost local]# cd mysql

 

[root@localhost mysql]# mkdir sock

[root@localhost mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql

 

 

4、为MySQL服务及数据目录设置必要的服务。

[root@localhost mysql]# chown -R root .

[root@localhost mysql]# chown -R mysql.mysql /usr/local/mysql/data

[root@localhost mysql]# chown -R mysql.mysql /usr/local/mysql/sock

[root@localhost mysql]# chgrp -R mysql .

[root@localhost mysql]# ls -l

 

5、复制MySQL的启动脚本到如下的文件夹,确保可以执行。并设置为当系统启动时,同时启动MySQL。

[root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/

[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysql.server

[root@localhost mysql]# chkconfig --add mysql.server

 

 

三、Cluster环境启动

注意启动顺序:首先是管理节点,然后是NDBD节点,最后是SQL节点。

1[MGM]

[root@localhost ~]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini

使用ndb_mgm来监听客户端,如下:

[root@localhost ~]# ndb_mgm

 

 

2[NDBD]

首次启动,则需要添加--initial参数,以便进行NDB节点的初始化工作。在以后的启动过程中,则是不能添加该参数的,否则ndbd程序会清除在之前建立的所有用于恢复的数据文件和日志文件。

[root@localhost ~]# /usr/local/mysql/bin/ndbd --initial

如果不是首次启动,则执行下面的命令。

[root@localhost ~]# /usr/local/mysql/bin/ndbd

 

 

3[SQLD]

/usr/local/mysql/bin/mysqld_safe --user=mysql &

  

 

有可能出现上图问题,是系统数据库创建问题,只需再次创建系统数据库,方法如下:

[root@localhost mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql

 

再次启动

/usr/local/mysql/bin/mysqld_safe --user=mysql &

 

 

 

查看管理节点,启动成功:

 

 

四、测试

1、常规测试:

在节点4上面:

为了让表在cluster中正常复制,创建一个表必须使用ndbcluster引擎(engine=ndb Or engine=ndbcluster)方法如下:

mysql>use test

mysql>create table teacher(t_id int) engine=ndb;

 

 

如果是一个已经存在的表,用alter table修改表的引擎。

mysql>alter table student engine=ndb;

 

插入一条数据:

mysql>insert into teacher values(133);

然后在节点5上:

mysql>select * from teacher;

 

 

两个节点数据保持一致,恭喜你,测试成功!

 

2、模拟NDB节点Crash

在节点2上终止掉NDB进程,然后再分别通过两个SQL节点去访问teacher表,查看是否可以正常访问,数据是否一致。如下:

查看进程

[root@localhost ~]# ps -ef

 

 

[root@localhost ~]# kill 3344

[root@localhost ~]# ps -ef

 

查看管理节点,显示节点2已关闭。

 

 

节点4上面:

 

在节点5上面:

 

 

再回到节点4上面:

 

测试成功,当有一个NDB节点Crash后,整个MySQL Cluster环境仍可以正常服务。

 

3、模拟SQL节点Crash

Kill掉节点4的mysqld进程,然后通过节点5进行访问,如下:

 

可以看到节点4 Crash之后,节点5仍然可以继续正常服务,测试成功。

分享到:
评论

相关推荐

    MySQL Cluster(MySQL 集群)

    ### MySQL Cluster(MySQL 集群) #### 一、MySQL Cluster 概述 MySQL Cluster 是 MySQL 的一个高级版本,特别适用于分布式计算环境。它通过采用 NDB Cluster 存储引擎,实现了高度可用性和数据一致性。MySQL ...

    MySQL Cluster集群构建实战

    ### MySQL Cluster集群构建实战 #### 一、MySQL Cluster 概述与部署 MySQL Cluster是一种高度可用、可扩展的分布式数据库解决方案,它通过无共享架构实现了内存中的数据存储,旨在提高系统的高可用性和高实时性。...

    mysql Cluster.pdf

    ### MySQL Cluster概述与架构 #### 一、MySQL Cluster简介 MySQL Cluster是一种高度可扩展且具有高可用性的数据库系统,它采用分布式架构,在无共享存储设备的情况下实现数据的持久化存储。这种架构允许数据分布在...

    Guide to Optimizing Performance of the MySQL Cluster Database

    This guide explores how to tune and optimize the MySQL Cluster database to handle diverse workload requirements. It discusses data access patterns and how to build distribution awareness into ...

    实战体验几种MysqlCluster 方案.docx

    MySQL Cluster 是 MySQL 官方集群部署方案,它的历史较久。支持通过自动分片支持读写扩展,通过实时备份冗余数据,是可用性较高的方案,声称可做到 99.999% 的可用性。 MySQL Cluster 的架构及实现原理主要由三种...

    MySQL Cluster 概述-官方文件翻译

    MySQL Cluster 是一种高可用、高性能的数据库集群技术,它的核心特性在于无共享(Shared Nothing)架构,这使得系统能够在低成本硬件上实现高可靠性和可扩展性。无共享架构意味着每个节点都有自己的内存和磁盘存储,...

    MySQL Cluster 8.0.27(mysql-cluster-8.0.27-winx64.zip)

    MySQL Cluster 8.0.27 是一个高度可用、可扩展的数据库解决方案,专为对数据可用性和性能有高要求的应用程序设计。该版本是针对Microsoft Windows操作系统(x86, 64-bit)的,提供了ZIP格式的归档文件,方便在...

    MySQL Cluster集群搭建详解

    MySQL Cluster是一种可扩展的、高性能的、容错能力强的集群数据库解决方案。它通过其独特的分布式架构设计,支持在多个节点间进行数据的复制和同步,能够提供高可用性和冗余性。对于想要搭建MySQL Cluster集群的新手...

    Mysql Cluster 7.6.4 环境搭建

    Mysql Cluster 7.6.4 环境搭建,非常详细的文档。。。。

    Mysql Cluster(集群)的概念和架构

    ### MySQL Cluster(集群)的概念与架构深度解析 MySQL Cluster,作为MySQL数据库的一种高可用、高性能的解决方案,自MySQL 4.1.x版本起被引入,旨在通过数据的分布式存储和处理,实现系统的可扩展性和可靠性增强。其...

    利用MySQL Cluster 7.0 + LVS 搭建高可用环境

    【MySQL Cluster 7.0】 MySQL Cluster 7.0 是一个分布式数据库系统,它提供了高可用性、可扩展性和数据复制功能。相较于之前的版本,MySQL Cluster 7.0 在性能上有了显著提升,主要体现在以下几个关键特性: 1. **...

    Guide to Scaling Web Databases with MySQL Cluster

    This provides unique insight into the challenges of scaling web databases, which in turn has driven the development of MySQL Cluster, integrating key technologies to enable the scaling of rapidly ...

    mysqlcluster白皮书

    MySQL Cluster,也称为NDB(Network Database)Cluster,是MySQL数据库管理系统的一个组件,它提供了高可用性、可扩展性和数据复制功能。这份“MySQL Cluster白皮书”将深入探讨这个分布式数据库系统的架构、特性和...

    CenterOS 7.5下Mysql Cluster 7.6.12高可用集群搭建.docx

    MySQL Cluster是一种高可用性、分布式、内存中的数据库系统,它为关键任务应用程序提供低延迟和高吞吐量。在CentOS 7.5环境下搭建MySQL Cluster 7.6.12,可以确保数据库服务的持续性和可靠性。以下是搭建MySQL ...

    MySQL Cluster 8.0.27(mysql-cluster-community-server-8.0.27)

    MySQL Cluster 8.0.27(mysql-cluster-community-server-8.0.27-1.el8.x86_64.rpm ) 适用于Red Hat Enterprise Linux 8 / Oracle Linux 8 (x86, 64-bit), RPM Package MySQL Server

Global site tag (gtag.js) - Google Analytics