Benutzer-Werkzeuge

Webseiten-Werkzeuge


percona_xtrabackup

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
percona_xtrabackup [2025-05-13 15:53:37] – [Allgemeines] manfredpercona_xtrabackup [2025-05-13 16:25:07] (aktuell) – [Allgemeines] manfred
Zeile 1: Zeile 1:
 +====== Percona xtrabackup ======
 +
 +
 +===== Allgemeines =====
 +
 +<code bash xtrabackup gibt die "Defaults" aus>
 +root@host01:~# xtrabackup --defaults-file=/etc/mysql/my.cnf --print-defaults | sed 's/[ ][-][-]/\n--/g'
 +...
 +--datadir=/var/lib/mysql
 +--socket=/var/run/mysqld/mysqld.sock
 +...
 +</code>
 +
 +<code bash xtrabackup legt eine Kopie vom DataDir im PWD an>
 +root@host01:~# xtrabackup --datadir=/var/lib/mysql/ --socket /var/run/mysqld/mysqld.sock --backup --galera-info --parallel 4
 +</code>
 +
 +<code bash 1. socat+xbstream auf dem Empfänger starten "host02">
 +root@host02:~# cd /var/lib/mysql/
 +root@host02:/var/lib/mysql# rm -fr *
 +root@host02:/var/lib/mysql# socat - TCP-LISTEN:12345 | xbstream -vx
 +</code>
 +
 +<code bash 2. xtrabackup auf dem Sender starten "host01">
 +root@host01:~# xtrabackup --datadir=/var/lib/mysql/ --socket /var/run/mysqld/mysqld.sock --backup --galera-info --parallel 4 --stream=xbstream | socat - TCP:host02:12345
 +</code>
 +
 +<code bash 3. prepare auf "host02">
 +# prepare the backup on db2
 +root@host02:~# xtrabackup --prepare --target-dir=/var/lib/mysql/
 +</code>
 +
 +<code bash 4. grastate.dat generieren auf "host02">
 +# recreate the grastate.dat file using the GTID in xtrabackup_galera_info file.
 +root@host02:/var/lib/mysql# echo "uuid: $(cat xtrabackup_galera_info)" > grastate.dat
 +root@host02:/var/lib/mysql# echo "safe_to_bootstrap: 0" >> grastate.dat
 +root@host02:/var/lib/mysql# cat grastate.dat
 +</code>
 +
 +<code bash 5. BIN-LOG-Dateien, an den richtigen Ort, verschieben>
 +root@host02:/var/lib/mysql/port_13319/datadir# mv -v mysql-bin.* ../log_bin/
 +renamed 'mysql-bin.000007' -> '../log_bin/mysql-bin.000007'
 +renamed 'mysql-bin.index' -> '../log_bin/mysql-bin.index'
 +</code>
 +
 +<code bash 6. alte Dateien löschen>
 +root@host02:/var/lib/mysql# rm backup-my.cnf xtrabackup_*
 +</code>
 +
 +<code bash 7. Rechte>
 +root@host02:~# chown -R mysql:mysql /var/lib/mysql/
 +root@host02:~# ls -lha /var/lib/mysql/
 +</code>
 +
 +
 +===== xtrabackup installieren =====
 +
 +Da xtrabackup kein Bestandteil von Ubuntu ist, muß das Percona-Repository eingebunden werden.
 +\\ //(Muß es sowieso, da eteleon den mySQL-Fork "Percona Server" verwendet.)//
 +
 +
 +== Percona GPG-Key ===
 +
 +Um die Authentizität der Percona-Pakete zu verifizieren benötig aptitude deren öffentlichen GPG-Schlüssel.
 +\\ [[http://www.percona.com/downloads/RPM-GPG-KEY-percona]]
 +
 +<file bash RPM-GPG-KEY-percona>
 +-----BEGIN PGP PUBLIC KEY BLOCK-----
 +Version: GnuPG v1.4.9 (GNU/Linux)
 +
 +mQGiBEsm3aERBACyB1E9ixebIMRGtmD45c6c/wi2IVIa6O3G1f6cyHH4ump6ejOi
 +AX63hhEs4MUCGO7KnON1hpjuNN7MQZtGTJC0iX97X2Mk+IwB1KmBYN9sS/OqhA5C
 +itj2RAkug4PFHR9dy21v0flj66KjBS3GpuOadpcrZ/k0g7Zi6t7kDWV0hwCgxCa2
 +f/ESC2MN3q3j9hfMTBhhDCsD/3+iOxtDAUlPMIH50MdK5yqagdj8V/sxaHJ5u/zw
 +YQunRlhB9f9QUFfhfnjRn8wjeYasMARDctCde5nbx3Pc+nRIXoB4D1Z1ZxRzR/lb
 +7S4i8KRr9xhommFnDv/egkx+7X1aFp1f2wN2DQ4ecGF4EAAVHwFz8H4eQgsbLsa6
 +7DV3BACj1cBwCf8tckWsvFtQfCP4CiBB50Ku49MU2Nfwq7durfIiePF4IIYRDZgg
 +kHKSfP3oUZBGJx00BujtTobERraaV7lIRIwETZao76MqGt9K1uIqw4NT/jAbi9ce
 +rFaOmAkaujbcB11HYIyjtkAGq9mXxaVqCC3RPWGr+fqAx/akBLQ2UGVyY29uYSBN
 +eVNRTCBEZXZlbG9wbWVudCBUZWFtIDxteXNxbC1kZXZAcGVyY29uYS5jb20+iGAE
 +ExECACAFAksm3aECGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAcTL3NzS79
 +Kpk/AKCQKSEgwX9r8jR+6tAnCVpzyUFOQwCfX+fw3OAoYeFZB3eu2oT8OBTiVYu5
 +Ag0ESybdoRAIAKKUV8rbqlB8qwZdWlmrwQqg3o7OpoAJ53/QOIySDmqy5TmNEPLm
 +lHkwGqEqfbFYoTbOCEEJi2yFLg9UJCSBM/sfPaqb2jGP7fc0nZBgUBnFuA9USX72
 +O0PzVAF7rCnWaIz76iY+AMI6xKeRy91TxYo/yenF1nRSJ+rExwlPcHgI685GNuFG
 +chAExMTgbnoPx1ka1Vqbe6iza+FnJq3f4p9luGbZdSParGdlKhGqvVUJ3FLeLTqt
 +caOn5cN2ZsdakE07GzdSktVtdYPT5BNMKgOAxhXKy11IPLj2Z5C33iVYSXjpTelJ
 +b2qHvcg9XDMhmYJyE3O4AWFh2no3Jf4ypIcABA0IAJO8ms9ov6bFqFTqA0UW2gWQ
 +cKFN4Q6NPV6IW0rV61ONLUc0VFXvYDtwsRbUmUYkB/L/R9fHj4lRUDbGEQrLCoE+
 +/HyYvr2rxP94PT6Bkjk/aiCCPAKZRj5CFUKRpShfDIiow9qxtqv7yVd514Qqmjb4
 +eEihtcjltGAoS54+6C3lbjrHUQhLwPGqlAh8uZKzfSZq0C06kTxiEqsG6VDDYWy6
 +L7qaMwOqWdQtdekKiCk8w/FoovsMYED2qlWEt0i52G+0CjoRFx2zNsN3v4dWiIhk
 +ZSL00Mx+g3NA7pQ1Yo5Vhok034mP8L2fBLhhWaK3LG63jYvd0HLkUFhNG+xjkpeI
 +SQQYEQIACQUCSybdoQIbDAAKCRAcTL3NzS79KlacAJ0aAkBQapIaHNvmAhtVjLPN
 +wke4ZgCePe3sPPF49lBal7QaYPdjqapa1SQ=
 +=qcCk
 +-----END PGP PUBLIC KEY BLOCK-----
 +</file>
 +
 +
 +== GPG-Key importieren ==
 +
 +Schlüssel importieren:
 +  # gpg --import RPM-GPG-KEY-percona
 +  # gpg -a --export CD2EFD2A | apt-key add -
 +
 +Schlüssel Aptitude bekanntmachen
 +  # aptitude update
 +
 +
 +== Repository einbinden ==
 +
 +Und folgendes einfügen:
 +  # echo "deb http://repo.percona.com/apt lucid main" >>  /etc/apt/sources.list.d/percona.list
 +  # echo "deb-src http://repo.percona.com/apt lucid main" >>  /etc/apt/sources.list.d/percona.list
 +
 +Aptitude mit neuem Repo bekanntmachen
 +  # aptitude update
 +
 +
 +== xtrabackup installieren ==
 +
 +  # aptitude install xtrabackup
 +
 +
 +===== xtrabackup einsetzen =====
 +
 +Dump schreiben:
 +  # innobackupex --stream=tar ./ | gzip -1 > db.tar.gz
 +
 +Dump wieder einspielen:
 +  # /etc/init.d/mysql stop
 +  # cd /var/lib/mysql
 +  # tar xvfzi /root/db.tar.gz
 +  # innobackupex --use-memory=1G --apply-log --ibbackup xtrabackup ./
 +  # chown -R mysql:mysql *
 +  # /etc/init.d/mysql start
 +
 +
 +=== /etc/cron.d/xdump ===
 +
 +  PATH="/usr/sbin:/usr/bin:/sbin:/bin"
 +  
 +  # Xtra-Backup
 +  0 1   * * *   root    /root/bin/xdump.sh
 +
 +
 +=== /root/bin/xdump.sh ===
 +
 +Dieses Skript wird vom Backup-Server aus aufgerufen.
 +
 +  #!/bin/bash
 +  
 +  PATH="/usr/sbin:/usr/bin:/sbin:/bin"
 +  BACKUPPFAD="/data/BACKUP"
 +  WOCHENTAG="$(date +%u_%H)"
 +  
 +  ### Diese Datei muss auf dem DB-Host liegen, sonst funktioniert das Backup nicht
 +  #------------------------------------------------------------------------------#
 +  ### cat /root/.my.cnf 
 +  # # Automatically generated for Debian scripts. DO NOT TOUCH!
 +  # [client]
 +  # host     = localhost
 +  # user     = root
 +  # password = 'geheim'
 +  # socket   = /var/run/mysqld/mysqld.sock
 +  #------------------------------------------------------------------------------#
 +  
 +  
 +  # Xtra-Backup
 +  
 +  if [ -d ${BACKUPPFAD} ] ; then
 +        ssh root@xdb01 'innobackupex --slave-info --stream=tar ./ 2>/var/log/xdump.log | gzip -9' > ${BACKUPPFAD}/xdb01_${WOCHENTAG}.tgz
 +        scp root@xdb01:/var/log/xdump.log ${BACKUPPFAD}/
 +  fi
 +