537
Comment:
|
2535
|
Deletions are marked like this. | Additions are marked like this. |
Line 12: | Line 12: |
* 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 === * 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
MySQL Backup
-> feature mysql
Script /var/lib/mysql/mysql_backups verwendet für
- MyISAM Tabellen: hotcopy
- Innodb Tabellen: innobackupex (script, ruft xtrabackup)
wird als rpm installiert, zu finden unter http://ideenschmiede.lotum.de/2010/09/mysql-backups-mit-xtrabackup/
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
- 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