Galera_Cluster_for_MySQL集群搭建

Galera_Cluster_for_MySQL集群搭建
Galera_Cluster_for_MySQL集群搭建

Galera Cluster for MySQL集群搭建

要架设Galera Cluster Server,有两种套件选择,一个

是Percona XtraDB Cluster另一个是MariaDB Galera Cluster,这次介绍后者的安装。

Galera Cluster 介绍

为什么要选择Galera Cluster Server,它有什么优点及功能呢?MySQL/Galera 是一套可以同步多台MySQL/InnoDB 机器的丛集系统,底下可以列出功能。

同步复制资料

可读取和写入丛集系统内任一节点

自动侦测节点错误,如果有节点当机,则丛集系统自动移除该节

可任意扩充节点

采用row level 方式来平行复制资料

从上面功能看来,我们可以平行任意扩充节点,动态增加服务器到丛集系统,要做到上面功能,就是利用Galera library来做到同步资料处

理,同步的详细细节,可以参考Galera library连结。这边就不再多描

述了。

Galera Cluster的部署

安装Galera Cluster Server

本篇介绍的MySQL Server是使用MariaDB套件,而不是安装原始

的MySQL。CentOS和Ubuntu安装方式雷同,前者是用yum后者则是aptitude,在安装前请先下载对应的repository配置文件

[https://https://www.360docs.net/doc/6d7312111.html,/mariadb/repositories/#mirror=qiming] CentOS

$ yum -y update; yum -y upgrade

$ yum –y install MariaDB-Galera-server MariaDB-client

galera

Ubuntu

$ aptitude -y update

$ aptitude -y install mariadb-galera-server-5.5 galera

或者apt-get:

$ apt-get -y update

$ apt-get -y install mariadb-galera-server-5.5 galera

启动MySQL

$/etc/init.d/mysql start

设置Galera Cluster Server

先讲一下环境,目前总共两台Galera Server,IP 分别是:

Node_1: 192.168.1.100

Node_2: 192.168.1.101

建立Node_1, Node_2 MySQL User,用来认证使用,先进入

MySQL Console.

$ mysql -u root -p

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connectionidis 154

Server version: 10.0.1-MariaDB-mariadb1~precise-log https://www.360docs.net/doc/6d7312111.html, binary distribution

Copyright (c) 2000, 2012, Oracle, Monty Program Ab and others.

Type'help;'or'\h'forhelp. Type'\c'toclearthe current input statement.

MariaDB [(none)]>

建立cluster 使用者,密码为1234,针对% 跟localhost 同时建

立。

MariaDB [(none)]> GRANT USAGE ON *.* to cluster@'%'IDENTIFIED BY'1234';

MariaDB [(none)]> GRANT ALL PRIVILEGES on *.* to cluster@'%';

MariaDB [(none)]> GRANT USAGE ON *.* to cluster@'localhost'IDENTIFIED

BY'1234';

MariaDB [(none)]> GRANT ALL PRIVILEGES on *.* to cluster@'localhost';

在192.168.1.100建立Galera配置文

件/etc/mysq/conf.d/https://www.360docs.net/doc/6d7312111.html,f

[MYSQLD]

wsrep_provider=/usr/lib64/galera/libgalera_smm.so wsrep_cluster_address="gcomm://"

wsrep_sst_auth=cluster:1234

重新启动mysqld 会看到多listen 4567 port:

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

1118/mysqld

tcp 0 0 0.0.0.0:4567 0.0.0.0:* LISTEN

1118/mysqld

在192.168.1.101建立Galera配置文

件/etc/mysq/conf.d/https://www.360docs.net/doc/6d7312111.html,f,并且将cluster address设置为

192.168.1.100

[MYSQLD] wsrep_provider=/usr/lib64/galera/libgalera_smm.so wsrep_cluster_address="gcomm://192.168.1.100:4567"

wsrep_sst_auth=cluster:1234

设置完成后,重新启动mysql

$/etc/init.d/mysqlrestart

要怎么验证设置成功呢?可以透过mysql console 来确认

$ mysql -e"SHOW STATUS LIKE 'wsrep%';"

可以看到结果如下

+----------------------------+---------------------------------------------

-----------------+

| wsrep_local_state_uuid | b4e876e0-8c1e-11e2-0800-8da732edfe2a |

| wsrep_protocol_version | 4 |

| wsrep_last_committed | 516 |

| wsrep_replicated | 0 |

| wsrep_replicated_bytes | 0 |

| wsrep_received | 3 |

| wsrep_received_bytes | 282 |

| wsrep_local_commits | 0 |

| wsrep_local_cert_failures | 0 |

| wsrep_local_bf_aborts | 0 |

| wsrep_local_replays | 0 |

| wsrep_local_send_queue | 0 |

| wsrep_local_send_queue_avg | 0.000000 |

| wsrep_local_recv_queue | 0 |

| wsrep_local_recv_queue_avg | 0.000000 |

| wsrep_flow_control_paused | 0.000000 |

| wsrep_flow_control_sent | 0

|

| wsrep_flow_control_recv | 0 |

| wsrep_cert_deps_distance | 0.000000 |

| wsrep_apply_oooe | 0.000000 |

| wsrep_apply_oool | 0.000000 |

| wsrep_apply_window | 0.000000 |

| wsrep_commit_oooe | 0.000000 |

| wsrep_commit_oool | 0.000000 |

| wsrep_commit_window | 0.000000 |

| wsrep_local_state | 4 |

| wsrep_local_state_comment | Synced |

| wsrep_cert_index_size | 0 |

| wsrep_causal_reads | 0 |

| wsrep_incoming_addresses |

xxx.xxx.xxx.xxx:3306,xxx.xxx.xx.xxx:3306,xxx.xxx.xxx.xx:3306 |

| wsrep_cluster_conf_id | 45 |

| wsrep_cluster_size | 3 |

| wsrep_cluster_state_uuid | b4e876e0-8c1e-11e2-0800-8da732edfe2a |

| wsrep_cluster_status | Primary |

| wsrep_connected | ON |

| wsrep_local_index | 0 |

| wsrep_provider_name | Galera |

| wsrep_provider_vendor | Codership Oy |

| wsrep_provider_version | 23.2.4(r147) |

| wsrep_ready | ON |

+----------------------------+---------------------------------------------

-----------------+

看到上述结果,有一个非常重要的数值,那就是wsrep_ready,

正确值是ON,另外看看wsrep_cluster_size是否跟您设置Node的

数量相同,这两个如果都正确,那就表示设置成功了,由于上面

192.168.1.100 是主Cluster Server,现在我们必须互相设置双方

Address 也就是设置如下:

node 01: gcomm://192.168.1.101

node 02: gcomm://192.168.1.100

设置如上述的好处就是,当Node 01 关机时,资料还是在Node 2

继续运作,等到Node 01 恢复上线后,资料又会从Node 02 同步复制

过来。

增加新Node

我们可以任意新增多台Node 到Cluster 丛集系统里,设置过程非

常简易

1. 安裝 MariaDB Server

2. 安裝 Galera Library

3. 设置

wsrep_cluster_address="gcomm://192.168.1.100:4567"

设置完成,就可以看到资料库已经同步复制资料到新Node 上面。

如果遇到任何一台Node突然关机,不用紧张,系统会保持目前的资

料,等到机器上线时,又会从

gcomm://another_node_ipaddress同步后续的资料。

动态设置gcomm://

如果新增一台新的Node,我们就必须改动其它Node 的gcomm://

设置,并且重新启动mysqld 服务,这样会有些微时间影响,我们可以

透过直接修改GLOBAL wsrep_cluster_address 的值

$ mysql -e"SHOW VARIABLES LIKE 'wsrep_cluster_address';"

+-----------------------+-------------------------------

------------------+

| Variable_name | Value |

+-----------------------+-------------------------------

------------------+

| wsrep_cluster_address |

gcomm://xxx.xxx.xxx.xx:4567,xxx.xxx.xx.xxx:4567 | +-----------------------+-------------------------------

------------------+

MariaDB [(none)]> SET GLOBAL

wsrep_cluster_address='gcomm://192.168.1.100:4567';

Query OK, 0 ROWS affected (3.51 sec)

MariaDB [(none)]> SHOW VARIABLES

LIKE'wsrep_cluster_address';

+-----------------------+---------------------------+

| Variable_name | VALUE |

+-----------------------+---------------------------+

| wsrep_cluster_address | gcomm://192.168.1.100:4567|

+-----------------------+---------------------------+

最后需要注意的地方是,由于我们每一台机器都互相设置,如果要

关闭全部Node机器,请务必将第一台重新设置gcomm://为空值,让

后续重新启动的机器可以先连上此机器进行同步,

这次把MySQL Replication 安装设置完成,也就是完成架构图的最下

面部份

可能出现的问题

1. 问题1:无法启动、停止或查询数据库

# service mysql start

Starting MySQL database server: mysqld.

Checking for corrupt, not cleanly closed and upgrade needing tables..

ERROR 1045 (28000): Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)

