Inhaltsverzeichnis
首试:仅将其中的一个服务器配置为启用GTID
再试:启用GTID,混合使用普通复制和GTID复制
结束语
Heim Datenbank MySQL-Tutorial MySQL 5.6 复制:GTID 的优点和限制(第一部分)_MySQL

MySQL 5.6 复制:GTID 的优点和限制(第一部分)_MySQL

Jun 01, 2016 pm 01:34 PM
可能性 服务器

bitsCN.com

 

全局事务标示符(Global Transactions Identifier)是MySQL 5.6复制的一个新特性。它为维护特定的复制拓扑结构下服务器的DBA们大幅度改善他们的工作状况提供了多种可能性。然而,你还应该明白当前实现的一些局限。本博文是专门对在生产环境中启用GTID到底意味着什么进行讨论的一系列文章的第一部分。

这个手册非常到位地描述了如何才能切换到基于GTID的复制,我就不再鏊叙。

其基本步骤如下所示:

  • 让主机成为只读模式,这样就可以让从机执行所有的时间从而同主机保持为同步状态。
  • 修改所有服务器的配置并对它们进行重启
  • 使用CHANGE MASTER TO,让所有的服务器使用GTID
  • 关闭主机的只读模式

这个步骤会把你所有的服务器从普通复制切换到GTID复制。但是,如果你运行的是生产系统,你可能会想一点一点启用GTID,这样一旦除了什么问题,也更容易进行回滚了。相关文档中有些条目写得不是很清楚。

比如:

  • 我们真地需要同时重启所有的服务器吗? 停机时间可是我们千方百计要避免的事情!
  • 有必要让主机变成只读模式吗?
  • 我们能不能在有些从机中使用普通复制的同时,在另外的一些从机上使用GTID复制?

为了找到这些问题的答案,先让我们创建一个比较简单的复制配置,其中有一个主机和两个从机,所有服务器运行的都是MySQL 5.6,都未启用GTID。

首试:仅将其中的一个服务器配置为启用GTID

让我们先停止2号从机的服务,修改配置后重启:

1 mysql> show slave status/G 2 [...] 3 Slave_IO_Running: No 4 Slave_SQL_Running: Yes 5           [...] 错误日志说明了为什么IO线程没有启动起来: 1 2013-05-17 13:21:26 3130 [ERROR] Slave I/O: The slave IO thread stops because the master has GTID_MODE OFF and this server has GTID_MODE ON, Error_code: 1593

看来,很不幸的是,如果想要复制正常运行,gtid_mode必须在所有的服务器上都是ON或者都是OFF才行, 半半拉拉的绝对不行。

要是我们对主机进行重新配置会怎样?这次,1号从机的复制会停止运行:

1 2013-05-17 13:32:08 2563 [ERROR] Slave I/O: The slave IO thread stops because the master has GTID_MODE ON and this server has GTID_MODE OFF, Error_code: 1593

这两个简单的试验回答了头两个问题:只有在所有的服务器中的gtid_mode具有相同的值时,复制才能正常运行,因此,你应该对它们同时进行重启,而且最好是在将主机成为只读模式后进行。然而,“同时”的意思是“在同一个binlog位置上”,所以你完全可以一个接一个对服务器进行重启。

再试:启用GTID,混合使用普通复制和GTID复制

这次我们在1号从机而不是2号从机上启用GTID:

1 # slave #1 2 mysql> change master to master_auto_position = 1; 3 mysql> start slave; 接下来让我们在主机上创建一个新表: 
1 mysql> create table test.t (id int not null auto_increment primary key);

在两个从机上都运行SHOW TABLES FROM test表明,所有的服务器都创建了这个新表。因此,一旦在所有的服务器上启用GTID,你就可以让某些从机使用基于文件的定位而让另外一些从机使用基于GTID的定位。

这就回答了第二个问题:我们可以让不同的服务器具有不同的复制模式,但所有的服务器必须将将gtid_mode设置为ON。在gtid_mode为ON的情况下还运行基于文件的复制,这能有什么意思?我还没有发现这有什么用处,所以在实践中,你可能会要么只用基于文件的复制在(所有服务器都设置为gtid_mode=off),要么只用基于GTID的复制(所有服务器都设置为gtid_mode=on)。

还有一个问题:如何通过查看SHOW SLAVE STATUS的输出才能看出来一个从机是不是基于GTID的复制?这可以通过查看最后一个字段,Auto_Position,的值进行区分:

1 # Slave #1 2 mysql> show slave status/G 3 [...] 4 Auto_Position: 1  -> GTID-based positioning 5 # Slave #2 6 mysql> show slave status/G 7 [...] 8 Auto_Position: 0  -> File-based positioning

结束语

