[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [1/2 OT] MySQL Storage Files



On Wed, Feb 16, 2005 at 07:56:37PM +0100, Peter Blancke wrote:
> Andreas Brandl <debian-mailinglist@andreas-brandl.de> dixit:
> 
> > Ich hab hier ne relativ große mySQL-Datenbank (ca. 700 MB) und
> > muss sie umziehen.

gut das da 'relativ' steht ;)
 
> Der Umzug darf nicht binaer erfolgen; 

Was ist denn das für eine falsche Aussage? Das stimmt nicht, nachzulesen
unter dev.mysql.com

> fuehre folglich mit mysqldump
> einen SQL-Dump Deiner Datenbank(en) durch. Dieser Dump laesst sich
> dann entsprechend komprimieren und auf den neuen Server verfrachten.

Das ist eine Möglichkeit, hat aber auch einen Nachteil: der Dump macht
sehr viel overhead und er dauert länger als ein binäres Kopieren. Bei
Gewährleistung der Datenkonsistenz bedeutet das ein umfangreicheres
Wartungsfenster. Ein weiterer Nachteil bei Änderung des DB-Release ist,
dass sein Dump eventuell nicht mehr so einfach eingespielt werden kann,
weil neue Keywords nicht escaped werden.

> Wenn Du an die Binaerdateien herangehst, kann eine andere Version
> von mySQL bereits den Tod Deiner Datenbank bedeuten.

_Kann_, deswegen löscht man ja die alte DB nicht sofort ;)
Probleme gibt es hauptsächlich bei
a) der Systemdatenbank MySQL
b) bei downgrades der MySQL-Version
c) bei großen Systemsprüngen, wobei bei meinen Migrationen auch 3er auf
   4.0er so problemlos transferiert werden konnten.
   
> Wenn Du die
> Binaerdateien bei laufendem SQL-Server kopierst, bist Du Deine Daten
> ohnehin so gut wie los.

OK, das macht man nicht, aber auch das ist falsch. Ein FLUSH hilft den
cache zu leeren. Danache ein LOCK, oder kurz den client deaktivieren
(Apache oder whatever). Es ist halt nicht immer möglich, den DB-Server
anzuhalten.

> > Besonderer Augenmerk gilt hier diesen Files:
> > #sql-316_b7.MYD
> > #sql-316_b7.MYI
> > #sql-31b_4ea.MYD
> > 
> > Die kommen mir a) neu vor, b) finde ich keine Info dazu und c)
> > sind die ziemlich groß.
> 
> Du suchst Grundlagen ueber Binary-Trees in Datenbanken und deren
> Ablage in Dateien. 

Warum nicht einfacher, offizielle Erklärung von MySQL AB
"MySQL legt jede Datenbank als Verzeichnis unterhalb des MySQL-data-
Verzeichnisses an und Tabellen innerhalb einer Datenbank als Dateien in
dem Datenbank-Verzeichnis. "

Auch wenn es schwer zu glauben ist, heißen Tabellen des OP "sql-316_b7"
oder "sql-31b_4ea".

> Die Groesse dieser Dateien hat nichts gemeinsam mit den eigentlichen 
> von Dir dort hineingefuetterten Daten.

Soll das heißen, dass die größe nicht _identisch_ ist, mit den
ursprünglich an die DB übergebene Datenmenge? Weil, die Größe dieser
Dateien ist ja sehr wohl davon abhängig, ob und welche Daten er in den
Tabellen speichert.

-- 
  ,''`.     Hagen Kuehnel - http://HagK.de
 : :'  :    Kopierschutz: Alle Texte sind mit Double-ROT13 verschlüsselt. UrhG §95d
 `. `'`     Die Umgehung des Kopierschutzes stellt eine Straftat dar. UrhG §95a
   `- 



Reply to: