Discussion:
Datenbank verkleinern ?
(zu alt für eine Antwort)
Dieter Hummel
2009-06-23 14:37:44 UTC
Permalink
Hallo NG,

habe hier MySQL 5.0.41, InnoDB , Windows XP Prof. mit der ich viel
teste. Also Tabellen anlege, lösche, Daten anlege, lösche.

Aber wenn ich Tabellen/Daten lösche, ein OPTIMIZE TABLE durchführe, den
MYSQL-Dienst neu starte oder den Rechner mit der Datenbank neu starte,
verkleinert sich die Datenbankdatei auf der Platte nicht.

Warum ?
Oder welche Befehle (sql) gibt es sonst noch um die
Datei zu verkleinern ?



Danke und Gruß
Dieter
Claus Reibenstein
2009-06-23 16:45:25 UTC
Permalink
habe hier MySQL 5.0.41, InnoDB [...]
Aber wenn ich Tabellen/Daten lösche, ein OPTIMIZE TABLE durchführe, den
MYSQL-Dienst neu starte oder den Rechner mit der Datenbank neu starte,
verkleinert sich die Datenbankdatei auf der Platte nicht.
Warum ?
Weil das bei InnoDB nun mal so ist. Der einzige Weg, InnoDB-Dateien zu
verkleinern, ist, sie neu anzulegen.

Steht übrigens auch in den FAQ auf der MySQL-Webseite:
<http://lists.mysql.com/mysql/145065>

Gruß. Claus
Dieter Hummel
2009-06-24 06:43:23 UTC
Permalink
Post by Claus Reibenstein
habe hier MySQL 5.0.41, InnoDB [...]
Aber wenn ich Tabellen/Daten lösche, ein OPTIMIZE TABLE durchführe, den
MYSQL-Dienst neu starte oder den Rechner mit der Datenbank neu starte,
verkleinert sich die Datenbankdatei auf der Platte nicht.
Warum ?
Weil das bei InnoDB nun mal so ist. Der einzige Weg, InnoDB-Dateien zu
verkleinern, ist, sie neu anzulegen.
Das heißt:
Sicherung erstellen, Datenbank löschen, MySQL beenden, Datenbankdatei
auf Platte löschen, MySQL starten, Sicherung einlesen, Fertig.

Standardmäßig wurden bei der Installation ein Schema
"information_schema" und ein Schema "mysql" mit diversen Tabellen
angelegt. Diese wären dann vermutlich auch weg, oder ?
Werden diese überhaupt benötigt ?
Post by Claus Reibenstein
<http://lists.mysql.com/mysql/145065>
Gruß. Claus
Danke und Gruß
Dieter
Claus Reibenstein
2009-06-24 08:01:10 UTC
Permalink
Post by Dieter Hummel
Post by Claus Reibenstein
Der einzige Weg, InnoDB-Dateien zu
verkleinern, ist, sie neu anzulegen.
Sicherung erstellen, Datenbank löschen, MySQL beenden, Datenbankdatei
auf Platte löschen, MySQL starten, Sicherung einlesen, Fertig.
Richtig.
Post by Dieter Hummel
Standardmäßig wurden bei der Installation ein Schema
"information_schema" und ein Schema "mysql" mit diversen Tabellen
angelegt. Diese wären dann vermutlich auch weg, oder ?
Das sind keine InnoDB-Datenbanken. Die sind davon also nicht betroffen.
Post by Dieter Hummel
Werden diese überhaupt benötigt ?
Allerdings werden die benötigt! Ohne die läuft gar nichts.

Gruß. Claus

PS: Du plenkst. Vor Fragezeichen kommt kein Leerzeichen.
Dieter Hummel
2009-06-26 06:04:01 UTC
Permalink
Post by Claus Reibenstein
Post by Dieter Hummel
Post by Claus Reibenstein
Der einzige Weg, InnoDB-Dateien zu
verkleinern, ist, sie neu anzulegen.
Sicherung erstellen, Datenbank löschen, MySQL beenden, Datenbankdatei
auf Platte löschen, MySQL starten, Sicherung einlesen, Fertig.
Richtig.
Post by Dieter Hummel
Standardmäßig wurden bei der Installation ein Schema
"information_schema" und ein Schema "mysql" mit diversen Tabellen
angelegt. Diese wären dann vermutlich auch weg, oder ?
Das sind keine InnoDB-Datenbanken. Die sind davon also nicht betroffen.
Post by Dieter Hummel
Werden diese überhaupt benötigt ?
Allerdings werden die benötigt! Ohne die läuft gar nichts.
Gruß. Claus
PS: Du plenkst. Vor Fragezeichen kommt kein Leerzeichen.
Danke,

das mit den Leerzeichen vergisst man ab und zu mal.
Dieter Hummel
2009-07-21 09:09:58 UTC
Permalink
Post by Claus Reibenstein
Post by Dieter Hummel
Post by Claus Reibenstein
Der einzige Weg, InnoDB-Dateien zu
verkleinern, ist, sie neu anzulegen.
Sicherung erstellen, Datenbank löschen, MySQL beenden, Datenbankdatei
auf Platte löschen, MySQL starten, Sicherung einlesen, Fertig.
Richtig.
Muss leider noch einmal fragen.

Habe folgendes mit MySQL Administrator durchgeführt
ibdata1 entfernt
Dienst beendet
Datei ibdata1 auf Platte entfernt
Datenfile hinzugefügt
Dienst starten
Fehler: Server could not be started
Die Datei ibdata1 wurde aber auf der Platte angelegt.

Eintrag in my.ini
innodb_data_file_path=ibdata1:50M:autoextend