如果你的应用轻易不能容忍停机时间或者只读模式,那么基于GTID的复制启用起来就会非常棘手,特别在需要重新配置大量服务器的情况下,便更是如此了。要是能将gtid_mode为ON的服务器同gtid_mode为OFF的服务器混合使用就好了,因为这样的话,就就能够简化转向基于GTID的复制的所需的过程,如果出了错还更容易进行回滚。

原文地址:http://www.mysqlperformanceblog.com/2013/05/21/replication-in-mysql-5-6-gtids-benefits-and-limitations-part-1/

bitsCN.com
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 尊渡假赌尊渡假赌尊渡假赌

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)

So lösen Sie das Problem, dass die eMule-Suche keine Verbindung zum Server herstellen kann So lösen Sie das Problem, dass die eMule-Suche keine Verbindung zum Server herstellen kann Jan 25, 2024 pm 02:45 PM

Lösung: 1. Überprüfen Sie die eMule-Einstellungen, um sicherzustellen, dass Sie die richtige Serveradresse und Portnummer eingegeben haben. 2. Überprüfen Sie die Netzwerkverbindung, stellen Sie sicher, dass der Computer mit dem Internet verbunden ist, und setzen Sie den Router zurück Wenn Ihre Einstellungen kein Problem mit der Netzwerkverbindung sind, müssen Sie überprüfen, ob der Server online ist. 4. Aktualisieren Sie die eMule-Version, besuchen Sie die offizielle Website von eMule und laden Sie die neueste Version der eMule-Software herunter. 5. Suchen Sie Hilfe.

Lösung für die Unfähigkeit, eine Verbindung zum RPC-Server herzustellen und den Desktop nicht aufzurufen Lösung für die Unfähigkeit, eine Verbindung zum RPC-Server herzustellen und den Desktop nicht aufzurufen Feb 18, 2024 am 10:34 AM

Was soll ich tun, wenn der RPC-Server nicht verfügbar ist und auf dem Desktop nicht darauf zugegriffen werden kann? In den letzten Jahren sind Computer und das Internet in jeden Winkel unseres Lebens vorgedrungen. Als Technologie für zentralisierte Datenverarbeitung und gemeinsame Nutzung von Ressourcen spielt Remote Procedure Call (RPC) eine entscheidende Rolle in der Netzwerkkommunikation. Manchmal kann es jedoch vorkommen, dass der RPC-Server nicht verfügbar ist und der Desktop nicht aufgerufen werden kann. In diesem Artikel werden einige mögliche Ursachen für dieses Problem beschrieben und Lösungen bereitgestellt. Zuerst müssen wir verstehen, warum der RPC-Server nicht verfügbar ist. RPC-Server ist ein

Detaillierte Erläuterung der CentOS-Installationssicherung und des CentOS-Installationsservers Detaillierte Erläuterung der CentOS-Installationssicherung und des CentOS-Installationsservers Feb 13, 2024 pm 08:40 PM

Als LINUX-Benutzer müssen wir häufig verschiedene Software und Server unter CentOS installieren. In diesem Artikel wird detailliert beschrieben, wie Sie Fuse installieren und einen Server unter CentOS einrichten, damit Sie die entsprechenden Vorgänge reibungslos abschließen können. Die Installation von FuseFuse unter CentOS ist ein User-Space-Dateisystem-Framework, mit dem unprivilegierte Benutzer über ein benutzerdefiniertes Dateisystem auf das Dateisystem zugreifen und es bedienen können. Die Installation von Fuse unter CentOS ist sehr einfach. Befolgen Sie einfach die folgenden Schritte: 1. Öffnen Sie das Terminal und melden Sie sich an Root-Benutzer. 2. Verwenden Sie den folgenden Befehl, um das Sicherungspaket zu installieren: „yuminstallfuse3“. Bestätigen Sie die Eingabeaufforderungen während des Installationsvorgangs und geben Sie „y“ ein, um fortzufahren. 4. Installation abgeschlossen

So konfigurieren Sie Dnsmasq als DHCP-Relay-Server So konfigurieren Sie Dnsmasq als DHCP-Relay-Server Mar 21, 2024 am 08:50 AM

Die Rolle eines DHCP-Relays besteht darin, empfangene DHCP-Pakete an einen anderen DHCP-Server im Netzwerk weiterzuleiten, auch wenn sich die beiden Server in unterschiedlichen Subnetzen befinden. Durch die Verwendung eines DHCP-Relays können Sie einen zentralen DHCP-Server im Netzwerkzentrum bereitstellen und ihn verwenden, um allen Netzwerksubnetzen/VLANs dynamisch IP-Adressen zuzuweisen. Dnsmasq ist ein häufig verwendeter DNS- und DHCP-Protokollserver, der als DHCP-Relay-Server konfiguriert werden kann, um die Verwaltung dynamischer Hostkonfigurationen im Netzwerk zu unterstützen. In diesem Artikel zeigen wir Ihnen, wie Sie dnsmasq als DHCP-Relay-Server konfigurieren. Inhaltsthemen: Netzwerktopologie Konfigurieren statischer IP-Adressen auf einem DHCP-Relay D auf einem zentralen DHCP-Server

