Çalıştırılabilir dosyasını MySQL geri oluşturmak için?

5 Cevap php

Php, mysql kullanıyorum ve benim sunucu IIS6 Windows Server 2003.

Ben yedek saatlik bazda benim veritabanı planlıyorum. Ben bir günlük dosyasına yazma tarih ve zaman test cronjob, yapabilirsiniz. Bu mükemmel çalışır.

Şimdi ben yedekleme benim veritabanları için cronjob kullanmak istiyorum. Bunu nasıl yapabilirim? Bir php komut dosyası oluşturun ve her saat çalışmasına izin?

5 Cevap

Kullan mysqldump. Örnek (Ben genellikle kullanma seçenekleri ile):

mysqldump --single-transaction --hex-blob --opt -e --quick --quote-names -r put-your-backup-filename-here put-your-database-name-here

Başkaları yazdığınız gibi bile birlikte, büyük bir veritabanı varsa, mysqldump aracı, ancak basit bir çözümdür - hızlı ayar, sana bazı deney yapmak tavsiye ederim. Eski C-İSAM motoru ile, sorgular bir defada işlenir. Bu InnoDB ile bir sorun daha az olmasına rağmen, ben MySQL şimdi tam eşzamanlı sorguları destekler emin değilim. Yedekleme işlemsel işleme etkileyebilir.

Bir sorun olarak kanıtlamak değilse, o zaman bir Simpple çözüm ham veri dosyaları yedekleme sırasında geçici çalışma buna karşı mysqldump veya kapatma, sonra da ya aynı makinede köle çalışan veritabanının bir köle örneğini yapılandırmak olacaktır.

Alternatif işletim seviyesine kadar yansıtma itin ve bir disk düzeyinde anlık gerçekleştirebilir - ama veritabanı işlemleri durdurmak ve anlık oluşturarak (veya ayna kırma) önce bunu temizlemek gerekiyordu.

C.

, Windows yerleşik size yedeklemeler gerçekleştirmek için kullanabileceğiniz Task Scheduler hangi.

Bir dosyaya veritabanı dökümünü almak için mysqldump aracını kullanın.

Edit: Bu komut Unix (veya türevleri) için tasarlanmıştır.

Ben (yedek bir e-posta gönderme ve hem de benim kodu / sayfalarını arşivleme dahil) aynı yapmak istedim ve böyle bir şey yazdı:

#! /bin/bash

NOW=`date +"%Y-%m-%d"`
MAIL_TO="email@example.com";
MAIL_SUBJECT="Hourly backup"
MAIL_MESSAGE="mail-message";

DB_FILE="backup-database-$NOW.sql.gz"
SITE_FILE="website-$NOW.tar.gz"

echo "Database dump:" >> $MAIL_MESSAGE
mysqldump --defaults-extra-file=.mysql-pwd --add-drop-table -C my_databse 2>> $MAIL_MESSAGE | gzip > $DB_FILE 2>> $MAIL_MESSAGE

echo "Site dump (www and php-include):" >> $MAIL_MESSAGE
tar -zcf $SITE_FILE /path/to/www/ /path/to/php-include/ 2>> $MAIL_MESSAGE

echo >> $MAIL_MESSAGE
echo >> $MAIL_MESSAGE
echo "Done" >> $MAIL_MESSAGE

mutt -s "$MAIL_SUBJECT" -a $DB_FILE -a $SITE_FILE $MAIL_TO < $MAIL_MESSAGE