[Eisfair] E1: MYSQL: Datenbank-Speicherort
Marcus Roeckrath
marcus.roeckrath at gmx.de
Di Nov 4 20:20:44 CET 2014
Hallo Holger,
Holger Bruenjes wrote:
>> Das ist nicht das Problem, sondern dass die owncloud Datenbank eben
>> gerade nicht in einem Unterverzeichnis von mysql liegt.
>
> hmm, wenn ich da so drueber nachdenke ;-)
>
> MySQL legt die Datenbanken immer in seinem Pfad ab, so wie er in
> my.cnf deklariert ist.
>
> z.b.
> datadir = /var/lib/mysql
Nein, das ist gerade dass, was ich sagen will.
Ich habe auf einem System die Datenbank einiger Datenbankanwendungen
unter /var/lib/mysql/<datenbank> (pro Datenbanktabelle einzelne
Datenbankdateien), während ownclouds Datenbank (alle Tabellen und Indizes)
in /var/lib/mysql/ibdata1 liegen.
Habe dazu etwas im WWW gefunden; es liegt am verwendeten Enginetyp; die
MYD/MYI der anderen Datenbanken stammen von einem andern Enginetyp:
You can separate Data and Index Pages from ibdata1 by enabling
innodb_file_per_table. This will cause any newly created InnoDB table to
store data and index pages in an external .ibd file.
Example
datadir is /var/lib/mysql
CREATE TABLE mydb.mytable (...) ENGINE=InnoDB;,
creates /var/lib/mysql/mydb/mytable.frm
innodb_file_per_table enabled, Data/Index Pages Stored
in /var/lib/mysql/mydb/mytable.ibd
innodb_file_per_table disabled, Data/Index Pages Stored in ibdata1
Das blöde daran ist nur, dass Datenbanken damit über den backup-Mechanismus,
wie er in unserer Konfiguration vorliegt, gesichert werden.
Für owncload werden somit nur die frm-Dateien gebackuped
(in /var/lib/mysql_backup), aber nicht die Daten selbst.
--
Gruss Marcus
Mehr Informationen über die Mailingliste Eisfair