解决办法:

$ cat /etc/mysql/https://www.360docs.net/doc/6d7312111.html,f

# Automatically generated for Debian scripts. DO NOT TOUCH!

[client]

host = localhost

user = debian-sys-maint

password = 9oFlmkyBeCHz7Pcm

socket = /var/run/mysqld/mysqld.sock

[mysql_upgrade]

host = localhost

user = debian-sys-maint

password = 9oFlmkyBeCHz7Pcm

socket = /var/run/mysqld/mysqld.sock

basedir = /usr

得到password(假定是9oFlmkyBeCHz7Pcm),然后在MySQL Qery Browser里执行:$ mysql

Welcome to the MariaDB monitor. Commands end with ; or \g.

Your MariaDB connection id is 32

Server version: 5.5.34-MariaDB-1~precise-wsrep-log https://www.360docs.net/doc/6d7312111.html, binary distribution, wsrep_23.7.6

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '9oFlmkyBeCHz7Pcm' WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec)

2. 问题2:无法远程访问数据库

假定用户为keystone,密码123123。赋予权限:

MariaDB [(none)]> GRANT USAGE ON *.* to keystone@'%'IDENTIFIED BY'123123'; MariaDB [(none)]> GRANT ALL PRIVILEGES on *.* to cluster@'%';

任然无法访问该数据库。

解决办法:

修改/etc/mysql/https://www.360docs.net/doc/6d7312111.html,f

root@cn13447:~# vim /etc/mysql/https://www.360docs.net/doc/6d7312111.html,f

# MariaDB database server configuration file.

#

# You can copy this file to one of:

# - "/etc/mysql/https://www.360docs.net/doc/6d7312111.html,f" to set global options,

# - "~/https://www.360docs.net/doc/6d7312111.html,f" to set user-specific options.

#

# One can use all long options that the program supports.

# Run program with --help to get a list of available options and with

# --print-defaults to see which it would actually understand and use.

#

# For explanations see

