Czy istnieje sposób na automatyczne tworzenie kopii zapasowych bazy danych MySQL o określonych porach dnia dla wyznaczonych serwerów lub wysłanie wiadomości e-mail z załącznikiem. Czy uważasz, że jest to najlepszy i najbezpieczniejszy sposób? osiągnąć to?Kopia zapasowa bazy danych MySQL automatycznie na serwerze Windows
Odpowiedz
Chciałbym użyć Windows Task Scehduler/cron (w zależności od systemu) i mysqldump. Przewiń w dół link, zawiera kilka wskazówek, jak osiągnąć to, co chcesz.
Tak, wydaje się, że ten link zawiera wszystkie informacje, których potrzebuję, mam nadzieję, że mogę je połączyć. Dziękuję bardzo, Martin.i Jak korzystać z programu do planowania zadań systemu Windows na serwerze? – Coderwannabe
Harmonogram zadań na serwerze Windows jest prawie taki sam jak na stacji roboczej. Jeśli nie czujesz się z tym dobrze, możesz uzyskać lepsze odpowiedzi na stronie http://superuser.com/ lub http://serverfault.com/. Jeśli uważasz, że moja odpowiedź pomogła ci rozwiązać twój problem, zaakceptowanie go byłoby dla ciebie życzliwe. – martin
można dodać jeden z tych poleceń do Windows task scheduler
:
mysqldump –-user [username] –-password=[password] [database name] > [dump file]
lub w zwarty sposób:
mysqldump –u[username] –p[password] [database name] > [dump file]
czyli
mysqldump -u[user] -p[password] --result-file="c:\<path>\backup.%DATE:~0,3%.sql" [database]
Najlepszym sposobem na to byłoby
mysqldump.exe --user=YourUserName --password=YourPassword --host=localhost --port=3306 --result-file="Path\dump.sql" --databases "DatabaseName1" "Database2"
mysqldump.exe --user=root --password=root --host=localhost --port=3306 --result-file="c:\www\db\backup.%date:~10,4%%date:~7,2%%date:~4,2%.sql" --default-character-set=utf8 --single-transaction=TRUE --databases "dbtest1" "dbtest2"
Wzór backup.%date:~10,4%%date:~7,2%%date:~4,2%.sql
stworzy unikalną nazwę (backup20131010.sql
) za każdym razem, to będzie działać
Teraz wystarczy zadzwonić do tego polecenia w swojej harmonogramu zadań. to jest to! :)
Dzięki formatowi daty @Tarun nie można odczytać w jaki sposób można zmienić format YYYY-MM_DD? –
kopia zapasowa.% Data: ~ 10,4 %% - data: ~ 4,2% _ data: ~ 7,2 %%. Sql @MohammadFaizanKhan nadzieję, że to pomoże. –
dzięki! Cóż, znalazłem już to, ale jeszcze raz dziękuję –
databaseW.2016,06,29-22,31,48-15.sql
@echo off
rem Backup Database (Daily,via Task Scheduler)
rem databaseW
set filename="c:\xampp\dbk\databaseW.%date:~6,4%,%date:~0,2%,%date:~3,2%-%time:~0,2%,%time:~3,2%,%time:~6,2%-%time:~9,2%.sql"
c:\xampp\mysql\bin\mysqldump.exe --user=root [email protected] --host=localhost --port=3306 --result-file=%filename% --default-character-set=utf8 --single-transaction=TRUE --databases "databaseW"
Aby utworzyć plik, którego nazwa jest na podstawie daty i czasu, należy %date%
i %time%
. Uwaga że 2 zmienne są na podstawie ustawień regionalnych i cmd powłoki wersji
- otworzyć CMD okien
- wejście
echo %time%
iecho %date%
kopalnia22:11:16.80
,06/29/2016 Wed
- substr zmienną poprzez
%variable:~startpos,length%
Chcę czas rozdzielany przecinkiem, więc cmd przechodzi naecho %time:~0,2%,%time:~3,2%,%time:~6,2%,%time:~9,2%
- , aby uzyskać nazwę pliku, taką jak
databaseW.2016,06,29-22,31,48-15.sql
Zastosowanieset filename="databaseW.%date:~6,4%,%date:~0,2%,%date:~3,2%-%time:~0,2%,%time:~3,2%,%time:~6,2%-%time:~9,2%.sql"
- Sprawdź
date
itime
z góry - użyć opcji zamiast
>
--result-file
; Zgodnie z Mysql Manuel, charset pliku zapisywane za pomocą „>” jestUTF-16
, natomiast--result-file
następuje po--default-character-set
- zapisać do pliku
BackpDay-databaseW.cmd
- dodać go do nowego zadania
Action
i ustawić wyzwalacz (Windows Task Scheduler)
Możesz użyć MySQLBackupFTP, aby wykonać kopię zapasową baz danych MySQL i ustawić harmonogram według potrzeb. Ponadto to narzędzie może wysyłać potwierdzenia e-mail dotyczące powodzenia lub niepowodzenia pracy. http://mysqlbackupftp.com/mysql-blog/how-to-backup-mysql-databases/ –