Backup mittels mysqldump

MySQL, PostgreSQL, SQLite
krusty007
Posts: 28
Joined: 2006-02-23 15:00
Location: Eifel

Backup mittels mysqldump

Post by krusty007 » 2006-03-07 14:34

Hi community,

habe mir folgenden Befehl zusammengestrickt um ein Vollbackup meiner Datenbank zu machen. Jetzt bin ich mir bei einer "Variablen" nicht sicher ob ich Sie verwenden kann, muss, sollte. [--disable-keys]

Code: Select all

 mysqldump -u root -ppassword --skip-opt --single-transaction --add-drop-table --create-options --quick --extended-insert --set-charset --disable-keys datenbank > datenbank_backup_2006-03-07.sql
Vielleicht sollte ich noch anmerken das es sich bei der Datenbank bzw. bei den Tabellen um InnoDB Tabellentypen handelt. Wenn ich es richtig verstanden habe, sollte der Befehl --single-transaction dafür sorgen, das die Tabellen nicht gesprerrt werden. Stimmt das so? Und ist der Befehl so wie ich Ihn oben angegeben habe richtig? Habt ihr vielleicht noch einen Verbesserungsvorschlag?

User avatar
isotopp
Posts: 471
Joined: 2003-08-21 10:21
Location: Berlin

Re: Backup mittels mysqldump

Post by isotopp » 2006-03-09 09:06

krusty007 wrote:habe mir folgenden Befehl zusammengestrickt um ein Vollbackup meiner Datenbank zu machen. Jetzt bin ich mir bei einer "Variablen" nicht sicher ob ich Sie verwenden kann, muss, sollte. [--disable-keys]

Code: Select all

 mysqldump -u root -ppassword --skip-opt --single-transaction --add-drop-table --create-options --quick --extended-insert --set-charset --disable-keys datenbank > datenbank_backup_2006-03-07.sql
Vielleicht sollte ich noch anmerken das es sich bei der Datenbank bzw. bei den Tabellen um InnoDB Tabellentypen handelt. Wenn ich es richtig verstanden habe, sollte der Befehl --single-transaction dafür sorgen, das die Tabellen nicht gesprerrt werden. Stimmt das so? Und ist der Befehl so wie ich Ihn oben angegeben habe richtig? Habt ihr vielleicht noch einen Verbesserungsvorschlag?
Man will einfach "--opt" verwenden um das Format zu bestimmen.

Vor einem Backup will man das Binlog flushen, und nach dem Backup alle alten Binlogs löschen. Mit "--flush-logs" und "--delete-master-logs" bekommst Du dieses Verhalten.

Wenn Du nur und ausschließlich InnoDB verwendest, kannst Du "--single-transaction" verwenden, ansonsten mußt Du "--lock-all-tables" nehmen.

Schließlich willst Du außerdem noch mit dem Backup eine Binlog-Position assoziieren, damit nach einen Restore ein Roll-Forward möglich ist. Dazu muß "--master-data" angegeben sein.

Alles zusammen ist also "mysqldump --flush-logs --master-data --single-transaction --opt --delete-master-logs datenbank"