# https://www.360docs.net/doc/6d7312111.html,/doc/mysql/en/server-system-variables.html

# This will be passed to all mysql clients

# It has been reported that passwords should be enclosed with ticks/quotes

# escpecially if they contain "#" chars...

# Remember to edit /etc/mysql/https://www.360docs.net/doc/6d7312111.html,f when changing the socket location.

[client]

port = 3306

socket = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs

# The following values assume you have at least 32M ram # This was formally known as [safe_mysqld]. Both versions are currently parsed.

[mysqld_safe]

socket = /var/run/mysqld/mysqld.sock

nice = 0

[mysqld]

#

# * Basic Settings

#

user = mysql

pid-file = /var/run/mysqld/mysqld.pid

socket = /var/run/mysqld/mysqld.sock

port = 3306

basedir = /usr

datadir = /var/lib/mysql

tmpdir = /tmp

lc_messages_dir = /usr/share/mysql

lc_messages = en_US

skip-external-locking

#

# Instead of skip-networking the default is now to listen only on

# localhost which is more compatible and is not less secure.

# bind-address = 127.0.0.1

bind-address = 0.0.0.0

重启数据库即可。

MySQL Cluster单机搭建集群环境

运行环境: centos6.1 Mysql版本: MySQL-cluster-gpl-7.2.6-linux2.6-x86_6 下载地 址:https://www.360docs.net/doc/6d7312111.html,/Downloads/MySQL-Cluster-7.2/mysql-cluster-gpl-7.2.6-linux2. 6-x86_64.tar.gz 对于这第一个MySQL数据库的集群,它由1个单一的MySQL服务引擎(mysqlds)、两个数据节点(ndbd)和一个单一的管理节点(ndb_mgmd)共同组成,所有的节点都运行在同一台主机上。 为配置文件和数据文件创建必要的存储文件夹,分别要建立如下几个文件夹: ① /home/mysql/my_cluster ② /home/mysql/my_cluster/ndb_data ③ /home/mysql/my_cluster/mysqld_data ④ /home/mysql/my_cluster/mysqld_data/mysql ⑤ /home/mysql/my_cluster/mysqld_data/ndbinfo ⑥ /home/mysql/my_cluster/conf 具体安装步骤: 1. 添用加户与组mysql [plain]view plaincopy 1.shell> groupadd mysql 2.shell> useradd -r -d /home/mysql -g mysql mysql [plain]view plain copy 1.shell> groupadd mysql 2.shell> useradd -r -d /home/mysql -g mysql mysql 2. 切换到mysql用户权限下 [plain]view plaincopy 1.shell> su - mysql [plain]view plain copy 1.shell> su - mysql

mysql集群部署文档

3台机器搭建集群环境 1. 集群配置如下 (3台机器) 管理节点:192.168.6.134 数据节点1:192.168.6.135 数据节点2:192.168.6.136 sql节点1:192.168.6.135 sql节点2:192.168.6.136 我使用3台机器进行配置,其中两台机器上的数据节点与sql节点在一起 2. 管理节点安装(192.168.6.134) 安装 1.shell> groupadd mysql 2.shell> useradd mysql -g mysql 3.shell> mv mysql-cluster-gpl-7.2.6-linux2.6-x86_6 4.tar.gz /usr/local/ 4.shell> cd /usr/local/ 5.shell> tar zxvf mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz /usr/local/ 6.shell> mv mysql-cluster-gpl- 7.2.6-linux2.6-x86_64 mysql 7.shell> chown -R mysql:mysql mysql 8.shell> cd mysql 9.shell> scripts/mysql_install_db --user=mysql 配置管理节点 1.shell> mkdir /var/lib/mysql-cluster 2.shell> cd /var/lib/mysql-cluster vi config.ini 添加以下内容 1.[ndbd default] 2.NoOfReplicas=2 3.DataMemory=80M 4.IndexMemory=18M 5.[ndb_mgmd]

mysql集群架构说明与配置实例-详细过程

Mysql集群架构文档 MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个Cluster 中运行多个MySQL服务器。在MyQL 5.0及以上的二进制版本中、以及与最新的Linux版本兼容的RPM中提供了该存储引擎。(注意,要想获得MySQL Cluster 的功能,必须安装mysql-server 和mysql-max RPM)。 目前能够运行MySQL Cluster 的操作系统有Linux、Mac OS X和Solaris(一些用户通报成功地在FreeBSD上运行了MySQL Cluster ,但MySQL AB公司尚未正式支持该特性)。 一、MySQL Cluster概述 MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。 MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。关于Cluster 中这些组件的关系,请参见下图:

所有的这些节点构成一个完成的MySQL集群体系。数据保存在“NDB存储服务器”的存储引擎中,表(结构)则保存在“MySQL服务器”中。应用程序通过“MySQL服务器”访问这些数据表,集群管理服务器通过管理工具(ndb_mgmd)来管理“N DB存储服务器”。 通过将MySQL Cluster 引入开放源码世界,MySQL为所有需要它的人员提供了具有高可用性、高性能和可缩放性的Cluster 数据管理。 二.安装环境 1.Linux操作系统版本:CentonOS 4.7 2.Mysql数据库版本:mysql-max-5.0.24-linux-i686.tar.gz 共三台机器安装了CentonOS4.7版本,首先保证把系统中没有一个包带有mysql的,有的话

MySQL_Cluster集群配置方案

