dedlfix: UPDATE

Beitrag lesen

Tach!

Unter der Woche kann ich meinem Hoster ein Ticket schreiben und innerhalv von Minuten ist die alte DB wieder eingespielt. Ich habe derzeit 2,5 Millionen Einträge in der Datenbank. Das Einspielen von Hand ist leider nicht mehr möglich. Und ich weiß nicht was ist, wenn ich eine Kopie wieder rückgängig machen muss.

Wenn du nach Bestätigung der Richtigkeit der Syntax das Statement losschickst, ohne eine Sicherung zu haben, dann kann dir das System unter Umständen trotzdem um die Ohren fliegen. Du hast nur eine Aussage eines Außenstehenden, der dein System nicht kennt. Deswegen ist es wichtig, auch in einem solchen Fall lieber einen Test zu fahren.

Mit Kopieren meine ich nicht, einen Dump zu ziehen. Den möchtest du ja aus bestimmen Gründen (zu groß) nicht. Eine Kopie legt eine neue Tabelle direkt mit in der Datenbank ab. Solange da kein Speicherplatz-Limit zuschlägt, ist das die einfachste Möglichkeit, eine Testmöglichkeit zu schaffen. Zu Fuß geht das so:

CREATE TABLE kopie SELECT * FROM original

Im phpMyAdmin versteckt sich diese Funktionalität unter Operations / Operationen. Dort kann man auch zwischen Datenbanken kopieren, so dass du dir auch eine Test-Datenbank neu anlegen kannst.

Über dieses Kopieren kannst du dir auch einfach eine Sicherung anlegen, die du im Falle eines Falles zurückkopieren oder umbennen kannst.

Problematischer ist die Geschichte übrigens, wenn als Storage-Engine InnoDB und Foreign Keys verwendet wurden. Da sollte man dann langsam nicht mehr ohne Erfahrungen am Produktivsystem rumwerkeln.

dedlfix.