Sv translation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IntroductionThis page describes the process of rebuilding a Rebuild Slave-DB & ReplicationDa der Befehl mysqldump die Tables locked, ist es nicht notwendig, dass auf der Master Datenbank kein Traffic ist. Durch . Since the MySQL Dump command locks the tables, there is no need to create it when there is no traffic on the machine. It can be done during operational hours. With --master-data wird im Befehl mysqldump die richtige Position zum Einsetzen der Replication auf dem Slave Server hinterlegt. Falls die Festplatte des Slaves voll ist, dann bitte die Anleitung auf dieser Seite weiter unten - "Slave Platte Voll" betrachten.
Hierzu eine kurze Erklärung:
Verwende hierfür das Tool deiner Wahl: Kommandozeile (scp), WinSCP, ...
Slave Platte VollEs gibt diverse Gründe, warum die Slave Platte voll-laufen kann. tmp Verzeichnis ist vollHintergrundJedes Mal, wenn eine Query eine tmp Tabelle anlegt, wird dies in das temp Verzeichnis, üblicherweise /tmp geschrieben. Dies geschieht dann, wenn die maximale Größe der maximale "in Memory" Tabellengröße überschritten wird.Dies wird mit den Variablen Siehe auch https://dev.mysql.com/doc/refman/5.6/en/internal-temporary-tables.html für mehr Information. Die Tabellen in /tmp werden solange gehalten, bis die jeweilige DB-Verbindung geschlossen wird, oder ein DROP TEMPORARY TABLE aufgerufen wird. Falls das /tmp Verzeichnis voll-läuft, ist zu vermuten dass ein DROP TEMPORARY TABLE irgendwo fehlt. Dies kann durchaus auch durch Kunden-Abfragen an die DB geschehen. Aushilfe auf permanente Weise schafft hier die Installation von tmpwatch Hinweise:
Vorgehensweise
Jede Menge "relay Logs" vorhandenMySQL schreibt die Relay-Logs vom Master erstmal in eine Datei. Wenn die Replikation erstmal gebrochen ist, aber der Slave Relay Prozess weiter arbeitet, dann wird die Platte durch Relay Logs befüllt. Dieser Schritt sollte im jeden Fall durchgeführt werden, insbesondere vor dem nächsten (ibdata zu groß), um Platz zu schaffen. VorgehensweiseDie Dateien für die Datenbank befinden sich in der Regel in /var/lib/mysql Falls nicht, dann ist der Speicherort in /etc/my.cnf zu finden. Der Entsprechende Eintrag ist datadir=(pfad)
ibdata Dateien auf den Slave "Riesen-Groß"Die Dateien für die Datenbank befinden sich in der Regel in /var/lib/mysql Auf Grund von nicht klar dokumentierte MySQL internas, kann die Datei /var/lib/mysql/ibdata1 eine riesige Größe annehmen im Vergleich zu der Master Datenbank. Um dies zu bereinigen, muss man etwas härter vorgehen. Vorgehensweise
Trotzdem kein Plattenplatz > 20% FreiIn diesen Fall ist der Slave einfach zu klein. Die Festplatte muss erweitert werden (wie bei Erweiterung der Rolle STORE, nur auf das Logical Volume anwenden auf den die Daten der MySQL Datenbank sich befinden). Dann die Schritte wieder durchführen, bei Platte zu Klein, dann Slave wieder herstellen wie Oben beschrieben. Oder der Slave wird komplett neu gebaut mit einer größeren Platte. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sv translation | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
the command mysqldump stores the correct position for inserting the replication on the slave server.
Step-By-Step Guide
STOP SLAVELogin to the Slave Database MySQL and stop the slave SQL. Leave MySQL again afterwards. Use the following commands for this:
Phase 1 - MySQL DumpA MySQL Dump of the master database is now created. Perform the following steps to create a MySQL Dump and save it to the STORE:
jtel Portal software release
Create Backup Directory
Create MySQL Dump
To Check for MySQL Version, log in to the master database server and execute the following command
MySQL Dump - Until jtel Portal release 3.12
MySQL Dump - From jtel Portal release 3.12 until 3.31
MySQL Dump - From Release 3.32
MySQL Dump - From MySQL 8.0.27
Brief Explanation of the mysqldump command
Phase 2 - Import Dump on Slave Database
Import Dump - tmux
Import Dump - No tmux
Check statusYou can check the progress by executing the following command on acd-dbs
Start Slave - tmux
Start Slave - No tmux
Slave Disk FullThere are several reasons why the slave disk can become full. Following is a summary of the different cases and further below is a detailed explanation:
tmp Directory Is FullIntroductionEvery time a query creates a tmp table, it is written to the temp directory, usually /tmp. This happens when the maximum size exceeds the maximum "in memory" table size. This is defined with the variables The tables in /tmp are kept until the respective DB connection is closed or a DROP TEMPORARY TABLE is called. If the /tmp directory is full, it is likely that a DROP TEMPORARY TABLE is missing somewhere. This can also happen through customer queries to the DB. The installation of tmpwatch creates help in a permanent way Hints:
Procedure
Lots of "relay logs" availableIntroductionMySQL first writes the relay logs from the master to a file. Once replication is interrupted, but the slave relay process continues to operate, the disk is filled by relay logs. This step should be done in any case, especially before the next one (ibdata too large) to make room. ProcedureThe files for the database are usually located in /var/lib/mysql If not, the location can be found in /etc/my.cnf The corresponding entry is datadir=(pfad) Delete all relay logs:
Rebuild Slave-DB & Replication Da der Befehl mysqldump die Tables locked, ist es nicht notwendig, dass auf der Master Datenbank kein Traffic ist. Durch --master-data wird im Befehl mysqldump die richtige Position zum Einsetzen der Replication auf dem Slave Server hinterlegt. Falls die Festplatte des Slaves voll ist, dann bitte die Anleitung auf dieser Seite weiter unten - "Slave Platte Voll" betrachten.
Hierzu eine kurze Erklärung:
Verwende hierfür das Tool deiner Wahl: Kommandozeile (scp), WinSCP, ...
Slave Platte VollEs gibt diverse Gründe, warum die Slave Platte voll-laufen kann. tmp Verzeichnis ist vollHintergrundJedes Mal, wenn eine Query eine tmp Tabelle anlegt, wird dies in das temp Verzeichnis, üblicherweise /tmp geschrieben. Dies geschieht dann, wenn die maximale Größe der maximale "in Memory" Tabellengröße überschritten wird.Dies wird mit den Variablen Siehe auch https://dev.mysql.com/doc/refman/5.6/en/internal-temporary-tables.html für mehr Information. Die Tabellen in /tmp werden solange gehalten, bis die jeweilige DB-Verbindung geschlossen wird, oder ein DROP TEMPORARY TABLE aufgerufen wird. Falls das /tmp Verzeichnis voll-läuft, ist zu vermuten dass ein DROP TEMPORARY TABLE irgendwo fehlt. Dies kann durchaus auch durch Kunden-Abfragen an die DB geschehen. Aushilfe auf permanente Weise schafft hier die Installation von tmpwatch Hinweise:
Vorgehensweise
Jede Menge "relay Logs" vorhandenMySQL schreibt die Relay-Logs vom Master erstmal in eine Datei. Wenn die Replikation erstmal gebrochen ist, aber der Slave Relay Prozess weiter arbeitet, dann wird die Platte durch Relay Logs befüllt. Dieser Schritt sollte im jeden Fall durchgeführt werden, insbesondere vor dem nächsten (ibdata zu groß), um Platz zu schaffen. VorgehensweiseDie Dateien für die Datenbank befinden sich in der Regel in /var/lib/mysql Falls nicht, dann ist der Speicherort in /etc/my.cnf zu finden. Der Entsprechende Eintrag ist datadir=(pfad) Alle Relay Logs löschen:
Restart MySQL Dienst neustartenservice
ibdata Dateien auf den Slave "Riesen-Groß"Die Dateien für die Datenbank befinden sich in der Regel inIf enough space is available (at least 20%) then proceed with the slave recovery as described above. ibdata files on the slave "very large"IntroductionThe files for the database are usually located in /var/lib/mysql Auf Grund von nicht klar dokumentierteDue to not clearly documented MySQL internas, kann die Datei the file /var/lib/mysql/ibdata1 eine riesige Größe annehmen im Vergleich zu der Master Datenbank.Um dies zu bereinigen, muss man etwas härter vorgehen. Vorgehensweise
can be huge compared to the master database. To remedy this, you have to proceed a little more rigorously. ProcedureIf no less than 100% disk can be achieved by the steps above: Unsubscribe the MySQL service from the autostart:
Restart the computer with :
Only works if less than 100% disk is reached (possibly after reboot above) then Log on to the mysql server:
Drop all JTEL databases:
mysql -u root -p SET
Press CTRL+ C wieder auf die Kommandozeile, und dann:service mysqld stop rm C to return to the command line, and then
Start MySql Server starten, und ggf. wieder enablenservice mysqld start service mysqld enable Trotzdem kein Plattenplatz > 20% FreiIn diesen Fall ist der Slave einfach zu klein. Die Festplatte muss erweitert werden (wie bei Erweiterung der Rolle STORE, nur auf das Logical Volume anwenden auf den die Daten der MySQL Datenbank sich befinden). Dann die Schritte wieder durchführen, bei Platte zu Klein, dann Slave wieder herstellen wie Oben beschrieben. Oder der Slave wird komplett neu gebaut mit einer größeren Platte., and enable it again if necessary:
Check disk space, and proceed with Slave Restore as described above. Still no disk space > 20% freeIntroductionThe slave disk space is still full, more than 80% of the space on the drive is used by normal operation SolutionIn this case the slave is simply too small. The hard disk must be expanded (as with extending the STORE role, apply only to the logical volume where the MySQL database data resides). Then perform the steps again, if the disk is too small, then restore the slave as described above. Or the slave is completely rebuilt with a larger plate. |
Sv translation | ||
---|---|---|
| ||
Sv translation | ||
---|---|---|
| ||