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

mysql 5.0 集群负载均衡 — 经过测试

阅读更多

来自 http://jlcon.blog.163.com/blog/static/8047119200851411057889/

 

一、介绍
========
测试环境:
Server1:ndbd 192.168.0.11
Server2:ndbd 192.168.0.12
Server3:mysqld --ndb-cluster 192.168.0.13 (ndbd_mgm ndbd_mgmd也在本机)

操作系统均为
RH ES3
kernel-2.4.21-9.EL
glibc-2.3.2-95.6

所需软件包:
mysql-max-5.0.22-linux-i686-icc-glibc23.tar.gz
下载地址:http://dev.mysql.com/downloads/mysql/5.0.html
下载时注意系统环境和软件包版本,MySQL是max版的。

首先,明确几个概念(参照下图):
ndbd: 数据库节点。
mysqld --ndb-cluster: MySQL服务器节点,程序直接访问的是这台机器的IP。默认端口仍是3306。
ndbd_mgm ndbd_mgmd: 管理节点。管理/查看各库节点和服务器节点的状态。

screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" alt="" src="http://hiphotos.baidu.com/lihangel/pic/item/b2c1c31f5023f0f3e0fe0b24.jpg" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0>



二、在Server1、Server2、Server3上安装MySQL
=================================
1.安装:
# mv mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz /usr/local/
# cd /usr/local/
# tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
# ln -s mysql-max-4.1.9-pc-linux-gnu-i686 mysql
# groupadd mysql
# useradd -g mysql mysql
# cd mysql
# scripts/mysql_install_db --user=mysql
# chown -R mysql:mysql .

2.编辑配置文件:
# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
# vi /etc/my.cnf 在文件尾加入

# my.cnf
# example additions to my.cnf for MySQL Cluster
# (valid in MySQL 5.0)

# enable ndbcluster storage engine, and provide connectstring for
# management Server host (default port is 1186)
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.13

# provide connectstring for management Server host (default port: 1186)
[ndbd]
connect-string=192.168.0.13

# provide connectstring for management Server host (default port: 1186)
[ndb_mgm]
connect-string=192.168.0.13

# provide location of cluster configuration file
[ndb_mgmd]
config-file=/var/lib/mysql-cluster
保存&退出

3.在Server1、Server2上创建日志文件夹,默认
# mkdir /var/lib/mysql-cluster

4.在Server3上创建ndb_mgmd启动配置文件:
# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster
# vi config.ini
内容如下:
# file "config.ini" - 2 data nodes and 2 SQL nodes
# This file is placed in the startup directory of ndb_mgmd (the
# management server)
# The first MySQL Server can be started from any host. The second
# can be started only on the host mysqld_5.mysql.com

[NDBD DEFAULT]
NoOfReplicas= 2
DataDir= /var/lib/mysql-cluster

[NDB_MGMD]
Hostname= 192.168.0.13
DataDir= /var/lib/mysql-cluster

[NDBD]
HostName= 192.168.0.11

[NDBD]
HostName= 192.168.0.12

[MYSQLD]
[MYSQLD]
[MYSQLD]
保存&退出

[MYSQLD]
[MYSQLD]
[MYSQLD]
表示允许有三台MySQL服务器从任何IP访问数据库结点。

各参数功能,请参考http://dev.mysql.com/doc/refman/ ... config-example.html




三、启动服务
============
Server3 /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
Server1 /usr/local/mysql/bin/ndbd --initial #只在第一次启动ndbd时使用--initial参数
Server2 /usr/local/mysql/bin/ndbd --initial
Server3 /usr/local/mysql/support-files/mysql.Server start



四、检查工作状态
================
回到管理节点服务器Server3上,并启动管理终端:

# /usr/bin/ndb_mgm
键入show命令查看当前工作状态:(下面是一个状态输出示例)

ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2 (not connected, accepting connect from 192.168.0.11)
id=3    @192.168.0.12  (Version: 5.0.22, Nodegroup: 0, Master)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @192.168.0.13  (Version: 5.0.22)

