Der Workflow von pt-osc:
1. Überprüfen Sie, ob die Änderungstabelle einen Primärschlüssel oder einen eindeutigen Index hat und ob ein Auslöser vorhanden ist
2. Aktivieren Sie „Ändern Sie die Tabellenstruktur der Tabelle, erstellen Sie eine temporäre Tabelle und führen Sie die ALTER TABLE-Anweisung für die neue Tabelle aus“
3. Erstellen Sie drei Trigger für die Quelltabelle für das INSERT UPDATE DELETE-Vorgang
4. Daten aus der Quelltabelle in die temporäre Tabelle kopieren. Während des Kopiervorgangs wird der Aktualisierungsvorgang für die Quelltabelle in die neue Tabelle geschrieben
5. Kombinieren Sie die temporäre Tabelle und die Umbenennung der Quelltabelle (erfordert Metadaten-Änderungssperre und kurzfristige Tabellensperre)
6. Löschen Sie die Quelltabelle und die Trigger, um die Änderung der Tabellenstruktur abzuschließen .
##=================================== == ===============##
pt-osc-tool-einschränkungen
1 einen Primärschlüssel oder einen eindeutigen Index haben. Wenn kein Tool vorhanden ist, funktioniert es nicht mehr
2. Wenn der Filtervorgang für die Online-Replikationsumgebung zu kompliziert ist, funktioniert das Tool nicht
3. Wenn die Replikationsverzögerungsprüfung aktiviert ist, Master und Slave jedoch verzögert sind, unterbricht das Tool die Datenkopierarbeit
4. Wenn die Auslastungsprüfung des Master-Servers aktiviert ist eingeschaltet, aber die Auslastung des Master-Servers ist hoch, das Tool unterbricht den Vorgang
5. Wenn die Tabelle jedoch Fremdschlüssel verwendet, wenn der Parameter --alter-foreign-keys-method nicht vorhanden ist Wird das Tool verwendet, wird es nicht ausgeführt.
6 Es werden nur Innodb-Speicher-Engine-Tabellen unterstützt. Und es benötigt mehr als das 1-fache des freien Speicherplatzes der Tabelle auf dem Server.
##=================================== == ================##
PT-OSC-Daten kopieren
Im Prozess des Kopierens von Daten , das Tool Die Daten werden nach Primärschlüssel oder eindeutigem Schlüssel aufgeteilt und die Anzahl der jeweils kopierten Datenzeilen wird begrenzt, um sicherzustellen, dass die Kopie nicht zu viele Serverressourcen verbraucht. Um sicherzustellen, dass die Daten in der Quelltabelle und der Zieltabelle identisch sind, verwenden Sie den LOCK IN SHARE MODE, um die neuesten Daten des zu kopierenden Datensegments abzurufen, und fügen Sie den Daten eine gemeinsame Sperre hinzu, um zu verhindern, dass andere Sitzungen Änderungen vornehmen Verwenden Sie LOW_PRIORITY IGNORE, um die Daten in die neue Tabelle einzufügen. LOW_PRIORIT bewirkt, dass der Einfügevorgang auf den Abschluss anderer Vorgänge wartet, die auf die Tabelle zugreifen. Das Schlüsselwort INGORE bewirkt, dass die neuen Daten ignoriert und nicht eingefügt werden Die Tabelle enthält einen doppelten Primärschlüssel oder eindeutigen Indexschlüssel.
Datenkopierskript beim Ändern der Tabelle „testdb1“.`tb1001`:
## Holen Sie sich zuerst die nächsten Kopierdaten. Grenzen, erzwungene Indizierung kann Probleme mit Ausführungsplänen effektiv vermeiden
SELECT /*!40001 SQL_NO_CACHE */ `id` FROM `testdb1`.`tb1001` FORCE INDEX(`PRIMARY`) WHERE ((` id` > = '8394306')) ORDER BY `id` LIMIT 22256, 2 /*nächste Chunk-Grenze*/
## Verhindert einen einzelnen Durchgang durch die Grenzgrenze von Kopierdaten. Kopieren zu vieler Daten blockiert andere Antworten für lange Zeit
INSERT LOW_PRIORITY IGNORE INTO `testdb1`.`_tb1001_new` (`id`, `c1`, `c6`) SELECT `id`, `c1`, ` c6` FROM `testdb1`.`tb1001` FORCE INDEX(`PRIMARY`) WHERE ((`id` >= '8394306')) AND ((`id`
##================= === ===============================##
pt-osc Trigger
Das pt-osc-Tool erstellt drei AFTER-Trigger für die Quelltabelle für den INSERT UPDATE DELETE-Vorgang. Der DELETE-Trigger verwendet DELETE IGNORE, um sicherzustellen, dass die Daten der Quelltabelle und der neuen Tabelle gelöscht werden, während INSERT und UPDATE Der Trigger verwendet REPLACE INTO, um sicherzustellen, dass die neuen Tabellendaten mit den Quelltabellendaten konsistent sind.
Da MySQL begrenzt, dass es nur einen Trigger desselben Typs geben kann, muss vor der Ausführung überprüft werden, ob ein Trigger in der Quelltabelle vorhanden ist, um die Effizienz sicherzustellen Um das Löschen und Aktualisieren zu erleichtern, sind die Quelltabellendaten fragmentiert und erfordern daher einen Primärschlüssel oder einen eindeutigen Index für die Tabelle.
##=================================== == =================##
Die Auswirkungen von pt-osc auf die Hostleistung
Um eine übermäßige Beeinträchtigung der Hostleistung zu vermeiden, begrenzt das pt-osc-Tool diese durch die folgenden Aspekte:
1. Steuern Sie die Datengröße jeder Kopie über die Parameter Chunk-Size und Chunk-Time
2. Verwenden Sie den Parameter max-load, um den aktuellen Druck des Hosts zu überprüfen. Nachdem jede Blockkopie abgeschlossen ist, wird der Befehl SHOW GLOBAL STATUS LIKE „Threads_running“ ausgeführt, um die Anzahl der aktuell ausgeführten Threads zu überprüfen . Der Standardwert Threads_running=25, wenn der Maximalwert nicht angegeben ist, werden 120 % des aktuellen Werts als Maximalwert verwendet. Wenn er den Schwellenwert überschreitet, wird das Kopieren der Daten ausgesetzt
##================ ============================= ========##
pt -osc Slave-Bibliothek-Kopierverzögerung
Für Unternehmen, die empfindlich auf Kopierverzögerungen reagieren, können Sie dies steuern die Kopierverzögerung durch die folgenden Parameter:
-- max-log
ist standardmäßig auf 1s eingestellt. Nachdem die Kopie jedes Chunks abgeschlossen ist, werden die Verzögerungsinformationen des Die durch den Parameter „check-slave-lag“ angegebene Slave-Bibliothek wird überprüft. Wenn sie den Max-Log-Schwellenwert überschreitet, wird das Kopieren von Daten angehalten, bis die Kopierverzögerung unter dem Max-Log-Schwellenwert liegt. Die Überprüfung der Replikationslatenzinformationen basiert auf dem Wert der Spalte Seconds_Behind_Master, die in der SHOW SLAVE STATUS-Anweisung zurückgegeben wird.
--check-interval
Wenn eine Replikationsverzögerung auftritt und die Daten angehalten werden, wird die Replikationsverzögerung regelmäßig entsprechend der durch die Prüfung angegebenen Zeit überprüft -Intervall bis zur Verzögerung. Die Zeit liegt unter dem Max-Log-Schwellenwert, dann wird die Datenkopie fortgesetzt
--check-slave-lag
Slave-IP Das muss die Replikationsverzögerung überprüfen
Wenn der Parameter „check-slave-lag“ angegeben ist und die Slave-Bibliothek keine normale Verbindung herstellen kann oder der E/A-Thread und der SQL-Thread der Slave-Bibliothek gestoppt sind, wird dies berücksichtigt Es kommt zu einer Verzögerung zwischen Master und Slave, wodurch der Datenkopiervorgang unterbrochen wird.
Wenn der Parameter check-slave-lag nicht angegeben ist, wird die Verzögerung der Slave-Bibliothek weiterhin standardmäßig überprüft, aber die Replikationsverzögerung führt nicht dazu, dass die Datenreplikation angehalten wird.
##=================================== == ================##
PT-OSC-Chunk-Einstellungen
Im Hilfedokument von pt -osc, die Parameter für Chunk lauten wie folgt:
--chunk-index=s Prefer this index for chunking tables --chunk-index-columns=i Use only this many left-most columns of a --chunk-index --chunk-size=z Number of rows to select for each chunk copied (default 1000) --chunk-size-limit=f Do not copy chunks this much larger than the desired chunk size (default 4.0) --chunk-time=f Adjust the chunk size dynamically so each data-copy query takes this long to execute (default 0.5)
Wenn weder Chunk-Size noch Chunk-Time angegeben sind, Chunk- The Der Standardwert für die Größe beträgt 1000 und der Standardwert für die Blockzeit beträgt 0,5 Sekunden. Die Daten werden zum ersten Mal entsprechend der Blockgröße kopiert, und dann wird die Größe der Blockgröße dynamisch entsprechend der Zeit angepasst Beim ersten Kopieren dauerte das Kopieren von 1000 Zeilen beispielsweise 0,1 Sekunden, beim nächsten Mal wird die Chumk-Größe dynamisch auf 5000 angepasst.
Wenn der Wert von chumk-size explizit angegeben wird oder chunk-time als 0 angegeben wird, werden die Daten jedes Mal entsprechend der Chunk-Size kopiert.
##=====================================================##
pt-osc之alter语句限制
1、不需要包含alter table关键字,可以包含多个修改操作,使用逗号分开,如"drop clolumn c1, add column c2 int"
2、不支持rename语句来对表进行重命名操作
3、不支持对索引进行重命名操作
4、如果删除外键,需要对外键名加下划线,如删除外键fk_uid, 修改语句为"DROP FOREIGN KEY _fk_uid"
##=====================================================##
pt-osc之命令模板
## --execute表示执行
## --dry-run表示只进行模拟测试
## 表名只能使用参数t来设置,没有长参数
pt-online-schema-change \--host="127.0.0.1" \--port=3358 \--user="root" \--password="root@root" \--charset="utf8" \--max-lag=10 \--check-salve-lag='xxx.xxx.xxx.xxx' \--recursion-method="hosts" \--check-interval=2 \--database="testdb1" \t="tb001" \--alter="add column c4 int" \--execute
pt-osc之命令输出
上面命令执行输出如下:
No slaves found. See --recursion-method if host 171DB166 has slaves. Will check slave lag on: 170DB166 Operation, tries, wait: copy_rows, 10, 0.25 create_triggers, 10, 1 drop_triggers, 10, 1 swap_tables, 10, 1 update_foreign_keys, 10, 1 Altering `testdb1`.`tb001`... Creating new table... Created new table testdb1._tb001_new OK. Altering new table... Altered `testdb1`.`_tb001_new` OK. 2016-04-28T23:18:04 Creating triggers... 2016-04-28T23:18:04 Created triggers OK. 2016-04-28T23:18:04 Copying approximately 1 rows... 2016-04-28T23:18:04 Copied rows OK. 2016-04-28T23:18:04 Swapping tables... 2016-04-28T23:18:04 Swapped original and new tables OK. 2016-04-28T23:18:04 Dropping old table... 2016-04-28T23:18:04 Dropped old table `testdb1`.`_tb001_old` OK. 2016-04-28T23:18:04 Dropping triggers... 2016-04-28T23:18:04 Dropped triggers OK. Successfully altered `testdb1`.`tb001`.
Das obige ist der detaillierte Inhalt vonEinführung und Verwendung von MySQL--pt-osc. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

MySQL ist ein Open Source Relational Database Management -System, das für Datenspeicher, Verwaltung, Abfrage und Sicherheit geeignet ist. 1. Es unterstützt eine Vielzahl von Betriebssystemen und wird in Webanwendungen und anderen Feldern häufig verwendet. 2. Durch die Client-Server-Architektur und verschiedene Speichermotoren verarbeitet MySQL Daten effizient. 3. Die grundlegende Verwendung umfasst das Erstellen von Datenbanken und Tabellen, das Einfügen, Abfragen und Aktualisieren von Daten. 4. Fortgeschrittene Verwendung beinhaltet komplexe Abfragen und gespeicherte Verfahren. 5. Häufige Fehler können durch die Erklärungserklärung debuggen. 6. Die Leistungsoptimierung umfasst die rationale Verwendung von Indizes und optimierte Abfrageanweisungen.

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

Zu den Verriegelungsmechanismen von InnoDB gehören gemeinsame Schlösser, exklusive Schlösser, Absichtsschlösser, Aufzeichnungsschlösser, Lückensperrungen und nächste Schlüsselschlösser. 1. Shared Lock ermöglicht es Transaktionen, Daten zu lesen, ohne dass andere Transaktionen lesen. 2. Exklusives Schloss verhindert, dass andere Transaktionen Daten lesen und ändern. 3.. Intention Lock optimiert die Sperreffizienz. 4. Rekord -Sperr -Indexdatensatz. 5. Gap Lock Locks Index -Aufzeichnungslücke. 6. Die nächste Schlüsselsperrung ist eine Kombination aus Datensatzsperr- und Lückensperrung, um die Datenkonsistenz zu gewährleisten.

Die Hauptgründe für die schlechte MySQL -Abfrageleistung sind die Verwendung von Indizes, die Auswahl der falschen Ausführungsplan durch den Abfrageoptimierer, die unangemessene Tabellenentwurf, das übermäßige Datenvolumen und die Sperrwettbewerbe. 1. Kein Index verursacht langsame Abfragen, und das Hinzufügen von Indizes kann die Leistung erheblich verbessern. 2. Verwenden Sie den Befehl Erklärung, um den Abfrageplan zu analysieren und den Optimiererfehler herauszufinden. 3. Die Rekonstruktion der Tabellenstruktur und Optimierung der Verbindungsbedingungen kann die Probleme mit dem Design der Tabelle verbessern. 4. Wenn das Datenvolumen groß ist, werden Strategien für Partitionierungs- und Tabellenabteilung angewendet. 5. In einer hohen Parallelitätsumgebung können die Optimierung von Transaktionen und Verriegelungsstrategien den Konkurrenz verringern.

In der Datenbankoptimierung sollten Indexierungsstrategien gemäß Abfrageanforderungen ausgewählt werden: 1. Wenn die Abfrage mehrere Spalten beinhaltet und die Reihenfolge der Bedingungen festgelegt ist, verwenden Sie zusammengesetzte Indizes. 2. Wenn die Abfrage mehrere Spalten beinhaltet, aber die Reihenfolge der Bedingungen nicht festgelegt ist, verwenden Sie mehrere einspaltige Indizes. Zusammengesetzte Indizes eignen sich zur Optimierung von Multi-Säulen-Abfragen, während Einspaltindizes für Einspalten-Abfragen geeignet sind.

Um die MySQL -Abfrage zu optimieren, müssen SlowQuerylog und Performance_Schema verwendet werden: 1. Aktivieren Sie SlowQuerylog und setzen Sie Schwellenwerte, um langsame Abfragen aufzuzeichnen; 2. Verwenden Sie Performance_Schema, um die Details zur Ausführung von Abfragen zu analysieren, Leistungs Engpässe zu finden und zu optimieren.

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.