Die InnoDB-Dateien waren eine schwierigere Aufgabe, und das bin ich auch
schreibe diesen Beitrag. Es fiel mir schwer herauszufinden, wie ich es machen sollte, aber ich
genügend Informationen zusammengestellt, um die Aufgabe zu erfüllen. Nun, in einem
Ich werde Ihnen genau erklären, was ich getan habe, um es zu bekommen
restauriert.
In unseren Backups hatten wir folgende Dateien:
\MySQL\MySQL Server 4.1\data\ibdata1
\MySQL\MySQL Server 4.1\data\ib_logfile0
\MySQL\MySQL Server 4.1\data\ib_logfile1
Außerdem befand sich im Datenordner ein Ordner mit dem Namen des
Datenbank, die ich wiederherstellte, enthielt *.frm
Dateien
( table_name.frm
).
Ich habe die Wiederherstellung auf meinem Entwicklungscomputer durchgeführt und nicht auf dem eigentlichen
Server, weil ich nicht vermasseln wollte, was auf dem Server lief
Server. Ich hatte bereits MySQL von einer XAMPP-Installation installiert. (Meine
Entwicklungsbox läuft unter Windows XP SP2). XAMPP installiert MySQL a
etwas anders als die reguläre MySQL-Installation, also wenn es hilft
Folgen Sie dem, was ich hier gemacht habe. Vielleicht möchten Sie es installieren.
Ich habe meinen MySQL-Dienst zuerst über die XAMPP-Systemsteuerung gestoppt.
Ich habe die oben aufgelisteten Dateien verschoben ( ib*
Dateien und den Ordner mit
das *.frm
Dateien) in den lokalen MySQL-Datenordner ( C:\Program Files\xampp\mysql\data
).
Ich habe dann bearbeitet my.cnf
(gelegen in C:\Program Files\xampp\mysql\bin
)
und nahm die folgenden Änderungen vor (beginnend mit Zeile 66 für mich):
ALT:
skip-innodb
#innodb_data_home_dir = C:/Program Files/xampp/mysql/data/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = C:/Program Files/xampp/mysql/data/
#innodb_log_arch_dir = C:/Program Files/xampp/mysql/data/
#set-variable = innodb_buffer_pool_size=16M
#set-variable = innodb_additional_mem_pool_size=2M
#set-variable = innodb_log_file_size=5M
#set-variable = innodb_log_buffer_size=8M
#innodb_flush_log_at_trx_commit=1
#set-variable = innodb_lock_wait_timeout=5
NEU:
#skip-innodb
innodb_data_home_dir = C:/Program Files/xampp/mysql/data/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = C:/Program Files/xampp/mysql/data/
innodb_log_arch_dir = C:/Program Files/xampp/mysql/data/
set-variable = innodb_buffer_pool_size=16M
set-variable = innodb_additional_mem_pool_size=2M
set-variable = innodb_log_file_size=170M
set-variable = innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
set-variable = innodb_lock_wait_timeout=50
(Ich musste innodb_log_file_size auf die tatsächliche Größe meiner Protokolldatei einstellen.)
Ich habe dann die XAMPP-Batchdatei bearbeitet, mit der der MySQL-Dienst gestartet wird
( C:\Program Files\xampp\mysql_start.bat
). Ich fügte hinzu –innodb_force_recovery=6
bis zum Ende des Aufrufs an mysqld. Also Zeile 8
von dieser Datei lesen Sie jetzt:
mysql\bin\mysqld –defaults-file=mysql\bin\my.cnf –standalone –console –innodb_force_recovery=6
Das hat den Trick gemacht! Meine Datenbanken wurden auf meinem Computer wiederhergestellt. ich benutzte SQLyog einen SQL-Dump machen
der Datenbank, um es auf unserem Produktionsserver wiederherzustellen.
Quelle