[mysqld(API)]   3 node(s)
id=4    @192.168.0.13  (Version: 5.0.22)
id=5 (not connected, accepting connect from any host)
id=6 (not connected, accepting connect from any host)

mysqld(API)即mysqld --ndb-cluster,MySQL服务器节点。当前只有Server3 MySQL启动。

如果上面没有问题,现在开始测试MySQL:
注意,这篇文档对于MySQL并没有设置root密码,推荐你自己设置Server1、Server2、Server3的MySQL root密码。

在Server3中:
# /usr/local/mysql/bin/mysql
> use test;
> CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
> INSERT INTO ctest () VALUES (1);
> SELECT * FROM ctest;

应该可以看到1 row returned信息(返回数值1)。

如果上述正常,则换到Server1、Server2上重复上面的测试,观察效果,数据库应该是同步刷新的。但首先要启动这两台机器的MySQL服务
# /usr/local/mysql/support-files/mysql.Server start
如果都没有问题,那么恭喜成功!

FAQ:
失败原因,可能是启动顺序不对。
查找所有ndb和sql相关进程,杀掉,重新按顺序来。
ps -aux |grep ndb
ps -aux |grep sql
kill -9 <PID> <PID> ...<PID>



五、破坏性测试
==============
将Server1或Server2的网线拔掉,观察另外一台集群服务器工作是否正常(可以使用SELECT查询测试)。测试完毕后,重新插入网线即可。

如果你接触不到物理服务器,也就是说不能拔掉网线,那也可以这样测试:
在Server1或Server2上:
ifconfig eth0 down  #如果只有一块网卡,默认是eth0

之后在Server3上使用SELECT查询测试。并且在管理节点服务器的管理终端中执行show命令会看到被破坏的那台服务器的状态。
测试完成后,只需要重新启动被破坏服务器的ndbd进程即可:
# ndbd
注意!前面说过了,此时是不用加--inital参数的!
至此,MySQL集群就配置完成,MySQL负载均衡功能完成!



如想实现Apache+PHP+MySQL集群负载均衡,只需Server3上安装Apache+PHP,并添加Server4,与其做LVS即可!

分享到:
评论

