Heim Datenbank MySQL-Tutorial 使用mysql-mmm实现mysql集群部署_MySQL

使用mysql-mmm实现mysql集群部署_MySQL

Jun 01, 2016 pm 01:02 PM
集群

背景:之前实现的mysql同步复制功能(见笔者之前文章http://blog.csdn.net/kingofworld/article/details/39210937)只是双机热备功能,还不能做到Mysql链接的自动切换。

本配置实现真正的mysql集群,使得在某台机子的mysql应用停止时,能让应用程序自动切换到另外一台机子的mysql连接,实现应用的高稳定性,并且使得扩展Mysql服务成为可能。

本配置使用mysql-mmm(master-master Replication Manager for MySQL)组件实现集群功能。

本次演示的配置使用三台机器,架构如下:

\

Master1 和Master2两台机器实现双机热备,其中一台机器的mysql服务停止或机器宕机,应用程序都会将数据库连接自动切换到另外一台机子。另外用一台机子实时备份master1的数据。

1、安装mysql-mmm服务

在三台机器都安装

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

rpm -ivh epel-release-6-8.noarch.rpm

yum -y install mysql-mmm*

完成后查看 rpm -qa|grep mysql-mmm

有以下组件表示安装成功

\

Rhel5或centos5,32位:http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

Rhel6或centos6,32位:http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm

Rhel6或centos6,64位:http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

1、添加mysql的用户

在三台机器都添加mysql用户,分别用于复制、

进入mysql服务mysql -u root -p

use mysql;

grant REPLICATION slave,REPLICATION CLIENT on *.* to 'repl'@'%' identified by 'password'; //建立复制用户

grant PROCESS,SUPER,REPLICATION CLIENT on *.* to 'mmm_agent'@'%' identified by 'password'; //建立agent用户

grant REPLICATION CLIENT on *.* to 'mmm_monitor'@'%' identified by 'password'; //建立用户

FLUSH PRIVILEGES;

2、配置同步复制

配置复制的策略如架构图所示。

配置方法在我上一篇文章有介绍过,这里不再重复,见笔者之前文章http://blog.csdn.net/kingofworld/article/details/39210937

3、修改hosts

分别修改三台机器的hosts文件

vi /etc/hosts

添加

200.200.168.24 M1

200.200.168.25 M2

200.200.168.23 slave1

4、配置mysql-mmm

修改 /etc/mysql-mmm/mmm_common.conf 各台机子的配置都一样

active_master_role      writer

<host default>
    cluster_interface       eth0
    pid_path                /var/run/mysql-mmm/mmm_agentd.pid
    bin_path                /usr/libexec/mysql-mmm/
    replication_user        repl
    replication_password    password
    agent_user              mmm_agent
    agent_password          <span style="font-size: 13.3333339691162px;">password</span>
</host>

<host M1>
    ip      200.200.168.24
    mode    master
    peer    M2
</host>

<host M2>
    ip      200.200.168.25
    mode    master
    peer    M1
</host>

<host slave1>
    ip      200.200.168.23
    mode    slave
</host>

<role writer>
    hosts   M1,M2
    ips     200.200.168.26
    mode    exclusive
</role>

<role reader>
    hosts   M1,M2,slave1
    ips     200.200.168.27
    mode    balanced
</role>
Nach dem Login kopieren

注意:200.200.168.26和200.200.168.27是两个虚拟的IP地址,供应用程序调用,只需用两个没人占用的IP就可以,分别用来提供写和读服务,为以后实现数据库的读写分离(但实现读写分离需要修改应用程序,mysql并不能自动识别并切换)。

修改/etc/mysql-mmm/mmm_agent.conf

三台机器分别设置为this M1、this M2、this slave1

修改/etc/mysql-mmm/mmm_mon.conf

只是monitor(200.200.168.24)机子需要配置

include mmm_common.conf
<monitor>
    ip                  127.0.0.1
    pid_path            /var/run/mysql-mmm/mmm_mond.pid
    bin_path            /usr/libexec/mysql-mmm
    status_path         /var/lib/mysql-mmm/mmm_mond.status
    ping_ips            200.200.168.24,200.200.168.25,200.200.168.23
    auto_set_online     10

    # The kill_host_bin does not exist by default, though the monitor will
    # throw a warning about it missing.  See the section 5.10 "Kill Host 
    # Functionality" in the PDF documentation.
    #
    # kill_host_bin     /usr/libexec/mysql-mmm/monitor/kill_host
    #
</monitor>
<host default>
    monitor_user        mmm_monitor
    monitor_password    password
</host>
debug 0
Nach dem Login kopieren

配置完成后运行

三台机子都需运行:

/etc/init.d/mysql-mmm-agent start

Monitor机子运行

/etc/init.d/mysql-mmm-monitor start

5、查看服务状态及测试

在monitor机子运行mmm_control show

可以看到以下信息:

\

表示写服务器(200.200.168.26)使用的是200.200.168.24

读服务器(200.200.168.27)使用的是200.200.168.25

查看各个服务的状态:

mmm_control checks all

\

6、测试:

将master1的mysql服务停止,然后mmm_control show查看状态

\

可以看到读写服务器都转移到了master2,这时服务器master1的流程应用还能够正常使用,可以进行申请流程测试

这时查看mmm_control checks all

\

将master1 的mysql服务启动,再查看状态:

\

读写服务器又分开了

\
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Der Knoten verlässt Proxmox VE vollständig und tritt dem Cluster wieder bei Der Knoten verlässt Proxmox VE vollständig und tritt dem Cluster wieder bei Feb 21, 2024 pm 12:40 PM

Szenariobeschreibung für die vollständige Evakuierung von Knoten aus ProxmoxVE und den erneuten Beitritt zum Cluster. Wenn ein Knoten im ProxmoxVE-Cluster beschädigt ist und nicht schnell repariert werden kann, muss der fehlerhafte Knoten sauber aus dem Cluster entfernt und die verbleibenden Informationen bereinigt werden. Andernfalls können neue Knoten, die die vom fehlerhaften Knoten verwendete IP-Adresse verwenden, dem Cluster nicht normal beitreten, nachdem der fehlerhafte Knoten, der sich vom Cluster getrennt hat, repariert wurde, obwohl dies nichts mit dem Cluster zu tun hat Sie können nicht auf die Webverwaltung dieses einzelnen Knotens zugreifen. Im Hintergrund werden Informationen zu anderen Knoten im ursprünglichen ProxmoxVE-Cluster angezeigt, was sehr ärgerlich ist. Entfernen Sie Knoten aus dem Cluster. Wenn es sich bei ProxmoxVE um einen hyperkonvergenten Ceph-Cluster handelt, müssen Sie sich bei jedem Knoten im Cluster (außer dem Knoten, den Sie löschen möchten) auf dem Hostsystem Debian anmelden und den Befehl ausführen

Optimierungsmethode der Datenbank in einer PHP-Umgebung mit hoher Parallelität Optimierungsmethode der Datenbank in einer PHP-Umgebung mit hoher Parallelität Aug 11, 2023 pm 03:55 PM

Optimierungsmethode der Datenbank in einer PHP-Umgebung mit hoher Parallelität Mit der rasanten Entwicklung des Internets müssen sich immer mehr Websites und Anwendungen hohen Herausforderungen der Parallelität stellen. In diesem Fall wird die Optimierung der Datenbankleistung besonders wichtig, insbesondere für Systeme, die PHP als Backend-Entwicklungssprache verwenden. In diesem Artikel werden einige Datenbankoptimierungsmethoden in einer PHP-Umgebung mit hoher Parallelität vorgestellt und entsprechende Codebeispiele gegeben. Verwenden von Verbindungspooling In einer Umgebung mit hoher Parallelität kann das häufige Erstellen und Zerstören von Datenbankverbindungen zu Leistungsengpässen führen. Daher kann die Verwendung von Verbindungspooling erfolgen

So verwenden Sie Docker zum Verwalten und Erweitern von Clustern mit mehreren Knoten So verwenden Sie Docker zum Verwalten und Erweitern von Clustern mit mehreren Knoten Nov 07, 2023 am 10:06 AM

Im heutigen Cloud-Computing-Zeitalter ist die Containerisierungstechnologie zu einer der beliebtesten Technologien in der Open-Source-Welt geworden. Das Aufkommen von Docker hat Cloud Computing komfortabler und effizienter gemacht und ist zu einem unverzichtbaren Werkzeug für Entwickler sowie Betriebs- und Wartungspersonal geworden. Die Anwendung der Multi-Node-Cluster-Technologie basierend auf Docker ist weit verbreitet. Durch die Bereitstellung von Clustern mit mehreren Knoten können wir Ressourcen effizienter nutzen, die Zuverlässigkeit und Skalierbarkeit verbessern und außerdem flexibler bei der Bereitstellung und Verwaltung sein. Als Nächstes stellen wir die Verwendung von Docker vor

Was sind die häufigsten Cluster in PHP? Was sind die häufigsten Cluster in PHP? Aug 31, 2023 pm 05:45 PM

Zu den gängigen Clustern in PHP gehören LAMP-Cluster, Nginx-Cluster, Memcached-Cluster, Redis-Cluster und Hadoop-Cluster. Detaillierte Einführung: 1. LAMP-Cluster. LAMP bezieht sich auf eine Kombination aus Linux, Apache, MySQL und PHP. In einem LAMP-Cluster wird die gleiche Anwendung ausgeführt und über einen Lastausgleichsdienst ausgeglichen 2. Nginx-Cluster, Nginx ist ein Hochleistungs-Webserver und so weiter.

So verwenden Sie MongoDB zur Implementierung von Daten-Clustering- und Lastausgleichsfunktionen So verwenden Sie MongoDB zur Implementierung von Daten-Clustering- und Lastausgleichsfunktionen Sep 19, 2023 pm 01:22 PM

So verwenden Sie MongoDB zum Implementieren von Daten-Clustering- und Lastausgleichsfunktionen. Einführung: Im heutigen Big-Data-Zeitalter hat das schnelle Wachstum des Datenvolumens höhere Anforderungen an die Datenbankleistung gestellt. Um diesen Anforderungen gerecht zu werden, sind Datenclustering und Lastausgleich zu unverzichtbaren technischen Mitteln geworden. Als ausgereifte NoSQL-Datenbank bietet MongoDB umfangreiche Funktionen und Tools zur Unterstützung von Datenclustering und Lastausgleich. In diesem Artikel wird erläutert, wie Sie mit MongoDB Datenclustering- und Lastausgleichsfunktionen implementieren und spezifischen Code bereitstellen

Methode zur Servercluster-Implementierung in der Workerman-Dokumentation Methode zur Servercluster-Implementierung in der Workerman-Dokumentation Nov 08, 2023 pm 08:09 PM

Workerman ist ein leistungsstarkes PHPSocket-Framework, das es PHP ermöglicht, asynchrone Netzwerkkommunikation effizienter abzuwickeln. In der Dokumentation von Workerman finden Sie detaillierte Anweisungen und Codebeispiele zur Implementierung eines Serverclusters. Um einen Servercluster zu implementieren, müssen wir zunächst das Konzept eines Serverclusters klären. Ein Servercluster verbindet mehrere Server mit einem Netzwerk, um die Systemleistung, Zuverlässigkeit und Skalierbarkeit durch die gemeinsame Nutzung von Lasten und Ressourcen zu verbessern. In Workerman können Sie die folgenden zwei Methoden verwenden

Wie konfiguriere ich die Clusterumgebung der MySQL-Datenbank? Wie konfiguriere ich die Clusterumgebung der MySQL-Datenbank? Jul 12, 2023 pm 02:52 PM

Wie konfiguriere ich die Clusterumgebung der MySQL-Datenbank? Einleitung: Mit der Entwicklung des Internets und dem kontinuierlichen Wachstum des Datenvolumens ist die Datenbank zu einem der Kernsysteme geworden, die für jedes Unternehmen notwendig sind. Gleichzeitig sind Datenbankclusterumgebungen nach und nach zur bevorzugten Wahl von Unternehmen geworden, um eine hohe Datenverfügbarkeit sowie Anforderungen an die Lese- und Schreibleistung sicherzustellen. In diesem Artikel wird die Konfiguration der Clusterumgebung der MySQL-Datenbank vorgestellt und entsprechende Codebeispiele bereitgestellt. 1. Umgebungsvorbereitung Bevor wir die Clusterumgebung der MySQL-Datenbank konfigurieren, müssen wir sicherstellen, dass die folgenden Umgebungsvorbereitungen abgeschlossen sind: Installieren Sie M

Zusammenfassung der Erfahrungen mit MySQL-Cluster-Bereitstellungs- und Wartungsprojekten Zusammenfassung der Erfahrungen mit MySQL-Cluster-Bereitstellungs- und Wartungsprojekten Nov 02, 2023 pm 01:33 PM

Zusammenfassung der Erfahrungen mit MySQL-Cluster-Bereitstellung und -Wartung MySQL ist eine der am häufigsten verwendeten Datenbanken bei der Entwicklung von Internetanwendungen. Da der Geschäftsumfang weiter zunimmt, kann eigenständiges MySQL den Bedarf nicht mehr decken MySQL-Clusterlösung zur Erweiterung der Leistung und Kapazität der Datenbank. Dieser Artikel fasst die Erfahrungen und Erkenntnisse aus dem MySQL-Cluster-Bereitstellungs- und -Wartungsprozess zusammen und hofft, für alle bei der MySQL-Cluster-Bereitstellungs- und -Wartungsarbeit hilfreich zu sein. 1. Bereitstellung und Architekturdesign des MySQL-Clusters MySQL-Cluster

See all articles