`
高级java工程师
  • 浏览: 409461 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql集群

阅读更多
当下网络上的mysql集群大都是介绍在Linux下的配置方案,对于在windows下的配置确是很少,少有的几篇文章也是经过筛检了的,很难跑起来。本人经过几天的研究终于将mysql在windows Xp环境下的集群配置完成,概念之类的我就不列举了,直接说步骤:
 
    1、准备工作
 
        a、系统环境为:Windows Xp系统
 
        b、mysql版本为:MySQL Server 5.5
 
        c、mysql cluster版本为:mysql-cluster-gpl-noinstall-7.1.10-win32.zip
 
        d、计算机3台
 



Node
 

IP Address
 



Management (MGMD) node
 

192.168.18.8
 



MySQL server (SQL) node “A”
 

192.168.18.11
 



MySQL server (SQL) node “B”
 

192.168.18.17
 



Data (NDBD) node "A"
 

192.168.18.11
 



Data (NDBD) node "B"
 

192.168.18.17
 

    (注)截至到2011年3月23日最新版本,官方网站有下载
 
     下载地址:http://www.mysql.com/downloads/cluster/
 
    2、安装软件
 
       a、解压mysql-cluster-gpl-noinstall-7.1.10-win32.zip包
 
       b、Management node的安装配置。
 
          Management node一定要安装在C盘下,并且是以下的目录(这是在运行
 
          此节点时报错,说找不到相对应的目录)。在IP为192.168.18.8的机子上
 
          生成c:/mysql/bin、C:/mysql/mysql-cluster(第一次启动后在这个文件
 
          夹会生成类似ndb_1_config.bin.1的文件,好像是为了以后启动加载的配
 
          置)和c:/mysql/bin/cluster-logs目录,在下载解压的文件目录mysql
 
          /bin中将ndb_mgmd.exe和ndb_mgm.exe复制到192.168.18.8的c:/mysql
 
          /bin目录下。在192.168.18.8的c:/mysql/bin下生成两个文件,my.ini和
 
          config.ini,my.ini的内容为:
 
         [mysql_cluster]
 
         # Options for management node process
 
         config-file=C:/mysql/bin/config.ini
 
         config.ini的内容:
 
         [NDBD DEFAULT]
 

         NoOfReplicas=2
 

         [MYSQLD DEFAULT]
 

         [NDB_MGMD DEFAULT]
 

         [TCP DEFAULT]
 

         # Managment Server
 

         [NDB_MGMD]
 

         HostName=192.168.18.8 #管理节点服务器的IP地址
 

         # Storage Engines  
 
         DataDir=C:/mysql/bin/cluster-logs
 

         [NDBD]
 

         HostName=192.168.18.11 #MySQL集群的IP地址
 

         DataDir= D:/Program Files/mysqlcluster/datanode/mysql
 
         /bin/cluster-data         

         #如果不存在就创建一个(可以自己任意指点地址)
 

         [NDBD]
 

         HostName=192.168.18.17 #MySQL集群的IP地址
 

         DataDir= D:/Program Files/mysqlcluster/datanode/mysql
 
         /bin/cluster-data        
 
         #如果不存在就创建一个(可以自己任意指点地址)
 

         [MYSQLD]
 

         HostName=192.168.18.11
 

         [MYSQLD]
 

         HostName=192.168.18.17 

      c、Data nodes的安装配置
 
         在IP为192.168.18.17 的机子上生成D:/Program Files/mysqlcluster
 
         /datanode/mysql/bin、D:/Program Files/mysqlcluster/datanode/mysql
 
         /cluster-data、D:/Program Files/mysqlcluster/datanode/mysql/bin
 
         /cluster-data.在下载的的解压文件夹/bin中将ndbd.exe复制到
 
         192.168.18.17 机子的D:/Program Files/mysqlcluster/datanode/mysql
 
         /bin目录下,并在D:/Program Files/mysqlcluster/datanode/mysql/bin
 
         目录下生成my.ini文件,文件的内容为:
 
         [mysql_cluster]
 
         # Options for data node process:
 
         ndb-connectstring=192.168.18.8  # location of management server
     

         同理在192.168.18.11机子上配置相同的配置,也可以直接复制到
 
         192.168.18.11机子上。
 
      d、SQL node的安装配置
 
         在IP为192.168.18.17的机子上生成D:/Program Files/mysqlcluster
 
         /sqlnode目录,将下载的解压文件夹直接整个复制到D:/Program 

         Files/mysqlcluster/sqlnode/mysql目录下,在D:/Program 

         Files/mysqlcluster/sqlnode/mysql下生成my.ini文件,文件内容为:
 
         [mysqld]
 
         # Options for mysqld process:
 
         ndbcluster   # run NDB storage engine
 
         ndb-connectstring=192.168.18.8
 
         # location of management server
          

         同理,将D:/Program Files/mysqlcluster/sqlnode整个文件夹复制到
 
         192.168.18.11机子的相同目录下。
 
    3、启动集群
 
         启动各个节点是有顺序的,先是Management node,然后是Data 

      nodes,最后是SQL nodes。
 
      a、启动Management node 
 

         在192.168.18.8机子下进入命令行,转到c:/mysql/bin目录下,输入:
 
         ndb_mgmd -f config.ini
 
      b、启动Data node
 
         在192.168.18.17机子下进入命令行,转到D:/Program 

         Files/mysqlcluster/datanode/mysql/bin目录下,输入:
 
         ndbd --connect-string="nodeid1;host=192.168.18.8:1186"
 
         同理启动192.168.18.11机子,nodeid1是根据管理节点的配置文件
 
         config.ini中的id决定的,如果id为2,则为nodeid2,配置文件中未指定
 
         id,则按顺序执行。
 
        (注)此时可通过在Management node中新开一命令行,转到
 
         c:/mysql/bin目录下输入命令:
 
         ndb_mgm
 
         启动ndb_mgm.exe,之后输入命令:
 
         ALL STATUS
 
         查看到Data node连接是否成功.之后启动正常之后才能继续启动
 
         SQLnode
 
      c、启动SQL node   

         在192.168.18.17机子下进入命令行,转到D:/Program 

         Files/mysqlcluster/sqlnode/mysql/bin目录下,输入:
 
         mysqld --console
 
         按相同方式启动192.168.18.11下的SQL node。
 
         (注):可通过在Management node节点的机器下,转到c:/mysql/bin目录 

         下输入命令:
 
         ndb_mgm
 
         启动ndb_mgm.exe,之后输入命令:
 
         SHOW
 
         即可查看到各个节点的连接情况。
 
         正确显示应该为:
 
         ndb_mgm> show
 

         Cluster Configuration
 

         ———————
 
         [ndb_mgmd(MGM)] 1 node(s)
 

         id=1    @192.168.18.8  (mysql-5.5 ndb-7.1.10)
 
         [ndbd(NDB)]     2 node(s)
 

         id=2    @192.168.18.17  (mysql-5.5 ndb-7.1.10, Nodegroup: 0, 
 
         Master)
 

         id=3    @192.168.18.11  (mysql-5.5 ndb-7.1.10, Nodegroup: 1)
 
         [mysqld(API)]   2 node(s)
 

         id=4    @192.168.18.17  (mysql-5.5 ndb-7.1.10)
 

         id=5    @192.168.18.11  (mysql-5.5 ndb-7.1.10)
 
     4、测试
 
        C:\>mysql -u root test
 

        mysql>create table city (nId mediumint unsigned not null 

        auto_increment primary key, sName varchar(20) not null)
 

        engine = ndbcluster default charset utf8;
 

        mysql>insert city values(1, ‘city-1′);
         

        mysql>insert city values(1, ‘city-2′);
 
        在另一台 SQL 节点上登录 mysql,从表 city 里得到记录:
 

        C:\>mysql -u root test
 

        mysql>select * from city;
 
        在群集系统正常工作的情况下,应当能取到先前插入的所有记录。
 
        另外的测试(单点故障测试):
 
        1,还可以人为停止某一个数据节点(Ctrl+C中断DOS命令ndbd.exe,停止该
 
        服务),看看所有的 SQL 节点是不是能正常工作。
 

        2,在某一个数据节点停止后,进行数据库操作。然后重新开启该数据节
 
        点,看看群集中的所有的 SQL 节点能不能得到完整的数据。
 
    5、关闭
 
       ndb_mgm -e shutdown
 
       或在 ndb_mgm 环境下执行 shutdown 命令。
 
       以上命令或关闭管理节点服务和所有的数据节点。随意、强行关闭群集系统
 
      (关机或关闭进程),会导致数据没有全部写回磁盘而导致的数据丢失。
 
    6、常见问题及扩展
 
       配置和管理 MySQL 群集系统并不是一件简单的事情。由于不合理的配置导致
 
       的系统问题非常常见,比如网络故障、内存限制等,会导致仲裁体统强制关
 
       闭数据节点。
 
       如果机器上原来已经安装过 MySQL Server,则一定要卸载干净原来的数据库
 
       系统。注意群集系统中的 mysql.exe 程序与非群集系统的管理 Client 是不
 
       同的。
 
       还可以与负载均衡系统结合,以提供更强的可用性和数据存取效率。
 
       可能由于未知的Bug或别的原因,导致群集系统出现一些意外故障。所以建议
 
       选取版本时,选择已经得到大多数人认可的版本,不一定选取最新的版本,
 
       最新的版本往往不太稳定。当然也不要选用太陈旧的功能有限制的版本。
 
    7、mysql的优势和劣势分析
 
       1、可扩展性
 

       mysql cluster在五个不同的级别提供可扩展性
 

       如果需要更多的存储或者是容量,你们可以在不影响服务的情况下动态地添
 
       加数据节点可以动态的添加应用节点来提升性能和并行处理的能力连接至应
 
       用节点的客户端可以动态的添加数据节点上额外的CPU,核,线程可通过使用
 
       多线程的NDB进程来得到充分利用数据库可以复制到其他的数据库以用于读操
 
       作或者是用于生成复杂报表
 

       2、性能
 

       mysql cluster在五个不同的级别提供可扩展性,在与一下特征相结合时,可
 
       得到极大的性能的提升:
 

       NDB API或是NDB/J
       
 
       主键查找
 

       与之分布应用设计
 

       用户自定义区分
 

       并行化
 

       批量事务
 

       高性能的网络接口(SCI)
 

       3、高可用性
 

       数据节点可以故障,但是可以自动重新同步,而不影响服务或者是强制应用
 
       节点重新连接。再者,可以添加多个管理节点和应用节点以提供最大限度的
 
       服务。亦可以在不同的地理未知上进行集群间的复制。
 

       4、mysql集群的应用程序通过一些修改后,可以比使用其他数据库更快捷
 

       mysql cluster劣势:
 
       1、mysql cluster,数据节点,管理服务器、客户端必须运行于支持集群的
 
       LINUX或者UNIX操作系统。MYSQL集群7.0开始在开发系统(而不是生产系统)
 
       中提供对windows平台的支持。
 

       2、集群中的所有机器必须要有相同的架构。
 

       3、数据的存储
 

       如:没有经过索引的数据可以存于磁盘,但是索引过的列必须存于内存中。
 
       数据库越大,就意味着你需要更多的内存和硬件。
 

       4、应用程序使用完整的JOIN或是全表扫描极有可能遭遇极差的性能。
 

       因为在集群中数据是分区并分布于多个数据节点的。使用主键查找方法的应
 
       用程序可以从集群的分布式数据中获取最大的效益。
 

       5、NDB存储引擎不支持外键
 

       6、NDB存储引擎不支持全文检索
 

       7、NDB存储引擎与其他存储引擎相比性能不会更好
分享到:
评论

相关推荐

    Spring + Ibatis 与mysql集群集成

    本教程将深入探讨如何将Spring、Ibatis框架与MySQL集群集成,以实现高效、可靠的数据库操作。 首先,让我们了解Spring和Ibatis。Spring是一个全面的Java应用开发框架,它提供了依赖注入、面向切面编程、事务管理等...

    centos7搭建mysql集群

    ### CentOS 7 搭建 MySQL 集群详解 #### 一、概述 随着业务规模的扩大,单一数据库服务器往往难以满足高并发、大数据量的需求。为了提高系统的可用性和性能,采用 MySQL 集群成为一种常见的解决方案。本文将详细...

    mysql集群的一种方案

    MySQL集群是一种分布式数据库解决方案,旨在提高数据的可用性、可扩展性和容错性。在本方案中,我们将探讨MySQL集群的构建、工作原理以及其在实际应用中的优势和挑战。 一、MySQL集群概述 MySQL集群(MySQL ...

    mysql集群环境搭建.docx

    MySQL 集群环境搭建 MySQL 集群环境搭建是指将多台服务器组合成一个高性能、可靠的数据库系统,以实现高可用性和高性能。该系统可以分担客户的访问压力,自动进行数据分区和负载均衡,实现线性数据库扩展。 1. ...

    Linux MySQL集群环境搭建

    "Linux MySQL集群环境搭建" 在Linux系统下,MySQL集群的搭建是一个复杂的过程,它需要oroughly了解MySQL集群的概念、架构和配置。在本文中,我们将详细介绍MySQL集群的概念、架构、环境配置、安装和配置MySQL集群...

    mysql集群化的三种武器-MNC,MGC与MIC

    MySQL集群化是一种确保数据库系统高可用性、高性能和可扩展性的技术。它允许一个数据库环境由多个服务器组成一个统一的集群,从而可以在发生故障时自动切换到健康的节点,提高数据处理能力和可靠性。在标题中提到的...

    mysql集群配置教程

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

    mysql集群方案对比

    MySQL集群是一种用于提高数据库服务可用性和性能的技术,它通过分散数据和处理负载来实现这一目标。在本篇文章中,我们将探讨8种不同的MySQL集群方案,分析它们的特点、优缺点以及适用场景。 1. **MySQL主从复制...

    galera cluster for mysql集群部署方案

    ### Galera Cluster for MySQL 集群部署方案详解 #### 一、Galera Cluster 概述 Galera Cluster 是一种用于 MySQL 的高可用性、高性能的解决方案,它通过多节点同步复制来提供高可用性和灾难恢复能力。Galera 的...

    MySQL集群评估手册.pdf

    MySQL集群是一种高性能、高可用性的数据库集群技术,它通过将多个MySQL数据库实例组成一个集群来提供数据的冗余和故障转移能力。在评估MySQL集群的实施之前,了解其架构、组件以及它们之间的交互是非常必要的。 ...

    centos7部署mysql集群1

    在本篇中,我们将深入探讨如何在CentOS7环境下部署MySQL集群,具体为1个管理节点加2个数据节点和2个SQL节点的配置。首先,我们从环境清理和准备工作开始,然后逐步进行软件安装、配置以及启动服务。 1. **环境清理...

    linux安装mysql集群

    在Linux环境中安装MySQL集群是一项复杂但重要的任务,它能够提供高可用性和数据冗余,确保数据库服务的稳定性和性能。以下是对安装过程的详细描述: 首先,你需要一个支持MySQL集群的Linux发行版。描述中没有明确...

    MYSQL 集群

    MYSQL 集群 MYSQL 集群是大型网站架构的设计方案的核心组件之一,旨在提高数据库的高可用性和可扩展性。在本文中,我们将详细介绍 MYSQL 集群的配置和实现过程。 在开始之前,我们需要了解 MYSQL 集群的基本概念。...

    mysql集群7.1.29配置文档linux

    ### MySQL集群7.1.29配置文档详解 #### 概述 MySQL集群技术是一种用于构建高可用性和高性能数据库解决方案的技术。它通过将多个MySQL服务器连接在一起形成一个集群,从而提高系统的整体性能和可靠性。本篇文章将...

    MySQL集群节点、节点组、数据副本、以及分区

    MySQL 集群节点、节点组、数据副本、以及分区 在 MySQL 集群中,节点是指存储着数据副本的 ndbd 进程,也就是一个指到节点组中节点的分区的拷贝。每个数据节点应该部署在独立的计算机上,以确保高可用性和避免单点...

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

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

    centOS-6.3安装Mysql集群

    ### CentOS 6.3 安装 MySQL 集群详细指南 #### 一、环境概述与准备工作 在本文档中,我们将详细介绍如何在 CentOS 6.3 系统上搭建 MySQL 集群。该集群易于搭建且基于内存运行,不需要共享存储,非常适合对性能有较...

Global site tag (gtag.js) - Google Analytics