1 Anforderungen im ÜberblickDie Daten mehrerer Tabellen in der MySQL5.6-Produktionsdatenbank werden in Echtzeit mit dem Oracle11g-Data Warehouse synchronisiert. Die historischen MySQL-Daten betragen 700 G, und täglich werden durchschnittlich etwa 50 G Protokolldateien generiert. Der MySQL-Protokollspeicherplatz beträgt 50 G, und die Protokolldateien werden nach Überschreiten des Limits ausgerollt. Der gesamte Synchronisierungsprozess darf den MySQL-Geschäftsbetrieb nicht beeinträchtigen. 2 Technische GrundlagenDie LingBee-Datenintegrationssoftware BeeDI wird verwendet, um MySQL-Daten in Echtzeit mit Oracle zu synchronisieren, historische Daten vollständig über ETL zu synchronisieren und inkrementelle Daten in Echtzeit über Protokollanalyse zu synchronisieren. Aufgrund der Beschränkung des Protokollspeicherplatzes dauert es mehr als einen Tag, wenn alle historischen Daten auf einmal synchronisiert werden. Die während des vollständigen Synchronisierungsprozesses generierten Protokolle werden gelöscht, wodurch Daten für die Echtzeit-Protokollanalyseaufgabe fehlen. Daher müssen historische Daten stapelweise synchronisiert werden. Die grundlegenden Vorgänge sind wie folgt: a Teiltabellen vollständig synchronisieren. b. Fügen Sie die vollständig synchronisierte Tabelle zur Echtzeit-Protokollanalyseaufgabe hinzu und starten Sie die Aufgabe. Wenn die entsprechenden Tabellendaten in MySQL und Oracle konsistent sind, stoppen Sie die Protokollanalyseaufgabe. Wiederholen Sie die Schritte a und b, bis alle Tabellen zur Echtzeit-Protokollanalyseaufgabe hinzugefügt wurden. 3 MySQL-Umgebungskonfiguration3.1 Einen Benutzer anlegen Legen Sie in der Hauptdatenbank einen Synchronisationsbenutzer an. Am Beispiel der Benutzersynchronisation lauten die Anweisungen zum Anlegen des Benutzers und Zuweisen von Berechtigungen wie folgt: BENUTZER 'sync'@'%' ERSTELLEN, IDENTIFIZIERT DURCH 'xxxxx'; GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, REPLICATION SLAVE AUF *.* ZU 'sync'@'%'; 3.2 BinLog aktivieren Fragen Sie den Öffnungsstatus des Hauptdatenbankprotokolls und das Protokolldatensatzformat ab: Variablen wie „log_bin“ anzeigen; Variablen wie „%binlog_format%“ anzeigen; Wenn der Protokollstatus AUS ist oder das Protokollformat nicht ROW ist, bearbeiten Sie die Datei my.ini und legen Sie die folgenden Elemente fest: log-bin="xxxxxx" --Protokoll öffnen binlog_format="ROW" --Protokolldatensatzformat 4 BeeDI Synchronbetrieb4.1 Konfigurieren einer vollständigen Synchronisierungsaufgabe Erstellen Sie einen neuen ETL-Job in BeeDI und legen Sie in den Zuordnungseigenschaften im Dialogfeld „ETL-Vorlageneigenschaften“ die LOB-Ladung auf gebundenen Speicher fest. [LOB Load] wird verwendet, um die Oracle LOB-Datenlademethode anzugeben. Der Positionierungsspeicher aktualisiert den LOB-Inhalt durch Positionieren des LOB-Zeigers und der Bindungsspeicher aktualisiert den LOB-Inhalt durch Parameterbindung. Um die Leistung der Datenextraktion zu optimieren, wird empfohlen, den Extraktionsmodus [Asynchron] im Dialogfeld [Optionen] der Extraktionskomponente einzustellen. Um die Leistung beim Laden der Daten zu optimieren, wird empfohlen, im Dialogfeld „Optionen“ der Ladekomponente den Stapellademodus auszuwählen. Die vollständige Konfiguration der Synchronisierungsaufgabe wird wie folgt abgeschlossen Erstellen Sie gemäß der obigen Methode mehrere ETL-Jobs, von denen jeder einer Synchronisierungstabelle entspricht. 4.2 Konfigurieren von Aufgaben zur Echtzeitprotokollanalyse Die Echtzeitanalyse verwendet einen Skriptjob, in dem alle zu synchronisierenden Tabellen angegeben werden. Der Skriptcode lautet wie folgt 4.3 Vollständige Synchronisierungsaufgabe ausführen Wählen Sie den auszuführenden Vollsynchronisierungsauftrag aus und klicken Sie in der Symbolleiste auf die Schaltfläche [Start]. Sie können mehrere Vollsynchronisierungsaufträge gleichzeitig starten, solange die Ressourcen der Produktionsbibliothek und der Maschine, auf der sich BeeDI befindet, ausreichen. 4.4 Ausführen von Protokollanalyseaufgaben in Echtzeit Wenn alle vollständigen Synchronisierungsaufträge abgeschlossen sind, bearbeiten Sie das Echtzeit-Task-Skript und geben Sie die Tabellen an, die in der Variable cdc_tables vollständig synchronisiert wurden. Legen Sie den Startpunkt für die Protokollerfassung im Funktionsparameter inquireLog fest. Die Startzeit des ersten vollständigen Synchronisierungsauftrags kann als Startpunkt für die Protokollerfassung angegeben werden. Der Protokollerfassungspunkt muss nur einmal festgelegt werden, wenn die Aufgabe zum ersten Mal ausgeführt wird. Der Protokollerfassungspunkt wird automatisch verwaltet, wenn die Aufgabe später ausgeführt wird. Klicken Sie im Planungsfenster im Kontextmenü auf „Hinzufügen“, um den auszuführenden Echtzeit-Protokollanalysejob zu laden. Wählen Sie den Echtzeitjob im Planungsfenster aus, klicken Sie in der Symbolleiste auf die Schaltfläche „Timing“, legen Sie das Timing in Sekunden fest und stellen Sie den Ausführungszyklus auf 1 Sekunde ein. Nachdem die Echtzeitaufgabe ausgeführt wurde, werden die Informationen zur Protokollanalyse der MySQL-Datenbank im Protokollfenster ausgegeben, einschließlich der jede Minute gelesenen Protokolldatensätze und des aktuellsten Protokollanalysezeitpunkts. 4.5 Weitere Synchronisationstabellen hinzufügen Wenn der Jobstatus, der der Echtzeitaufgabe entspricht, häufig das Zeitsymbol anzeigt, bedeutet dies, dass die Aufgabe in den Echtzeitstatus gewechselt ist. Zu diesem Zeitpunkt sind die Daten der MySQL-Quelltabelle und der Oracle-Zieltabelle konsistent. Stoppen Sie die Echtzeit-Protokollanalyseaufgabe und konfigurieren Sie die vollständige Synchronisierungsaufgabe anderer Tabellen (siehe 4.1 und 4.3). Wenn die gesamte Aufgabe abgeschlossen ist, bearbeiten Sie die Aufgabe zur Echtzeit-Protokollanalyse, fügen Sie weitere Tabellen hinzu, die vollständig synchronisiert wurden, und starten Sie die Echtzeitaufgabe (siehe 4.2 und 4.4). 5. Überprüfen der Konsistenz der SynchronisierungsdatenFühren Sie select count(*) from [table] nacheinander in der Quelldatenbank und der Zieldatenbank aus, um zu vergleichen, ob die Anzahl der Tabellendatensätze gleich ist. Führen Sie „select sum([numeric column]) from [table]“ in der Quelldatenbank und der Zieldatenbank aus, um zu vergleichen, ob die arithmetische Summe der angegebenen Felder gleich ist. Dies ist das Ende dieses Artikels mit der detaillierten Erklärung der MySQL-Echtzeitsynchronisierungslösung mit Oracle. Weitere relevante Inhalte zur MySQL-Echtzeitsynchronisierung mit Oracle finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
>>: So konfigurieren Sie den Nginx-Lastausgleich
Inhaltsverzeichnis 1. Einführung in die Computert...
Wir verwenden normalerweise Float-Layout, um die ...
Einführung in die Umgebung: Ubuntu Server 16.04.2...
Idee: Einfach erst zufällig sortieren und dann gr...
Inhaltsverzeichnis Einführung 1. Code zum Starten...
Docker-Ansichtsprozess, Speicher, Cup-Verbrauch S...
1. Zeigen Sie die Dateien oder Verzeichnisse im V...
Frage Die Angabe des Typs der hochgeladenen Datei...
Es gibt zwei Möglichkeiten, .sh-Dateien im Linux-...
Inhaltsverzeichnis Vorwort 1. Vorschau der Office...
Sehen wir uns zunächst ein Beispiel für die Speic...
Inhaltsverzeichnis 1. Wie verwende ich Mixin? 2. ...
Es gibt zwei Möglichkeiten, nodejs unter Linux zu...
1. Schritte zur Installation des RPM-Pakets: 1. S...
Nachdem der Server, auf dem sich Docker befindet,...