Alte MySQL datenbank retten

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
mario9000
Beiträge: 15
Registriert: 28.04.2010 20:58:57

Alte MySQL datenbank retten

Beitrag von mario9000 » 05.05.2011 22:10:19

Ich bekomme meinen alten Server nicht mehr zum laufen daher habe ich alle Dateien von /var/lib/mysql/dsl auf meinen neuen kopiert aber das hat wohl nicht ganz geklappt.

Code: Alles auswählen

mysql> show tables;
+------------------+
| Tables_in_dsl    |
+------------------+
| dns_rr           |
| dns_soa          |
| dslam            |
| dyn_dns          |
| eth              |
| klassen          |
| link             |
| mail_domains     |
| mail_forwardings |
| mail_transport   |
| mail_user        |
| platz            |
| ppp              |
| schuler          |
| sitzung          |
| tag              |
| voip             |
+------------------+
17 rows in set (0.00 sec)

mysql> select * from ppp;
ERROR 1146 (42S02): Table 'dsl.ppp' doesn't exist
Weiß jemand wie ich die Daten noch retten kann?

Benutzeravatar
schorsch_76
Beiträge: 2630
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: Alte MySQL datenbank retten

Beitrag von schorsch_76 » 05.05.2011 22:39:06

Falls der alte Server noch mysql deamon am laufen hat (aber der rest nicht geht) am besten per mysqldump das Zeug rausziehen.
Falls das nicht geht, vom alten server das ganze /var/lib/mysql Verzeichnis kopieren, wenn der mysqld _NICHT_ läuft und auf den neuen Server packen wenn der dortige mysqld _NICHT_ läuft. Wenn du nur das Unterverzeichnis kopiert hast weis der neue mysqld nichts von deiner DB.

Auf dem neuen Server würde ich folgendes versuchen um die Daten zu retten:
a) Vorher den aktuellen Zustand irgendwohin sichern. (Verzeichnis /var/lib/mysql kopieren, wenn der mysqld _NICHT_ läuft).
b) Eine Analyse/Reparatur von mysql machen lassen. [1]
c) Einen export mit mysqldump machen und dann wieder importieren.
d) Falls du einfach die Verzeichniusse kopiert hast, kann es afaik auch sein, dass es einfach eine Rechte Geschichte ist. (GRANT ALL PRIVILEGES ON oder Filesystemrechte).
e) Einen der älteren dumps verwenden (falls existiert). Die werden bei mir via logrotate täglich erstellt. (mysql und postgresql)

Falls die Daten "Missioncritical" sind, kannst du auch professionelle Hilfe für Datenrettung in Anspruch nehmen (kostet natürlich). Mysql bzw jetzt Oracle bietet afaik auf kommerziellen Support an.

Viel Erfolg
schorsch

[1] http://dev.mysql.com/doc/refman/5.1/de/mysqlcheck.html

Benutzeravatar
mario9000
Beiträge: 15
Registriert: 28.04.2010 20:58:57

Re: Alte MySQL datenbank retten

Beitrag von mario9000 » 05.05.2011 22:58:34

Mit den rechten ist es weniger affig als man denk. ich hab ne halbe Stunde gebracht um herauszufindenden das MySQL die Daten nicht lesen kann da root der Besitzer ist....

Beim reparieren kommt auch immer "Table 'dsl.voip' doesn't exist"

Da ich das ganze root-Verzeichnis habe wollte ich es mal mit chroot versuchen. Aber das wäre ja zu einfach.

Code: Alles auswählen

root@internet:~# chroot /media/test/
root@internet:/# /etc/init.d/mysql start
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql start

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the start(8) utility, e.g. start mysql
start: Job failed to start
root@internet:/# 

Benutzeravatar
schorsch_76
Beiträge: 2630
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: Alte MySQL datenbank retten

Beitrag von schorsch_76 » 05.05.2011 23:23:17

mario9000 hat geschrieben:...

Code: Alles auswählen

start: Job failed to start
root@internet:/# 
Und was sagt das log?

Benutzeravatar
FANA
Beiträge: 482
Registriert: 30.03.2005 17:50:55

Re: Alte MySQL datenbank retten

Beitrag von FANA » 06.05.2011 01:00:21

Welche Storage Engine benutzt du? Wenn InnoDB, dann sind deine Daten in /var/lib/mysql/ibdata1. In /var/lib/mysql/dsl liegt nur das Schema. Du brauchst beides. Und achte darauf, dass die Daten alle dem User gehören, unter dem dein MySQL Daemon läuft

Benutzeravatar
mario9000
Beiträge: 15
Registriert: 28.04.2010 20:58:57

Re: Alte MySQL datenbank retten

Beitrag von mario9000 » 06.05.2011 08:46:03

das Problem war wirklich /var/lib/mysql/ibdata1. Jetzt klappt auch mysqldump.

Danke.

Antworten