相关推荐

    mysql5+集群负载均衡

    本文将深入探讨MySQL 5.0集群及负载均衡配置,通过一个实际的测试案例,展示如何在三台服务器上构建一个稳定、高效的MySQL集群。 #### 二、概念澄清 在讨论具体配置之前,我们需要了解几个关键概念: - **ndbd**...

    mysql集群负载均衡.doc

    MySQL 集群负载均衡 MySQL 集群负载均衡是指将 MySQL 服务器节点构建成一个集群,以提高数据库的可用性、可靠性和性能。这种架构可以满足大型应用系统对数据库的高并发和高性能需求。 概念解释 * ndbd:数据库...

    Mysql 5.0 32位

    9. **复制与集群**:MySQL 5.0支持主从复制,可以将一个服务器的数据实时同步到其他服务器,用于负载均衡和高可用性。虽然5.0版的集群功能相对有限,但仍然可以在一定程度上实现数据冗余和故障转移。 10. **社区...

    mysql5.0双机集群配置

    MySQL 5.0 双机集群配置是一种高可用性和高扩展性的数据库解决方案,它通过将数据分散在多个服务器上,实现了负载均衡和故障转移。在本文中,我们将深入探讨如何配置这种集群环境。 首先,我们要了解集群中的主要...

    apache tomcat mysql多服务器集群负载均衡

    【Apache Tomcat MySQL 多服务器集群负载均衡】 在IT领域,构建高可用性和高可扩展性的系统是关键,特别是对于大型企业或高流量网站。Apache Tomcat MySQL多服务器集群负载均衡解决方案旨在通过分布式架构和负载...

    mysql5.0中英文对照手册

    13. **复制与集群**:MySQL的主从复制使得数据冗余和故障恢复成为可能,而集群技术如InnoDB Cluster提供高可用性和负载均衡。 14. **错误与警告**:手册会列出常见错误代码和警告,帮助用户快速定位和解决问题。 ...

    MYSQL5.0 学习文章

    10. **复制与集群**:MySQL 5.0支持主从复制,用于数据冗余和故障转移,以及MySQL集群,用于高可用性和负载均衡。 11. **存储引擎**:MySQL 5.0引入了InnoDB作为默认存储引擎,支持事务处理和行级锁定。MyISAM是另...

    mysql参考5.0.rar

    - **复制和集群**:讲解如何设置MySQL的主从复制,实现数据冗余和负载均衡,以及集群配置。 - **性能监控和调优**:提供工具和方法来监控数据库性能,并给出优化建议。 - **错误处理和日志**:解释如何查看和解读...

    mysql实现集群

    - **负载均衡**:可以将读取请求分散到多个从数据库,减轻主数据库的压力。 - **数据冗余**:通过数据复制,确保数据的安全性,避免因单一故障点导致的数据丢失。 #### 三、环境搭建步骤 根据提供的部分内容,我们...

    mysql-5.0.18-win32

    - **复制与集群**:MySQL 5.0支持主从复制,用于实现数据备份和负载均衡。同时,MySQL Cluster提供分布式内存集群解决方案,增强可用性和可扩展性。 - **编程接口**:MySQL提供了多种编程语言的API,如PHP、Python、...

    Mairadb cluster percona cluster mysql for galera集群部署手册

    - **软件环境**: 操作系统为 **Red Hat Enterprise Linux Server 6.4**,集群版本为 **MariaDB Galera 10.0.17**,并采用了 **Haproxy 1.4.25** 作为反向代理和负载均衡器。 - **网络配置**: 集群包括四个 IP 地址,...

    mysql数据库管理

    - **MySQL集群**:支持高可用性和负载均衡的分布式数据库解决方案。 #### 三、MySQL认证计划 MySQL提供多级别的认证计划,旨在帮助用户提升技能并获得专业认可: - **MySQL助理认证(CMA)**:入门级别的认证,...

    HAP_SQLyog1

    高可用性通常涉及到数据备份、故障转移、负载均衡等技术,确保即使在硬件或软件故障时,数据库服务也能持续运行。 【标签】"HAP_SQLyog1" 标签再次强调了这个版本的特殊性,可能具有针对高可用性场景优化的功能或...

    Mysql培训课件

    - **集群架构**(Cluster):适用于大规模应用,通过分布式数据库集群提供高可用性和负载均衡能力。 #### 四、MySQL的版本介绍 - **MySQL Community Server**:免费版本,适合个人学习和小型项目使用。 - **MySQL ...

    mysql 5.1 官方中文文档

    MySQL 5.1支持主从复制,用于构建高可用和负载均衡的环境。集群功能则允许多个服务器共享同一份数据,提高系统的容错性和扩展性。 八、日志与监控 MySQL的日志系统包括错误日志、查询日志、慢查询日志等,有助于...

    中科信軟Mysql培训课件

    - 复制架构(Replication):适合中小规模应用,通过复制机制可以实现数据的备份和负载均衡。 - 集群架构(Cluster):适合大规模应用,通过多个节点的协作可以提供高可用性和高并发处理能力。 MySQL有不同版本,...

    mysql chm 帮助文档 中文

    9. **复制与集群**:MySQL支持主从复制,实现数据冗余和故障恢复,以及MySQL集群,提供高可用性和负载均衡。 10. **安全与权限**:用户账户管理、权限分配、访问控制等,确保数据库系统的安全性。 **学习与使用** ...

    mysql英文手册包括函数

    此外,还有如MySQL Cluster这样的分布式解决方案,提供高可用性和负载均衡。 9. 性能优化:手册会涉及SQL查询优化、配置参数调整、索引策略等方面,帮助用户提升数据库性能。 10. 其他特性:MySQL还支持存储过程、...

Global site tag (gtag.js) - Google Analytics