User Tools

Site Tools


mysql:replication

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
mysql:replication [2022/02/07 14:57] – [Vorbereiten des Slaves] stonemysql:replication [2022/12/06 14:59] (current) stone
Line 22: Line 22:
 </code> </code>
 Manche Einstellungen sollten natürlich angepasst werden. Manche Einstellungen sollten natürlich angepasst werden.
 +\\
 \\ \\
 Danach muss ein User angelegt werden am Master. Danach muss ein User angelegt werden am Master.
 +\\
 +Als IP wird die Source IP vom Slave genommen.
 <code> <code>
 mysql -u root mysql -u root
-GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'192.168.0.2' IDENTIFIED BY 'password';+ 
 +CREATE USER 'repl'@'192.168.10.28' IDENTIFIED BY 'password'; 
 +GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'192.168.10.28'
 +FLUSH PRIVILEGES;
 </code> </code>
  
Line 49: Line 55:
 bind-address = 192.168.0.1 bind-address = 192.168.0.1
 read_only = 1 read_only = 1
 +super_read_only = 1
 +</code>
 +\\
 +
 +Überprüfen ob die RO Flags auch ziehen:
 +<code>
 +show global variables like '%read_only%';
 </code> </code>
 \\ \\
Line 62: Line 75:
  
 <code> <code>
 +mysqldump --all-databases --allow-keywords --single-transaction --quote-names --flush-logs --source-data=2 -r /root/mysqldump.sql
 +
 +Bei ältern DBs muss der Parameter --source-data gegen --master-data ersetztn werden
 mysqldump --all-databases --allow-keywords --single-transaction --quote-names --flush-logs --master-data=2 -r /root/mysqldump.sql mysqldump --all-databases --allow-keywords --single-transaction --quote-names --flush-logs --master-data=2 -r /root/mysqldump.sql
 +</code>
 +\\
 +
 +==== Backup auf dem Master und scp ====
 +Hier ein Beispiel wie man den Dump gleich auf den Slave weiter schieben kann via SCP. \\
 +Ich verwende hier zusätzlich noch das Tool pv um mir einen Status anzeigen zu lassen.
 +\\
 +\\
 +Ohne gzip
 +<code>
 +mysqldump --all-databases --allow-keywords --single-transaction --quote-names --flush-logs --source-data=2 | pv | ssh root@<IP> 'cat > <path>/masterdump.sql'
 +</code>
 +\\
 +
 +Mit gzip
 +<code>
 +mysqldump --all-databases --allow-keywords --single-transaction --quote-names --flush-logs --source-data=2 | pv | gzip -9 -c | ssh root@<IP> 'cat > <path>/masterdump.sql.gz'
 </code> </code>
 \\ \\
Line 73: Line 106:
 SHOW VARIABLES like '%sync%'; SHOW VARIABLES like '%sync%';
 </code> </code>
 +\\
 \\ \\
  
-Daten importieren+Daten importieren einfach ohne gzip
 <code> <code>
 cat /root/mysqldump.sql | mysql -u root cat /root/mysqldump.sql | mysql -u root
 +</code>
 +\\
 +\\
 +
 +Import von gzip Daten
 +<code>
 +zcat /path/to/file.sql.gz | mysql -u 'root' 
 +</code>
 +\\
 +\\
 +
 +Import von gzip Daten mittels pv
 +<code>
 +pv masterdump.sql.gz | gunzip | mysql -u root
 +</code>
 +\\
 +
 +
 +
 +
 +Progress der Datenübernahme
 +<code>
 +watch -n 5 'echo "show processlist;" | mysql -uroot' ;
 </code> </code>
 \\ \\
Line 157: Line 214:
 \\ \\
  
 +==== Server UUID ändern ====
 +Oft liegt unter /etc/mysql oder /var/lib/mysql ein File mit dem Namen "auto.cnf".
 +\\
 +Dieses muss gelöscht werden und der Service neu gestartet.
 +<code>
 +rm /var/lib/mysql/auto.cnf
 +systemctl restart mysql.service
 +</code>
 +\\
 ===== Slave Wiederaufbau ===== ===== Slave Wiederaufbau =====
 Funktioniert die Replikation warum auch immer nicht mehr kann man den Slave wenn die Logfiles am Master noch verfügbar sind so wieder aufbauen Funktioniert die Replikation warum auch immer nicht mehr kann man den Slave wenn die Logfiles am Master noch verfügbar sind so wieder aufbauen
Line 180: Line 246:
 start slave start slave
 </code> </code>
 +\\
 +
 +===== Manueler Logswitch =====
 +
 +Mit diesem Befehl wird das aktuell Binlog geswitch auf das nächste.\\
 +Befehl muss auf der Master DB abgesetzt werden.
 +<code>
 +FLUSH BINARY LOGS;
 +</code>
 +
 +
  
 \\ \\
Line 266: Line 343:
 SHOW VARIABLES like 'expire%'; SHOW VARIABLES like 'expire%';
 </code> </code>
 +\\
 +
  
  
mysql/replication.1644245853.txt.gz · Last modified: by stone