Warum wird der Dienst nicht mehr gestartet?

Gruß
Dieter
Axel Schwenke
2009-07-21 09:29:41 UTC
Permalink
Post by Dieter Hummel
Post by Dieter Hummel
Post by Claus Reibenstein
Der einzige Weg, InnoDB-Dateien zu
verkleinern, ist, sie neu anzulegen.
Sicherung erstellen, Datenbank löschen, MySQL beenden, Datenbankdatei
auf Platte löschen, MySQL starten, Sicherung einlesen, Fertig.
Habe folgendes mit MySQL Administrator durchgeführt
ibdata1 entfernt
Dienst beendet
Datei ibdata1 auf Platte entfernt
Was wo wie entfernt?

0. Backup machen mit mysqldump
1. DROP TABLE/DROP DATABASE bis alle InnoDB-Tabellen weg sind
2. MySQL Server stoppen
3. alle ibdata* und ib_log* Files löschen
4. notwendige Änderungen in my.cnf vornehmen
5. MySQL Server starten
6. Backup wieder einspielen
Post by Dieter Hummel
Dienst starten
Fehler: Server could not be started
Möglicherweise ein Timeout. Der MySQL-Server scheint tot zu sein,
wenn InnoDB die Daten-/Logfiles initialisiert.

Schau ins MySQL-Errorlog. Da steht alles notwendige drin.


XL
Dieter Hummel
2009-07-21 10:33:21 UTC
Permalink
Post by Axel Schwenke
Post by Dieter Hummel
Post by Dieter Hummel
Post by Claus Reibenstein
Der einzige Weg, InnoDB-Dateien zu
verkleinern, ist, sie neu anzulegen.
Sicherung erstellen, Datenbank löschen, MySQL beenden, Datenbankdatei
auf Platte löschen, MySQL starten, Sicherung einlesen, Fertig.
Habe folgendes mit MySQL Administrator durchgeführt
ibdata1 entfernt
Dienst beendet
Datei ibdata1 auf Platte entfernt
Was wo wie entfernt?
0. Backup machen mit mysqldump
1. DROP TABLE/DROP DATABASE bis alle InnoDB-Tabellen weg sind
2. MySQL Server stoppen
3. alle ibdata* und ib_log* Files löschen
habe die log-Files nicht gelöscht. Das war das Problem.
Jetzt klappts.


Danke

Axel Schwenke
2009-06-24 08:41:36 UTC
Permalink
Post by Dieter Hummel
Post by Claus Reibenstein
Der einzige Weg, InnoDB-Dateien zu
verkleinern, ist, sie neu anzulegen.
Sicherung erstellen, Datenbank löschen, MySQL beenden, Datenbankdatei
auf Platte löschen, MySQL starten, Sicherung einlesen, Fertig.
So in etwa. Kommt natürlich drauf an, was du mit "Datenbank löschen"
*genau* meinst. Im Prinzip reicht es, alle InnoDB-Tabellen zu dumpen
und zu droppen.
Post by Dieter Hummel
Standardmäßig wurden bei der Installation ein Schema
"information_schema" und ein Schema "mysql" mit diversen Tabellen
angelegt. Diese wären dann vermutlich auch weg, oder ?
Werden diese überhaupt benötigt ?
INFORMATION_SCHEMA ist ein virtuelles Schema, das kannst du gar nicht
löschen. Und was die `mysql` Datenbank ist, das steht im Handbuch.
Aber glaub mir, die willst du nicht löschen. Nicht solange du Fragen
stellst wie oben.


XL
Dieter Hummel
2009-06-26 06:04:17 UTC
Permalink
Post by Axel Schwenke
Post by Dieter Hummel
Post by Claus Reibenstein
Der einzige Weg, InnoDB-Dateien zu
verkleinern, ist, sie neu anzulegen.
Sicherung erstellen, Datenbank löschen, MySQL beenden, Datenbankdatei
auf Platte löschen, MySQL starten, Sicherung einlesen, Fertig.
So in etwa. Kommt natürlich drauf an, was du mit "Datenbank löschen"
*genau* meinst. Im Prinzip reicht es, alle InnoDB-Tabellen zu dumpen
und zu droppen.
Post by Dieter Hummel
Standardmäßig wurden bei der Installation ein Schema
"information_schema" und ein Schema "mysql" mit diversen Tabellen
angelegt. Diese wären dann vermutlich auch weg, oder ?
Werden diese überhaupt benötigt ?
INFORMATION_SCHEMA ist ein virtuelles Schema, das kannst du gar nicht
löschen. Und was die `mysql` Datenbank ist, das steht im Handbuch.
Aber glaub mir, die willst du nicht löschen. Nicht solange du Fragen
stellst wie oben.
XL
Danke.
Axel Schwenke
2009-06-23 17:31:42 UTC
Permalink
Post by Dieter Hummel
habe hier MySQL 5.0.41, InnoDB , Windows XP Prof. mit der ich viel
teste. Also Tabellen anlege, lösche, Daten anlege, lösche.
Aber wenn ich Tabellen/Daten lösche, ein OPTIMIZE TABLE durchführe, den
MYSQL-Dienst neu starte oder den Rechner mit der Datenbank neu starte,
verkleinert sich die Datenbankdatei auf der Platte nicht.
Warum ?
Weil es so im Handbuch steht.
Post by Dieter Hummel
Oder welche Befehle (sql) gibt es sonst noch um die
Datei zu verkleinern ?
Das steht auch im Handbuch. Eventuell möchtest du auch
--innodb-file-per-table konfigurieren. Was das macht?

Steht
.
.
.
.
.
genau!
.
.
.
.
.
im Handbuch!


XL
Loading...