Differences between revisions 4 and 5
Revision 4 as of 2011-06-24 17:12:50
Size: 2535
Comment:
Revision 5 as of 2011-11-21 19:01:53
Size: 3722
Comment:
Deletions are marked like this. Additions are marked like this.
Line 16: Line 16:
=== Restore === === Restore von MyISAM Datenbanken ===

 * erfolgt auf dem mysql Server durch einfaches Umkopieren der Dumpfiles in das Datenbankverzeichnis
 * die Dumpfiles müssen vom Backup geholt werden, wenn die aktuellen (nächtlichen) Dumps zu neu sind
 * danach sollten fehlende Transaktionslogs appliziert werden, um die DB zu einem exakten Zeitpunkt zu restaurieren
 * der mysql Server ist dazu zu stoppen
 * die aktuelle Datenbank wird überschrieben und kann nicht wieder hergestellt werden

{{{
   # entweder im Backup vorhandene Dumps anzeigen, <datenbankname> ist durch DB name zu ersetzen
   dsmc q b -inactive -sub=yes /var/lib/mysql/dumps/<datenbankname>
   # und restore der Dumps nach /tmp (statt <mm/dd/yy> gewünschtes Datum einsetzen)
   cd /tmp
   dsmc rest -inactive -pitdate=<mm/dd/yy> "/var/lib/mysql/dumps/<datenbankname>/*" -sub=yes
   # oder alternativ letzten Dump zum restaurieren benutzen
   cd ~mysql/dumps
   # Rückkopieren der Dumps
   service mysql stop
   cp -a <datenbankname> ~mysql/mysqldb
   service mysql start
   # Anwenden zusätzlicher Transaktionslogs mit mysqlbinlog, falls exakter Zeitpunkt gewünscht
}}}

=== Restore von InnoDB Datenbanken ===

MySQL

MySQL Backup

  • -> feature mysql

  • Script /var/lib/mysql/mysql_backups verwendet für

  • mysql_backups kennt die Optionen -n (Anzeige der Kommandos) -m (nur MyISAM DB backup) -i (nur InnoDB backup)

  • schreibt die Dumps ins Verzeichnis /var/lib/mysql/dumps
  • Logfile in /var/log/mysqlbackup
  • ist eine innodb Tabelle vorhanden, wird diese Datenbank mit innobackupex gesichert

  • noaction Modus: /var/lib/mysql/mysql_backups -n

  • /var/lib/mysql/mysql_backups -i sichert nur innodb DBs

Restore von MyISAM Datenbanken

  • erfolgt auf dem mysql Server durch einfaches Umkopieren der Dumpfiles in das Datenbankverzeichnis
  • die Dumpfiles müssen vom Backup geholt werden, wenn die aktuellen (nächtlichen) Dumps zu neu sind
  • danach sollten fehlende Transaktionslogs appliziert werden, um die DB zu einem exakten Zeitpunkt zu restaurieren
  • der mysql Server ist dazu zu stoppen
  • die aktuelle Datenbank wird überschrieben und kann nicht wieder hergestellt werden

   # entweder im Backup vorhandene Dumps anzeigen, <datenbankname> ist durch DB name zu ersetzen
   dsmc q b -inactive -sub=yes /var/lib/mysql/dumps/<datenbankname>
   # und restore der Dumps nach /tmp (statt <mm/dd/yy> gewünschtes Datum einsetzen)
   cd /tmp
   dsmc rest -inactive -pitdate=<mm/dd/yy> "/var/lib/mysql/dumps/<datenbankname>/*" -sub=yes
   # oder alternativ letzten Dump zum restaurieren benutzen
   cd ~mysql/dumps
   # Rückkopieren der Dumps
   service mysql stop
   cp -a <datenbankname> ~mysql/mysqldb
   service mysql start
   # Anwenden zusätzlicher Transaktionslogs mit mysqlbinlog, falls exakter Zeitpunkt gewünscht

Restore von InnoDB Datenbanken

  • sollte auf test mysql server erfolgen
  • man kann nicht eine innodb Datenbank zurückspeichern
  • deshalb
    • Backup /var/lib/mysql/dumps/innodb/innodb.tar.gz vom gewünschten Datum aus Backup holen und auspacken
    • Transaktionslog applizieren
    • Testserver stoppen,
    • Umkopieren, Rechte und SELinux Attribute anpassen
    • Testerver starten
    • evtl. Änderungen vom binlog des Zielservers anwenden
    • Datenbank dumpen
    • File im Ziel MySQL Server anwenden

  tar -tizvf /var/lib/mysql/dumps/innodb/innodb.tar.gz
  mkdir /tmp/innodb
  cd /tmp/innodb
  tar -xizvf /var/lib/mysql/dumps/innodb/innodb.tar.gz # bzw. vom TSM recoverten File
  # Abfrage mit dsmc q b -inactive -su=yes /var/lib/mysql/dumps/innodb/innodb.tar.gz
  innobackupex --defaults-file=/root/.myxtrabackup.conf --apply-log /tmp/innodb
  # auf Test-server:
  service mysqld stop
  # ibdata und DB Files nach ~mysql/mysqldb kopieren:

drwxr-xr-x 2 root  root      4096 Jun 24 15:55 cecdb
drwxr-xr-x 2 root  root      4096 Jun 24 15:55 cecdb2
-rw-r--r-- 1 root  root   5242880 Jun 24 15:57 ib_logfile0
-rw-r--r-- 1 root  root   5242880 Jun 24 15:56 ib_logfile1
-rw-rw---- 1 mysql mysql 10485760 Jun 24 15:57 ibdata1

  # auf Test-Server:
  service mysqld start
  # auf dem Ziel-Server für gewünschte Binlogs (evtl. auch aus Backup holen)
  mysqlbinlog ~mysql/binlogs/binlog.000008 >/tmp/statements.sql
  mysqlbinlog ~mysql/binlogs/binlog.000009 >>/tmp/statements.sql
  ...
  # /tmp/statements auf Test-Server kopieren und anwenden
  mysql -e "source /tmp/statements.sql"
  # Dump auf Test-server erstellen
  mysqldump --opt  <database> >/tmp/db.dump
  # Datenbank auf Zielserver aus dem Dump neu erzeugen
  mysql  < /tmp/db.dump

MySQL (last edited 2017-05-23 11:21:59 by FabianKrack)