suchen
HeimSystem-TutorialLINUXSo lösen Sie die MySQL-Master-Slave-Verzögerung
So lösen Sie die MySQL-Master-Slave-VerzögerungMar 19, 2024 am 09:28 AM
linuxlinux教程红帽linux系统linux命令网络问题Linux-ZertifizierungRed Hat LinuxLinux-Video

So lösen Sie die MySQL-Master-Slave-Verzögerung

Die integrierten Replikationsfunktionen von MySQL bilden die Grundlage für die Erstellung großer, leistungsstarker Anwendungen. Verteilen Sie MySQL-Daten auf mehrere Systeme. Dieser verteilte Mechanismus wird erreicht, indem die Daten eines bestimmten MySQL-Hosts auf andere Host-Slaves kopiert und erneut ausgeführt werden.
Bei der Replikation fungiert ein Server als Master und ein oder mehrere andere Server fungieren als Slaves. Der Master schreibt Aktualisierungen in binäre Protokolldateien und verwaltet einen Index der Dateien, um die Protokollrotation zu verfolgen. Diese Protokolle zeichnen Aktualisierungen auf, die an Slave-Server gesendet werden. Wenn ein Slave eine Verbindung zum Master herstellt, benachrichtigt er den Master über den Ort der letzten erfolgreichen Aktualisierung, die der Slave im Protokoll gelesen hat. Der Slave-Server empfängt alle seitdem erfolgten Aktualisierungen, blockiert dann und wartet darauf, dass der Master-Server sie über Aktualisierungen benachrichtigt.
Probleme mit der MySQL-Master-Slave-Replikation:

  • Nachdem die Hauptdatenbank ausgefallen ist, können Daten verloren gehen
  • Die Slave-Bibliothek verfügt nur über einen SQL-Thread, die Hauptbibliothek steht unter großem Schreibdruck und die Replikation wird sich wahrscheinlich verzögern
Im Folgenden finden Sie vier praktische Möglichkeiten, die MySQL-Master-Slave-Verzögerung zu lösen
1. Prinzip der Master-Slave-Synchronisationsverzögerung der MySQL-Datenbank.

Antwort: Wenn wir über das Prinzip der Master-Slave-Synchronisationsverzögerung in der MySQL-Datenbank sprechen, müssen wir mit dem Prinzip der Master-Slave-Replikation der MySQL-Datenbank beginnen. Die Hauptdatenbank generiert Binlog Für alle DDL- und DML-Programme ist die Effizienz sehr hoch DDL- und DML-Operationen der Hauptbibliothek auf dem Slave. Die E/A-Operationen von DML und DDL sind zufällig und nicht sequentiell, daher können auch andere Abfragen auf dem Slave zu Sperrenkonflikten führen. Da Slave_SQL_Running ebenfalls Single-Threaded ist, muss ein DDL-Karten-Master zehnmal ausgeführt werden. Minuten, dann warten alle nachfolgenden DDL, bis die Ausführung dieses DDL abgeschlossen ist, bevor sie fortfahren, was zu Verzögerungen führt. Einige Freunde werden fragen: „Derselbe DDL in der Hauptbibliothek muss auch 10 Minuten lang ausgeführt werden. Warum ist der Slave verzögert?“ Die Antwort ist, dass der Master gleichzeitig ausgeführt werden kann, der Slave_SQL_Running-Thread jedoch nicht.

2. Wie kommt es zur Master-Slave-Synchronisationsverzögerung in der MySQL-Datenbank?

Antwort: Wenn die TPS-Parallelität der Hauptbibliothek hoch ist, übersteigt die Anzahl der generierten DDL den Bereich, den ein SQL-Thread des Slaves aushalten kann, und dann kann es zu einer Verzögerung beim Warten auf die Sperre kommen große Abfrageanweisung.

3.MySQL-Datenbank-Master-Slave-Synchronisationsverzögerungslösung

Antwort: Die einfachste Lösung zur Reduzierung der Slave-Synchronisationsverzögerung besteht darin, die Architektur zu optimieren und zu versuchen, die DDL der Hauptbibliothek schnell auszuführen. Es gibt auch die Tatsache, dass die Hauptbibliothek eine hohe Datensicherheit aufweist, z. B. sync_binlog = 1, innodb_flush_log_at_trx_commit = 1. Der Slave benötigt jedoch keine so hohe Datensicherheit. Sie können sync_binlog auf 0 oder setzen Binlog deaktivieren kann auch auf 0 gesetzt werden, um die SQL-Ausführungseffizienz zu verbessern. Die andere Möglichkeit besteht darin, als Slave ein besseres Hardwaregerät als die Hauptbibliothek zu verwenden.

