ibdata files

Remidemi

Remidemi

Routinier
Hallo

In unserer my.cnf steht:
innodb_data_file_path = ibdata1:4G;ibdata2:4G;ibdata3:4G;ibdata4:4G

Heißt dass die Maximale größe der Datenbanken auf diesem Host 4*4 = 16 GB beträgt ?

Ermittle ich die Größe aller Datebanken mit:
Code:
SELECT round( sum( data_length + index_length ) /1024 /1024 /1024, 4 )  FROM information_schema.tables;
Dann komme ich auf ca. 21 GB. Wie kann das sein?
Was hat es mit den ibdata files auf sich?
Wie groß dürfen die ibdata files sein? Ist die größe Abhängig von OS und Architektur?
 
Die Größen-Vorgabe im Parameter innodb_data_file_path sind lediglich die Start-Werte. Die Dateien werden vorab auf diese Größe "aufgepumpt" um spätere Festplatten-Aktionen (u.a. erstellen von inodes) zu reduzieren. Es hat auch den Vorteil, dass man meist eine unfraqmentierte Datei hat, welche dadurch schnellere Zugriffe erreichen kann.
Wird im Laufe der Zeit mehr Speicher benötigt, vergrößern sich die Dateien automatisch.

Siehe auch Doku: http://dev.mysql.com/doc/refman/5.1/de/innodb-configuration.html

huschi.
 
Hi Huschi

Danke für deine Teilnahme.

Wo steht, dass die files sich automatisch erweitern? Das tun die doch nur mit dem Konfig Zusatz autoextend. Oder ?
 
Zitat aus der o.g. Doku:
Code:
innodb_data_file_path=ibdata1:10M:autoextend
Diese Einstellung konfiguriert eine einzige 10MB große Datendatei namens ibdata1, die sich selbsttätig erweitert.

/edit (weil zu schnell auf "Antworten" geklickt)
Es steht nicht explizit in der Doku, aber "autoextend" wird (zumindest nach meiner Beobachtung) immer angenommen. Außer es ist mit "max" ein definitives Limit gesetzt.

Aber verrate uns doch bitte, wie groß Deine ibdata-Dateien geworden sind?


/Noch ein edit:
Ist die größe Abhängig von OS und Architektur?
In erster Linie vom Filesystem. Es gibt - soweit ich mich entsinne - keine Einschränkungen durch die Architektur.

huschi.
 
Zuletzt bearbeitet:
HI

Wie ermittle ich die Tatsächliche ibdata größe? Mir ist nur der Select von oben bekannt und da komme ich auf ca 21 GB.
 
Code:
ls -l /var/lib/mysql/ibdata*
(Oder wo auch immer Dein MySQL-Daten-Pfad liegt, siehe MySQL-Variable 'datadir'.)

huschi.
 
Hab grad noch etwas rum experimentiert. Deine Berechnung zeigt definitiv größere Werte an.
Wenn musst Du (table_rows * avg_row_length) nehmen. Denn data_length ist deutlich größer.
Und Du musst natürlich die Berechnung natürlich über die InnoDB-Tabellen einschränken: WHERE engine='InnoDB'
Sonst zählst Du auch die MyISAM und sonstigen Tabellen mit.

huschi.
 
Hi

Ein ls -l wird mir nicht viel bringen. Die Datendatei wird von Beginn an auf die Größe auf die sie Konfiguriert ist aufgepumpt.

Dein Tipp mit der engine = innodb ist gut, dass muss natürlich rein. Jetzt stellt sich noch die Frage nach der richtigen Formel...

In der Mysql Doku steht auch nur:
Ermitteln Sie die Größe der Datendatei, runden Sie sie auf das nächste Vielfache von 1024 × 1024 bytes (= 1MB) ab ...
aber keine Spur einer Formel.
 
Ein ls -l wird mir nicht viel bringen. Die Datendatei wird von Beginn an auf die Größe auf die sie Konfiguriert ist aufgepumpt.
Aber Du willst doch wissen, ob sie gewachsen sind, oder nicht?

In der Mysql Doku steht auch nur: aber keine Spur einer Formel.
"Dateidatei" ist die reale Datei(en). Da braucht es doch keine Formel?
Oder willst Du auf etwas ganz anderes hinaus? Sprich: Was willst Du wirklich wissen?

huschi.
 
Sie können nicht wachsen da ich kein autoextend verwende.

Schlicht und Einfach möchte ich wissen wieviel Platz noch in der Datendatei ist.
 
Was spricht gegen:
Code:
SELECT round( sum( data_length + index_length ) /1024 /1024 /1024, 4 )  FROM information_schema.tables WHERE engine='InnoDB';
oder
Code:
SELECT round( sum( (table_rows * avg_row_length) + index_length ) /1024 /1024 /1024, 4 )  FROM information_schema.tables WHERE engine='InnoDB';

huschi.
 
Hi

Ok wenn dass tatsächlich die Vorgehensweise ist hat ja nur das where gefehlt.

Danke!
 

Ähnliche Themen

JBidWatcher: Problem bei loading Auctions in Verbindung mit mySQL

CentOS 6.3 RADIUS - Keine Verbindung möglich

Server will nicht in die Domain

Rollei Mini Wifi Camcorder

Displayport + externer Monitor zeigt bei startx nichts erst bei DVI

Zurück
Oben