MySQL-cluster集群架构图文详解_恢复数据已加密

日期:2014-07-13 / 人气: / 来源:网络

配置之前,先补充一些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键,会自动完成改文件名(前提是这个文件或文件夹必须存在);

例如:

输入

[[email protected] tmp]# tar �Cxzvf mysql-c

按一下Tab键自动完成:

[[email protected] tmp]# tar �Cxzvf 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)

 MySQL-cluster集群架构图文详解

 

节点配置情况:

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

 MySQL-cluster集群架构图文详解

 

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

nameserver 202.101.172.35

search localdomain

(3)重启网络服务

[[email protected] ~]# service network restart

 

二、软件安装:

(一)管理节点MGM

配置管理节点

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

[[email protected] ~]# mkdir /var/lib/mysql-cluster

[[email protected] ~]# cd /var/lib/mysql-cluster

[[email protected] 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

 

 MySQL-cluster集群架构图文详解

 

安装管理节点,不需要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 目录下。

[[email protected] ~]# cd /var/tmp

[[email protected] tmp]# tar �Cxzvf mysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz

[[email protected] tmp]# cd mysql-cluster-gpl-7.1.13-linux-i686-glibc23

[[email protected] tmp]# cp bin/ndb_mgm* /usr/local/bin

MySQL-cluster集群架构图文详解

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

[[email protected] tmp]# cd /usr/local/bin

[[email protected] bin]# chmod x ndb_mgm*
3、在/usr/local下创建mysql文件夹。

[[email protected] ~]# cd /usr/local

[[email protected] local]# mkdir mysql

 

(二)、数据节点NDBDSQL节点

配置数据节点NDBD和SQL节点

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

 MySQL-cluster集群架构图文详解

[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

 MySQL-cluster集群架构图文详解

 

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

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

[[email protected] ~]# groupadd mysql

[[email protected] ~]# useradd �Cg mysql mysql

 MySQL-cluster集群架构图文详解

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

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

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

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

[[email protected] ~]# cd /var/tmp

[[email protected] tmp]# tar �CC /usr/local �Cxzvf mysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz

 MySQL-cluster集群架构图文详解

 

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

[[email protected] tmp]# cd /usr/local

[[email protected] local]# mv mysql-cluster-gpl-7.1.13-linux-i686-glibc23/ mysql/

[[email protected] local]# cd mysql

 MySQL-cluster集群架构图文详解

[[email protected] mysql]# mkdir sock

[[email protected] mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql

 MySQL-cluster集群架构图文详解

 

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

[[email protected] mysql]# chown -R root .

[[email protected] mysql]# chown -R mysql.mysql /usr/local/mysql/data

[[email protected] mysql]# chown -R mysql.mysql /usr/local/mysql/sock

[[email protected] mysql]# chgrp -R mysql .

[[email protected] mysql]# ls -l

MySQL-cluster集群架构图文详解

 

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

[[email protected] mysql]# cp support-files/mysql.server /etc/rc.d/init.d/

[[email protected] mysql]# chmod x /etc/rc.d/init.d/mysql.server

[[email protected] mysql]# chkconfig --add mysql.server

 MySQL-cluster集群架构图文详解

 

三、Cluster环境启动

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

1[MGM]

[[email protected] ~]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini

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

[[email protected] ~]# ndb_mgm

 MySQL-cluster集群架构图文详解

 

2[NDBD]

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

[[email protected] ~]# /usr/local/mysql/bin/ndbd --initial

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

[[email protected] ~]# /usr/local/mysql/bin/ndbd

 MySQL-cluster集群架构图文详解

 

3[SQLD]

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

 MySQL-cluster集群架构图文详解 

 

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

[[email protected] mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql

 

再次启动

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

 

 MySQL-cluster集群架构图文详解

 

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

 MySQL-cluster集群架构图文详解

 

四、测试

1、常规测试:

在节点4上面:

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

mysql>use test

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

 MySQL-cluster集群架构图文详解

 

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

mysql>alter table student engine=ndb;

 MySQL-cluster集群架构图文详解

插入一条数据:

mysql>insert into teacher values(133);

然后在节点5上:

mysql>select * from teacher;

 MySQL-cluster集群架构图文详解

 

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

 

2、模拟NDB节点Crash

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

查看进程

[[email protected] ~]# ps -ef

 MySQL-cluster集群架构图文详解

MySQL-cluster集群架构图文详解

 

[[email protected] ~]# kill 3344

[[email protected] ~]# ps -ef

 MySQL-cluster集群架构图文详解

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

 MySQL-cluster集群架构图文详解

 

节点4上面:

 MySQL-cluster集群架构图文详解

在节点5上面:

 MySQL-cluster集群架构图文详解

 MySQL-cluster集群架构图文详解

再回到节点4上面:

 MySQL-cluster集群架构图文详解

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

 

3、模拟SQL节点Crash

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

 MySQL-cluster集群架构图文详解

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

MySQL配置参数优化方法

mysql的一些运行效率等优化设置,建议拥有服务器的朋友,可以测试。如果使用的是MySQL 5.0.x可以直接将以下内容保存替换MySQL中的my.ini,记得要修改basedir和datadir两个栏目的路径。[client]port=3306[mysql]

MySQL教程

作者:管理员




现在致电4006-2991-90 OR 查看更多联系方式 →

Go To Top 回顶部