phpbar.de logo

Mailinglisten-Archive

[php] OT? MySQL Backup auf WIN ?

[php] OT? MySQL Backup auf WIN ?

Kristian =?iso-8859-1?Q?K=F6hntopp?= kk_(at)_netuse.de
Thu, 02 Sep 1999 17:37:52 +0200


Cyrill Schumacher wrote:
> Schreibt mysqld erst beim runterfahren durch
> mysqladmin die Daten auf die Festplatte ?
> Falls das alles so ist, ist es witzlos jede Nacht
> einen Backup über das Verzeichnis, wo die
> Datenbanken drin liegen, laufen zu lassen....

In einem klassischen UNIX läuft in der Regel ein Hintergrundprozeß mit dem Namen "update". Dieses Programm sieht mehr oder weniger so aus:

main() {
  while(1) {
    sync();
    sleep(30);
  }
}

Das heißt, alle 30 Sekunden werden die Inhalte der Buffer-Caches auf die Platte gezwungen. Ein Programm kann für seine eigenen Filedescriptoren das auch anders erzwingen, siehe man 1 fsync. Jede gute Datenbank sollte das an strategischen Punkten auf tun und wenn man den mysqld mit truss oder strace beobachtet, kann man das auch beobachten (man muß nach dem Systemaufruf fcntl suchen, der mit dem Flag F_SETFL verwendet wird. fsync() ist eine Bibliotheksfunktion, die intern fcntl() verwendet).

root_(at)_shelley:~# truss -p 23764
[ ... ]
lwp_sema_v(0xEED39EA0)                          = 0
lwp_sema_p(0xEED39EA0)                          = 0
ioctl(6, I_FIND, "sockmod")                     = 1
fcntl(6, F_SETFL, 0x00000002)                   = 0
time()                                          = 936286315
alarm(28800)                                    = 28800
[ ... ]

Dies ist ein mysqld auf Solaris, der beobachtet wurde. Das fcntl(6, F_SETFL, ...)
ist ein fsync() bei der Arbeit. Ein MySQL schreibt die Daten also am Ende einer Transaktion auf die Platte.

> Sollte man stattdessen mit php ein automatisches
> backup schreiben, das die Daten aus der gesamten
> DB ausließt, wenn einer einen neuen Datensatz
> eingegeben wird, und dann als CSV auf
> der Festplatte "und im Streamer" speichert... ?

Einfacher und bequemer ist es, ein 

mysqldump -c -h host -u user -p password datenbank | gzip -9 > outfile.sql.gz 

zu machen und das dann zu sichern.

Kristian

-- 
Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00
Using PHP3? See our web development library at
http://phplib.shonline.de/ (GPL)


php::bar PHP Wiki   -   Listenarchive