在为某证券公司设计其OA架构时,初期客户是30万用户在线;然而在项目实施中,客户又提出50万用户同时在线的需求,而且都有写的需求;这样初始的设计master-master-slave,读写分离满足不了客户的要求,所以我们打算采用Mysql Cluster方案;MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个Cluster中运行多个MySQL服务器。在MyQL 5.0及以上的二进制版本中、以及与最新的Linux版本兼容的RPM中提供了该存储引擎。 一、MySQL Cluster概述 MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。 MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。 所有的这些节点构成一个完成的MySQL集群体系。数据保存在“NDB存储服务器”的存储引擎中,表(结构)则保存在“MySQL服务器”中。应用程序通过“MySQL服务器”访问这些数据表,集群管理服务器通过管理工具(ndb_mgmd)来管理“NDB存储服务器”。 通过将MySQL Cluster 引入开放源码世界,MySQL为所有需要它的人员提供了具有高可用性、高性能和可缩放性的 Cluster 数据管理。 二、MySQL Cluster 基本概念 “NDB” 是一种“内存中”的存储引擎,它具有可用性高和数据一致性好的特点。 MySQL Cluster 能够使用多种故障切换和负载平衡选项配置NDB存储引擎,但在 Cluster 级别上的存储引擎上做这个最简单。MySQL Cluster的NDB存储引擎包含完整的数据集,仅取决于 Cluster本身内的其他数据。 目前,MySQL Cluster的 Cluster部分可独立于MySQL服务器进行配置。在MySQL Cluster中, Cluster的每个部分被视为1个节点。 管理(MGM)节点:这类节点的作用是管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM节点是用命令 “ndb_mgmd”启动的。 数据节点:这类节点用于保存 Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就

MYSQL集群搭建指引文档

在PCSERVER上安装MARIADB。 一、先检查主机的环境 如果主机已经安装了MYSQL的早期版本,并且有MYSQL实例正在主机上运行,要先行清理早期的版本,具体步骤如下: 1、优雅地停掉当前正在运行的MYSQL服务。 2、卸载MYSQL早期版本及其组件 rpm -qa|grep -i mysql #查看已经安装的mysql相关包 rpm -ev package_name #package_name包名比如:mysql-server-5.0.51b-1.el5 二、用YUM安装MARIADB 具体步骤如下: 1、cd /etc/yum.repos.d 2、vi MariaDB.repo然后粘上官网上的内容(用CENTOS操作系统举例) Here is your custom MariaDB YUM repository entry for CentOS. Copy and paste it into a file under /etc/yum.repos.d/ (we suggest naming the file MariaDB.repo or something similar). See "Installing MariaDB with yum" for detailed information. 3、执行yum -y install MariaDB-client MariaDB-server MariaDB-devel 4、如果发现用YUM装时,代理服务器的网速下载太慢了导致超时然后报错退出,解决方案如下: A自己用个人电脑到官网下载列表中的RPM文件,

组建MySQL集群的几种方案,优劣与讨论

组建MySQL集群的几种方案 LVS+Keepalived+MySQL(有脑裂问题?但似乎很多人推荐这个) DRBD+Heartbeat+MySQL(有一台机器空余?Heartbeat切换时间较长?有脑裂问题?) MySQL Proxy(不够成熟与稳定?使用了Lua?是不是用了他做分表则可以不用更改客户端逻辑?) MySQL Cluster (社区版不支持INNODB引擎?商用案例不足?稳定性欠佳?或者还有其他问题?又或者听说现在发展不错?) MySQL + MHA (如果配上异步复制,似乎是不错的选择,又和问题?) MySQL + MMM (似乎反映有很多问题,未实践过,谁能给个说法) 淘宝的Cola(似乎现在停止开发了?)?变形虫Amoeba(事务支持?) 或者,其他方案? 回答1: 不管哪种方案都是有其场景限制或说规模限制,以及优缺点的。 1. 首先反对大家做读写分离,关于这方面的原因解释太多次数(增加技术复杂度、可能导致读到落后的数据等),只说一点:99.8%的业务场景没有必要做读写分离,只要做好数据库设计优化和配置合适正确的主机即可。 2.Keepalived+MySQL --确实有脑裂的问题,还无法做到准确判断mysqld是否HANG 的情况; 3.DRBD+Heartbeat+MySQL --同样有脑裂的问题,还无法做到准确判断mysqld是否HANG的情况,且DRDB是不需要的,增加反而会出问题; 3.MySQL Proxy -- 不错的项目,可惜官方半途夭折了,不建议用,无法高可用,是一个写分离; 4.MySQL Cluster -- 社区版本不支持NDB是错误的言论,商用案例确实不多,主要是跟其业务场景要求有关系、这几年发展有点乱不过现在已经上正规了、对网络要求高; 5.MySQL + MHA -- 可以解决脑裂的问题,需要的IP多,小集群是可以的,但是管理大的就麻烦,其次MySQL + MMM 的话且坑很多,有MHA就没必要采用MMM 建议: 1.若是双主复制的模式,不用做数据拆分,那么就可以选择MHA或Keepalive 或heartbeat

通过KeepAlived搭建MySQL双主模式的高可用集群系统

通过KeepAlived搭建MySQL双主模式的高可用集群系统 一、整体架构 企业级mysql集群具备高可用、可扩展、易管理、低成本的特点。下面将介绍企业环境中经常应用的一个解决方案,即MySQL的双主互备架构,主要设计思路是通过MySQL Replication技术将两台MySQL Server互相将对方作为自己的Master,自己又同时作为对方的Slave来进行复制。这样就实现了高可用构架中的数据同步功能,同时,将采用KeepAlived 来实现Mysql的自动failover。在这个构架中,虽然两台MySQL Server互为主从,但同一时刻只有一个MySQL Server可读写,另一个MySQL Server只能进行读操作,这样可保证数据的一致性。整个架构下图所示。 二、MySQL主主互备模式配置环境 第一步要做的工作是在这两天机器上都安装mysql,在做主从复制的时候mysql的版本尽量保持一致。即使不一样一定要以主服务的版本为最高的版本,从服务器的版本不能高于主服务器的版本。 1、Mysql的安装与配置 Mysql5.6版本之后,编译mysql方式变为cmake 安装cmake: #yum install cmake #cd mysql-5.6.17

#cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSCONFDIR=/etc \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \ -DMYSQL_TCP_PORT=3306 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci make && make install 如果没有就创建用户就创建如下用户: #groupadd mysql #useradd -g mysql mysql 修改/usr/local/mysql权限: #chown -R mysql:mysql /usr/local/mysql #cd /usr/local/mysql 进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表: #scripts/mysql_install_db--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data --user=mysql 2、启动MySQL 添加服务,拷贝服务脚本到init.d目录,并设置开机启动 #cd /usr/local/mysql #cp support-files/mysql.server /etc/init.d/mysql #chkconfig mysql on #service mysql start--启动MySQL

mysql集群

1、下载完成MariaDB-Galera-server galera MariaDB-client安装包 配置yum源 vim /etc/yum.repos.d/mariadb.repo [mariadb] name = MariaDB enable=1 priority=3 baseurl = https://www.360docs.net/doc/6d7312111.html,/5.5.33a/centos6-amd64/ gpgkey=https://https://www.360docs.net/doc/6d7312111.html,/RPM-GPG-KEY-MariaDB gpgcheck=1 安装yum -y install MariaDB-Galera-server galera MariaDB-client 2、编辑每台机器的hosts文件,添加如下内容 [root@client137 ~]# vim /etc/hosts 2.192.168.1.137 https://www.360docs.net/doc/6d7312111.html, client137 3.192.168.1.138 https://www.360docs.net/doc/6d7312111.html, client138 4.192.168.1.139 https://www.360docs.net/doc/6d7312111.html, client139 # 启动测试一下 6.[root@client137 ~]# /etc/init.d/mysql start 7.Starting MySQL.... SUCCESS! 8.[root@client137 ~]# chkconfig mysql on 设置MariaDB的root密码,并做安全加固 01.[root@client137 ~]# /usr/bin/mysql_secure_installation 02.[root@client137 ~]# /usr/bin/mysql_secure_installation 03.# 登陆数据库,授权用于集群同步的用户和密码 04.[root@client137 ~]# mysql -uroot -pkongzhong 05.mysql> GRANT USAGE ON *.* to sst@'%' IDENTIFIED BY 'sstpass123'; 06.mysql> GRANT ALL PRIVILEGES on *.* to sst@'%'; 07.mysql> FLUSH PRIVILEGES; 08.mysql> quit 09.# 创建并配置https://www.360docs.net/doc/6d7312111.html,f文件 10.[root@client137 ~]# cp /usr/share/mysql/https://www.360docs.net/doc/6d7312111.html,f /etc/https://www.360docs.net/doc/6d7312111.html,f.d/ 11.[root@client137 ~]# vim /etc/https://www.360docs.net/doc/6d7312111.html,f.d/https://www.360docs.net/doc/6d7312111.html,f 12.# 只需要修改如下4行:

Galera_Cluster_for_MySQL集群搭建

Galera Cluster for MySQL集群搭建 要架设Galera Cluster Server,有两种套件选择,一个 是Percona XtraDB Cluster另一个是MariaDB Galera Cluster,这次介绍后者的安装。 Galera Cluster 介绍 为什么要选择Galera Cluster Server,它有什么优点及功能呢?MySQL/Galera 是一套可以同步多台MySQL/InnoDB 机器的丛集系统,底下可以列出功能。 同步复制资料 可读取和写入丛集系统内任一节点 自动侦测节点错误,如果有节点当机,则丛集系统自动移除该节 点 可任意扩充节点 采用row level 方式来平行复制资料 从上面功能看来,我们可以平行任意扩充节点,动态增加服务器到丛集系统,要做到上面功能,就是利用Galera library来做到同步资料处