4. Faktoren, die die Master-Slave-Synchronisationsverzögerung in der MySQL-Datenbank verursachen.

1. Netzwerkverzögerung
2. Hauptlast
3. Sklavenladung
Der allgemeine Ansatz besteht darin, mehrere Slaves zum Verteilen von Leseanforderungen zu verwenden und dann einen dedizierten Server dieser Slaves nur für die Sicherung zu verwenden, ohne dass weitere Vorgänge erforderlich sind, sodass die Anforderungen an „Echtzeit“ maximal erfüllt werden können

Darüber hinaus führen wir zwei weitere Parameter ein, die die Verzögerung reduzieren können
–slave-net-timeout=Sekunden
Parameterbedeutung: Wenn der Slave keine Protokolldaten aus der Hauptdatenbank liest, wie lange muss gewartet werden, bis die Verbindung wiederhergestellt und die Daten abgerufen werden können
Die Einheit von „slave_net_timeout“ ist Sekunden. Die Standardeinstellung ist 3600 Sekunden
|. Slave_net_timeout |. 3600
–master-connect-retry=Sekunden Parameterbedeutung: Wie lange dauert der erneute Versuch, wenn beim erneuten Herstellen der Master-Slave-Verbindung die Verbindung fehlschlägt?
Die Einheit für den Master-Verbindungswiederholungsversuch ist Sekunden. Die Standardeinstellung ist 60 Sekunden Normalerweise kann die Konfiguration der beiden oben genannten Parameter die durch Netzwerkprobleme verursachte Verzögerung bei der Master-Slave-Datensynchronisierung verringern

Das obige ist der detaillierte Inhalt vonSo lösen Sie die MySQL-Master-Slave-Verzögerung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:Linux就该这么学. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
什么是linux设备节点什么是linux设备节点Apr 18, 2022 pm 08:10 PM

linux设备节点是应用程序和设备驱动程序沟通的一个桥梁;设备节点被创建在“/dev”,是连接内核与用户层的枢纽,相当于硬盘的inode一样的东西,记录了硬件设备的位置和信息。设备节点使用户可以与内核进行硬件的沟通,读写设备以及其他的操作。

Linux中open和fopen的区别有哪些Linux中open和fopen的区别有哪些Apr 29, 2022 pm 06:57 PM

区别:1、open是UNIX系统调用函数,而fopen是ANSIC标准中的C语言库函数;2、open的移植性没fopen好;3、fopen只能操纵普通正规文件,而open可以操作普通文件、网络套接字等;4、open无缓冲,fopen有缓冲。

linux中什么叫端口映射linux中什么叫端口映射May 09, 2022 pm 01:49 PM

端口映射又称端口转发,是指将外部主机的IP地址的端口映射到Intranet中的一台计算机,当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上;可以通过使用动态或固定的公共网络IP路由ADSL宽带路由器来实现。

linux中eof是什么linux中eof是什么May 07, 2022 pm 04:26 PM

在linux中,eof是自定义终止符,是“END Of File”的缩写;因为是自定义的终止符,所以eof就不是固定的,可以随意的设置别名,linux中按“ctrl+d”就代表eof,eof一般会配合cat命令用于多行文本输出,指文件末尾。

linux怎么判断pcre是否安装linux怎么判断pcre是否安装May 09, 2022 pm 04:14 PM

在linux中,可以利用“rpm -qa pcre”命令判断pcre是否安装;rpm命令专门用于管理各项套件,使用该命令后,若结果中出现pcre的版本信息,则表示pcre已经安装,若没有出现版本信息,则表示没有安装pcre。

linux怎么查询mac地址linux怎么查询mac地址Apr 24, 2022 pm 08:01 PM

linux查询mac地址的方法:1、打开系统,在桌面中点击鼠标右键,选择“打开终端”;2、在终端中,执行“ifconfig”命令,查看输出结果,在输出信息第四行中紧跟“ether”单词后的字符串就是mac地址。

手机远程linux工具有哪些手机远程linux工具有哪些Apr 29, 2022 pm 05:30 PM

手机远程linux工具有:1、JuiceSSH,是一款功能强大的安卓SSH客户端应用,可直接对linux服务进行管理;2、Termius,可以利用手机来连接Linux服务器;3、Termux,一个强大的远程终端工具;4、向日葵远程控制等等。

linux中lsb是什么意思linux中lsb是什么意思May 07, 2022 pm 05:08 PM

linux中,lsb是linux标准基础的意思,是“Linux Standards Base”的缩写,是linux标准化领域中的标准;lsb制定了应用程序与运行环境之间的二进制接口,保证了linux发行版与linux应用程序之间的良好结合。

See all articles

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ße Werkzeuge

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.