Best-Practice-Leitfaden zum Erstellen von IP-Proxyservern mit PHP Best-Practice-Leitfaden zum Erstellen von IP-Proxyservern mit PHP Mar 11, 2024 am 08:36 AM

Bei der Netzwerkdatenübertragung spielen IP-Proxyserver eine wichtige Rolle. Sie helfen Benutzern dabei, ihre echten IP-Adressen zu verbergen, ihre Privatsphäre zu schützen und die Zugriffsgeschwindigkeit zu verbessern. In diesem Artikel stellen wir den Best-Practice-Leitfaden zum Aufbau eines IP-Proxyservers mit PHP vor und stellen spezifische Codebeispiele bereit. Was ist ein IP-Proxyserver? Ein IP-Proxyserver ist ein Zwischenserver zwischen dem Benutzer und dem Zielserver. Er fungiert als Übertragungsstation zwischen dem Benutzer und dem Zielserver und leitet die Anforderungen und Antworten des Benutzers weiter. Durch die Verwendung eines IP-Proxyservers

So aktivieren Sie den TFTP-Server So aktivieren Sie den TFTP-Server Oct 18, 2023 am 10:18 AM

Zu den Schritten zum Starten des TFTP-Servers gehören die Auswahl der TFTP-Serversoftware, das Herunterladen und Installieren der Software, das Konfigurieren des TFTP-Servers sowie das Starten und Testen des Servers. Detaillierte Einführung: 1. Bei der Auswahl der TFTP-Serversoftware müssen Sie zunächst die TFTP-Serversoftware auswählen, die Ihren Anforderungen entspricht. Derzeit stehen zahlreiche TFTP-Serversoftware zur Auswahl, z. B. Tftpd32, PumpKIN, tftp-hpa usw. die alle einfache und benutzerfreundliche Schnittstellen- und Konfigurationsoptionen bieten. 2. Laden Sie TFTP-Serversoftware usw. herunter und installieren Sie sie.

Was soll ich tun, wenn ich das Spiel nicht betreten kann, während der Epic-Server offline ist? Lösung, warum Epic das Spiel nicht offline betreten kann Was soll ich tun, wenn ich das Spiel nicht betreten kann, während der Epic-Server offline ist? Lösung, warum Epic das Spiel nicht offline betreten kann Mar 13, 2024 pm 04:40 PM

Was soll ich tun, wenn ich das Spiel nicht betreten kann, während der Epic-Server offline ist? Dieses Problem muss bei vielen Freunden aufgetreten sein. Wenn diese Meldung angezeigt wird, kann das Problem normalerweise durch Störungen durch das Netzwerk und die Sicherheitssoftware verursacht werden Ich möchte die Lösung mit Ihnen teilen und hoffe, dass das heutige Software-Tutorial Ihnen bei der Lösung des Problems helfen kann. Was ist zu tun, wenn der Epic-Server nicht auf das Spiel zugreifen kann, wenn er offline ist: 1. Möglicherweise wird er durch Sicherheitssoftware gestört. Schließen Sie die Spielplattform und die Sicherheitssoftware und starten Sie sie dann neu. 2. Der zweite Grund ist, dass das Netzwerk zu stark schwankt. Versuchen Sie, den Router neu zu starten, um zu sehen, ob er funktioniert. Wenn die Bedingungen in Ordnung sind, können Sie versuchen, das 5g-Mobilfunknetz für den Betrieb zu verwenden. 3. Dann könnten es noch mehr sein

Wie installiere ich die PHP-FFmpeg-Erweiterung auf dem Server? Wie installiere ich die PHP-FFmpeg-Erweiterung auf dem Server? Mar 28, 2024 pm 02:39 PM

Wie installiere ich die PHPFFmpeg-Erweiterung auf dem Server? Die Installation der PHPFFmpeg-Erweiterung auf dem Server kann uns dabei helfen, Audio- und Videodateien in PHP-Projekten zu verarbeiten und Funktionen wie Kodierung, Dekodierung, Bearbeitung und Verarbeitung von Audio- und Videodateien zu implementieren. In diesem Artikel erfahren Sie, wie Sie die PHPFFmpeg-Erweiterung auf dem Server installieren, sowie spezifische Codebeispiele. Zunächst müssen wir sicherstellen, dass PHP und FFmpeg auf dem Server installiert sind. Wenn FFmpeg nicht installiert ist, können Sie die folgenden Schritte ausführen, um FFmpe zu installieren

See all articles