理,同步的详细细节,可以参考Galera library连结。这边就不再多描 述了。 Galera Cluster的部署 安装Galera Cluster Server 本篇介绍的MySQL Server是使用MariaDB套件,而不是安装原始 的MySQL。CentOS和Ubuntu安装方式雷同,前者是用yum后者则是aptitude,在安装前请先下载对应的repository配置文件 [https://https://www.360docs.net/doc/6d7312111.html,/mariadb/repositories/#mirror=qiming] CentOS $ yum -y update; yum -y upgrade $ yum –y install MariaDB-Galera-server MariaDB-client galera Ubuntu $ aptitude -y update $ aptitude -y install mariadb-galera-server-5.5 galera 或者apt-get: $ apt-get -y update $ apt-get -y install mariadb-galera-server-5.5 galera 启动MySQL $/etc/init.d/mysql start 设置Galera Cluster Server 先讲一下环境,目前总共两台Galera Server,IP 分别是:

MySQL双机热备+集群服务

MYSQL双机热备+LVS负载均衡集群实现 四台服务器均采用Asianux-3sp3 Linux操作系统!~ 1.MYSQL双机热备配置(主主模式) (1)配置mysql01服务器IP地址为172.16.1.101 (2)配置mysql02服务器IP地址为172.16.1.102 (3)在两台mysql服务器上安装MYSQL服务. (4)使用service mysqld start 启动mysql服务 (5)使用mysqladmin –u 账号password 密码来创建管理账号 (6)使用mysql –u 账号–p 回车输入密码登入MySQL

(7)在mysql>状态下使用grant all on *.* to 账号@对端mysql2服务器的ip地址identified by ‘密码’;创建双机热备所使用的mysql账号 (8)使用exit命令退出mysql (9)使用命令vi /etc/https://www.360docs.net/doc/6d7312111.html,f 编辑/etc/https://www.360docs.net/doc/6d7312111.html,f 在文件最上方添加如下信息: server-id=1 mysql的id 两台mysql服务器一个为1一个为2 log-bin=mysqlback 指定日志的名字 master-host=172.16.1.102 对端mysql的ip地址 master-user=hnspi 对端mysql设置的用于同步的账号,见(6) master-password 对端账号的密码 master-port=3306 指定数据库使用的端口号 保存退出 (10)使用命令service mysqld restart重启mysql服务 (11)使用mysql –u 管理账号–p 回车输入密码登入mysql (12)Mysql>状态下输入slave start ;启动slave(同步数据库)功能

mysql数据库集群解决方案

MYSQL数据库集群 解 决 方 案

目录 1、环境准备 (1) 2、具体的实验步骤 (4) 2.1、修改群集中各节点的网络参数 (4) 2.2、同步群集中各节点的时间 (6) 2.3、在各个节点上面产生密钥实现无密码的通讯 (7) 2.4、在各个节点上面配置好yum客户端 (8) 2.5、将下载好的rpm包上传到linux上的各个节点 (11) 2.6、在各节点上面安装所有的rpm包 (15) 2.7、在各节点上增加一个drbd设备(sdb1) (16) 2.8、配置drbd (19) 2.9、mysql的安装和配置 (26) 2.10、corosync+pacemaker的安装和配置 (32) 2.11、对各个节点进行相应的配置 (33) 2.12、配置群集的工作属性 (40) 2.13、定义集群服务及资源(node1) (41)

1、环境准备 实验环境:redhat enterprise 5.4 内核版本号:2.6.18-164.el5 1:Yum 服务器的构建 2:各个节点之间的时间的一致性(hwclock –s 或者搭建ntp服务器) 3:被定义为群集的资源都不可以在本地主机上进行启动,他们要被crm来进行管理。 4:由于dbrd,corosync,pacemaker等各群集的服务都需要通过主机名来进行解析,所以我们的主机的名字一定要能够被正确的解析。(hosts文件)

5:本实验要用到的软件包。 //*************由于drbd内核模块代码只在linux内核2.6.3.33以后的版本中才有,所以我们要同时安装内核模块和管理工具 *********// drbd83-8.3.8-1.el5.centos.i386.rpm drbd的管理包 kmod-drbd83-8.3.8-1.el5.centos.i686.rpm drbd的内核模块 //*************由于drbd内核模块代码只在linux内核2.6.3.33以后的版本中才有,所以我们要同时安装内核模块和管理工具 *********// cluster-glue-1.0.6-1.6.el5.i386.rpm 为了在群集中增加对更多节点的支持 cluster-glue-libs-1.0.6-1.6.el5.i386.rpm corosync-1.2.7-1.1.el5.i386.rpm corosync的主配置文件corosynclib-1.2.7-1.1.el5.i386.rpm corosync的库文件heartbeat-3.0.3-2.3.el5.i386.rpm 我们的heartbeat在这里是做四层的资源代理用的 heartbeat-libs-3.0.3-2.3.el5.i386.rpm heartbeat的库文件ldirectord-1.0.1-1.el5.i386.rpm 在高可用性群集中实验对后面realserver的探测 libesmtp-1.0.4-5.el5.i386.rpm openais-1.1.3-1.6.el5.i386.rpm做丰富pacemake的内容使用openaislib-1.1.3-1.6.el5.i386.rpm openais 的库文件

mysql集群总结

MySql Cluster集群分析以及配置: mysql cluster概念: mysql cluster是一个以独特的无共享提醒架构和标准算起来借口构建的高可用数据库产品。系统由一系列的同学进程,或是分布于各机器上的节点构成,哪怕在服务器出现故障或是网络故障时,都可以提供一个持续可用的系统。mysql cluster 使用专有的存储引擎来存取数据,这套引擎由一组数据节点构成,可以通过mysql cluster用标准sql来访问或是通过NDB API进行实时的访问。NDB API是mysql cluster使用的面向对象的应用程序接口,它实现了索引,扫描,事务,事件处理。NDB事务是遵循ACID准则的。集群正是通过这种方式提供了将多个操作组成一组,要么全部执行成功(提交),要么作为一个整体失败(回滚)。 MySQL cluster群集分为三种节点:管理节点,数据节点和SQL节点。 管理节点:主要用于管理各个节点,能够通过命令对某个节点进行重启、关闭、启动等操作。也能够监视全部节点的工作状态。 数据节点:主要是对数据的存储,不提供其他的服务。 SQL节点:主要是对外提供SQL功能,类似一台普通的 MySQL Server。 1、准备工作 a、系统环境为:Windows Xp系统 b、mysql版本为:MySQL Server 5.5 c、mysql cluster版本为: mysql-cluster-gpl-noinstall-7.1.10-win32.zip d、计算机3台

(注)截至到2011年3月23日最新版本,官方网站有下载 下载地址:https://www.360docs.net/doc/6d7312111.html,/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]

在CENTOS中搭建mysql 集群

在CENTOS中搭建mysql 集群 1,资源分配 管理节点:Management (MGMD) node 10.10.16.185 SQL节点1:MySQL server (SQL) node 10.10.16.181 SQL节点2:MySQL server (SQL) node 10.10.16.182 数据节点1:Data (NDBD) node "A" 10.10.16.181 数据节点2:Data (NDBD) node "B" 10.10.16.182 安装linux后,关闭防火墙,selinux iptables –F service iptables save setenforce 0 2,安装Management、Sql node、Data node 重复以下步骤: [root@www local]# tar -zxvf mysql-cluster-gpl-7.1.3-linux-i686-glibc23.tar.gz [root@www local]# mv mysql-cluster-gpl-7.1.3-linux-i686-glibc23 /usr/local/mysql [root@www local]# groupadd mysql [root@www local]# useradd -g mysql mysql [root@www local]# chown -R mysql.mysql mysql [root@www.local]# /usr/local/mysql/scripts/mysql_install_db --user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data/ [root@www mysql]# cp support-files/mysql.server /etc/rc.d/init.d/ [root@www mysql]# chmod +x /etc/rc.d/init.d/mysql.server [root@www mysql]# chkconfig --add mysql.server 3,配置Management节点: [root@www mysql]# mkdir /usr/local/mysql-cluster [root@www mysql]# vi /usr/localmysql-cluster/config.ini添加如下内容: [ndbd default] NoOfReplicas=2 [ndb_mgmd] hostname=10.10.16.182 datadir=/usr/local/mysql-cluster [ndbd] hostname=10.10.16.182 datadir=/usr/local/mysql/data [ndbd]

MySQL-集群-中文版

MySQL高可用解决方案  MySQL高可用解决方案一览  MySQL白皮书 2010年11月

目录  1.简介 (4) 2.MySQL提供的高可用解决方案 (4) MySQL复制 (4) 使用MySQL主从复制进行灾难恢复 (7) MySQL集群 (7) MySQL集群和复制 (11) 3.MySQL第三方合作伙伴提供的高可用解决方案 (12) Linux Heartbeat和MySQL复制 (12) Linux Heartbeat,块复制和MySQL (14) 结合MySQL复制的负载均衡 (16) 使用共享存储的MySQL 和集群代理 (17) 高可用/性能网络–Dolphin SCI互连适配器 (19) 操作系统集群解决方案 (20) 高可用中间件- Continuent m/Cluster (20) 高可用中间件- High-Availability RSF-1 (20) 实施高可用解决方案 (21) MySQL专业服务 (22) MySQL认证合作方和产品 (23) MySQL培训 (23) MySQL企业版 (24) 为什么是MySQL (24) 扩展性和灵活性 (24) 高性能 (24) 高可用 (25) 强大的事务支持 (25) Web和数据仓库能力 (25) 强大的数据保护 (25) 全面的应用开发 (26) 管理方便 (26)

开源自由和24*7支持 (26) 最低的总体拥有成本 (27) 总结 (27) 资源 (27)

1.简介 在现今商业世界里,信息及其访问的畅通性,构成的不仅仅是基础架构,通常也是一些公司的预算模型。因此,对于或大或小的商业应用,维持信息的可用性和可访问性变得越来越重要。一直以来,高可用性对于关键性的商业系统来说都是非常重要的。比如,应用系统,数据库,存储网络等。但是,关键性低一些的系统在低成本,及市面已有的高可用性方案上有更自己的优势。    对这些信息系统的需求不仅体现在确保重要数据的高可用性,也要确保能够有效的分享这些资源和现有计算机架构。一个高可用方案可以利用企业现有技术架构提供最大数据量及应用可用性。这些技术架构包含不同的操作系统,应用,硬件组成,并且可以覆盖多个地理位置。更常见的情况是,许多关键型应用和信息系统的后面,都会有一个数据库。在“数据库高可用指南”白皮书系列中,我们会介绍高可用架构和概念。文中同样也会介绍在选择高可用数据库方案时,需要考虑哪些因素,包含MySQL复制和MySQL集群。我们还会介绍MySQL专业服务和MySQL认证的企业级合作伙伴和产品。  2.MySQL提供的高可能解决方案  在选择一个高可用方案时,MySQL提供了众多的选择。包括MySQL复制,MySQL集群,免费和开源的解决方案,当然,还有来自我们认证合作伙伴的产品。在本节中,我们将关注来自MySQL的高可用解决方案。  MySQL复?§ MySQL本身支持单向,异步复制。MySQL复制以一台服务器为主机,其它一个或多个服务器为从机。恰恰与MySQL集群相反,集群是同步复制。    异步数据复制意味着数据从一个机器拷贝到另一个机器时,存在一定的延迟。通常,这种延迟是由网络带宽,可用资源,以及管理员预先设定的时间间隔所决定。但是,只要正确配置和调整,复制在很多应用中可以认为是即时的。同步复制意味着数据可以在同一时刻向一台或是多台机器提交,通常叫做”双步提交”。    标准MySQL复制,主服务器将更新写到二进制日志文件并且维护一个索引文件以保存日志的更新轨迹。二进制日志里保存的更新记录将会被发送到从机。当从机连接至主机,他会从日志里读取从最后一次成功更新的位置。然后会执行从那个时间点之后的所有更新, 完了就一直处于等待状态。

MySql数据库双机集群

MySql数据库双机集群 1、目的 为了实现MySQL两台主机之间的双机热备,并且在任意一台数据节点机器出现故障时,不需要人工干涉,整个集群仍然可以提供服务。 下面介绍下mysql的集群基本概念: MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个Cluster中运行多个MySQL 服务器。在MyQL 5.0及以上的二进制版本中、以及与最新的Linux版本兼容的RPM中提供了该存储引擎。 一、MySQL Cluster概述 MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。 MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。 所有的这些节点构成一个完成的MySQL集群体系。数据保存在“NDB存储服务器”的存储引擎中,表(结构)则保存在“MySQL服务器”中。应用程序通过“MySQL服务器”访问这些数据表,集群管理服务器通过管理工具(ndb_mgmd)来管理“NDB存储服务器”。 通过将MySQL Cluster 引入开放源码世界,MySQL为所有需要它的人员提供了具有高可用性、高性能和可缩放性的 Cluster 数据管理。 二、MySQL Cluster 基本概念 “NDB” 是一种“内存中”的存储引擎,它具有可用性高和数据一致性好的特点。 MySQL Cluster 能够使用多种故障切换和负载平衡选项配置NDB存储引擎,但在 Cluster 级别上的存储引擎上做这个最简单。MySQL Cluster的NDB存储引擎包含完整的数据集,仅取决于 Cluster本身内的其他数据。 目前,MySQL Cluster的 Cluster部分可独立于MySQL服务器进行配置。在MySQL Cluster中, Cluster的每个部分被视为1个节点。 管理(MGM)节点:这类节点的作用是管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM节点是用命令“ndb_mgmd”启动的。 数据节点:这类节点用于保存 Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。不过没有必要设置多个副本。数据节点是用命令“ndbd”启动的。 SQL节点:这是用来访问 Cluster数据的节点。对于MySQL Cluster,

MySQL集群7_4_7在Centos7部署

MySQL集群7_4_7在Centos7部署 一、简介 1.优缺点 优点: 1)99.999%的高可用性 2)快速的自动失效切换 3)灵活的分布式体系结构,没有单点故障 4)高吞吐量和低延迟 5)可扩展性强,支持在线扩容 缺点: 1)存在很多限制,比如:不支持外键,事务隔离只支持Read Committed 2)部署、管理、配置很复杂 3)占用磁盘空间大,内存大,网络环境要求高 4)备份和恢复不方便,备份可统一做,恢复需要到各个数据节点操作 5)重启的时候,数据节点将数据load到内存需要很长时间

