potrebujem zalohovat 2 mysql db, kazdu hodinu
rozmyslal som nad php skriptom, ale to by som musel neustale spustat z browsera, aby to robilo same, to neviem ako
dalej planovac uloh vo win a mysqldump... len neviem ako to bude s nazvami suborov, ci sa mi nebude kazdu hodinu premazavat jeden subor
uplne naj by bol nejaky program, alebo skript, ktory by db zalohoval, skomprimoval, dokazal uploadnut na ftp, odoslat na mail a ulozit na hdd istota
da sa to nejak poriesit?
Zaloha mysql
Zaloha mysql
Me like Pentium
Re: Zaloha mysql
Este som cosi take nerobil, ale keby som mal tak by som to skusil cez nejaky cron script v php.Scorp napísal:potrebujem zalohovat 2 mysql db, kazdu hodinu
rozmyslal som nad php skriptom, ale to by som musel neustale spustat z browsera, aby to robilo same, to neviem ako
dalej planovac uloh vo win a mysqldump... len neviem ako to bude s nazvami suborov, ci sa mi nebude kazdu hodinu premazavat jeden subor
uplne naj by bol nejaky program, alebo skript, ktory by db zalohoval, skomprimoval, dokazal uploadnut na ftp, odoslat na mail a ulozit na hdd istota
da sa to nejak poriesit?
Ano, je.Scorp napísal:cron... cron... cron... nie je to len pre linux?
Takze Ti to bezi pod WIndowsom. Tak potom asi najlepsie cez planovac uloh.
A to nasledujuco. Planovacom spustit program ktory sam vytvoris - to v com je na Tebe (Pascal, C, cosi vyssie ...) ... Tvoj program spusti mysqldump a potom subor ktory mysqldump vytvori premenuje podla toho ako potrebujes.
Napriklad si vezme od systemu aktualny cas, rozbije ho na podretazce a z hodiny a datumu vytvori retazec ktory bude novym menom premenovaneho suboru z mysqldump.
Neviem ale pochybujem ze to je take jednoduche. Skus ci to pojde.Scorp napísal:cize ak by som spustil len mysqldump -u -p db > x:\y.sql a bude sa to opakovat kazdu hodinu, tak to bude neustale prepisovat ten isty subor a nebude novovytvorene subory pomenuvavat x(2).sql atd...?
Ak nie tak sa to da spravit aj nasledujucim sposobom. Cez takyto batch file (subor prebraty z netu ... stale si ale myslim ze je lepsie pristup co som navrhol predtym, ale ok da sa aj takto) :
//--- Begin Batch File ---//
@echo off
:: Set some variables
set bkupdir=E:\MySQL\backup
set mysqldir=E:\MySQL
set datadir=E:\MySQL\data
set logdir=E:\MySQL\logs
set dbuser=username
set dbpass=password
set zip=C:\GZip\bin\gzip.exe
set endtime=0
:GETTIME
:: get the date and then parse it into variables
for /F "tokens=2-4 delims=/ " %%i in ('date /t') do (
set mm=%%i
set dd=%%j
set yy=%%k
)
:: get the time and then parse it into variables
for /F "tokens=5-8 delims=:. " %%i in ('echo.^| time ^| find "current" ') do (
set hh=%%i
set ii=%%j
set ss=%%k
)
:: If this is the second time through then go to the end of the file
if "%endtime%"=="1" goto END
:: Create the filename suffix
set fn=_%yy%%mm%%dd%_%hh%%mm%%ss%
:: Switch to the data directory to enumerate the folders
pushd %datadir%
:: Write to the log file
echo Beginning MySQLDump Process > %logdir%\LOG%fn%.txt
echo Start Time = %yy%-%mm%-%dd% %hh%:%ii%:%ss% >> %logdir%\LOG%fn%.txt
echo --------------------------- >> %logdir%\LOG%fn%.txt
echo. >> %logdir%\LOG%fn%.txt
:: Loop through the data structure in the data dir to get the database names
for /d %%f in (*) do (
:: Create the backup sub-directory is it does not exist
if not exist %bkupdir%\%%f\ (
echo Making Directory %%f
echo Making Directory %%f >> %logdir%\LOG%fn%.txt
mkdir %bkupdir%\%%f
) else (
echo Directory %%f Exists
echo Directory %%f Exists >> %logdir%\LOG%fn%.txt
)
:: Run mysqldump on each database and compress the data by piping through gZip
echo Backing up database %%f%fn%.sql.gz
echo Backing up database %%f%fn%.sql.gz >> %logdir%\LOG%fn%.txt
%mysqldir%\bin\mysqldump --user=%dbuser% --password=%dbpass% --databases %%f --opt --quote-names --allow-keywords --complete-insert | %zip% > %bkupdir%\%%f\%%f%fn%.sql.gz
echo Done...
echo Done... >> %logdir%\LOG%fn%.txt
)
:: Go back and get the end time for the script
set endtime=1
goto :GETTIME
ND
:: Write to the log file
echo. >> %logdir%\LOG%fn%.txt
echo --------------------------- >> %logdir%\LOG%fn%.txt
echo MySQLDump Process Finished >> %logdir%\LOG%fn%.txt
echo End Time = %yy%-%mm%-%dd% %hh%:%ii%:%ss% >> %logdir%\LOG%fn%.txt
echo. >> %logdir%\LOG%fn%.txt
:: Return to the scripts dir
popd
//--- End Batch File ---//
mam jednoduchsiu vec, nemal som cas na dlhsie skumanie, ale skus si dat prikaz spustit pod XP, a daj si skus sa s tym pohrat, myslim, ze by to malo ist ... ak nie, daj vediet ...
Kód: Vybrať všetko
ntbackup
myslim, ze to je o inom, ako zaloha db :blind:CrakeN napísal:mam jednoduchsiu vec, nemal som cas na dlhsie skumanie, ale skus si dat prikaz spustit pod XP, a daj siskus sa s tym pohrat, myslim, ze by to malo ist ... ak nie, daj vediet ...Kód: Vybrať všetko
ntbackup
ten batch file vyskusam, vdaka
Me like Pentium