2.硬件要求 1.管理节点 对硬件要求较低2.数据节点 大内存,多核CPU

3.SQL节点 多核CPU 二、环境及版本 操作系统:Centos 7 MySQL Cluster RPM版本:7.4.7 下载地址:https://www.360docs.net/doc/6d7312111.html,/downloads/cluster/ 三、安装和配置 1.卸载MySQL库 rpm -e postfix-2:2.10.1-6.el7.x86_64 rpm -e mariadb-libs-5.5.41-2.el7_0.x86_64 2.安装perl-Data-Dumper rpm -ivh perl-Data-Dumper-2.145-3.el7.x86_64.rpm 3.运行安装 1)创建文件目录 存储节点:mkdir /var/lib/mysql/data chmod -R 1777 /var/lib/mysql 管理节点:mkdir /var/lib/mysql-cluster (SQL节点:可不用) chmod -R 1777 /var/lib/mysql-cluster 2)执行安装 rpm -ivh MySQL-Cluster-server-gpl-7.4.7-1.el6.x86_64.rpm rpm -ivh MySQL-Cluster-client-gpl-7.4.7-1.el6.x86_64.rpm 4.配置文件 1)/var/lib/mysql-cluster/config.ini (仅管理节点需要)

mysql集群安装及配置

一.Mysql集群安装 一.Rpm包准备 从https://www.360docs.net/doc/6d7312111.html,/downloads下面找到cluster并下载相应的5个安装包。MySQL-Cluster-gpl-client-*.rpm MySQL-Cluster-gpl-management-*.rpm MySQL-Cluster-gpl-server-*.rpm MySQL-Cluster-gpl-storag-*.rpm MySQL-Cluster-gpl-tools-*.rpm 二.管理节点安装 一.安装管理包 Rpm –ivh MySQL-Cluster-gpl-management-*.rpm Rpm –ivh MySQL-Cluster-gpl-tools-*.rpm 二.编辑配置文件 Vi /etc/lib/mysql-cluster/config.ini 【我用的最简化版本】 [ndbd default] NoOfReplicas=2 DataMemory=80M IndexMemory=18M [tcp default] SendBufferMemory=2M ReceiveBufferMemory=2M [NDB_MGMD DEFAULT] PortNumber=1186 Datadir=/var/lib/mysql-cluster [ndb_mgmd] Hostname= 172.18.40.249 [ndbd]

Hostname=172.18.40.149 datadir=/var/lib/mysql/data [ndbd] HostName=172.18.40.242 datadir=/var/lib/mysql/data [mysqld] HostName=172.18.40.149 [mysqld] HostName=172.18.40.242 三.启动管理节点 Ndb_mgmd –f /var/lib/mysql-cluster/config.ini 三.数据节点安装 一.安装存储包 Rpm –ivh MySQL-Cluster-gpl-storag-*.rpm 二.编辑配置文件 Vi /etc/https://www.360docs.net/doc/6d7312111.html,f [mysqld] #配置连接管理主机Max_connections=100 Slow_query_log/var/mysql/slow_query.log Long_query_time=1 Datadir=/var/lib/mysql/data Ndbcluster Ndb-connectstring=172.18.40.249 [mysql_cluster] Ndb-connectstring=172.18.40.249

相关文档
最新文档