Zaloha mysql

Sekcia o programovaní, programovacích jazykoch...
Užívateľov profilový obrázok
Scorp
Jánoš Bravo z Brna
Jánoš Bravo z Brna
Príspevky: 2838
Dátum registrácie: So 09. Apr, 2005, 20:00
Bydlisko: Krankenhaus
Kontaktovať užívateľa:

Zaloha mysql

Príspevok od užívateľa Scorp » Pi 24. Feb, 2006, 12:59

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?
Me like Pentium

Užívateľov profilový obrázok
RP
Administrátor
Administrátor
Príspevky: 2621
Dátum registrácie: St 21. Mar, 2001, 20:00
Bydlisko: Kosice

Re: Zaloha mysql

Príspevok od užívateľa RP » Pi 24. Feb, 2006, 14:56

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?
Este som cosi take nerobil, ale keby som mal tak by som to skusil cez nejaky cron script v php.

Užívateľov profilový obrázok
Scorp
Jánoš Bravo z Brna
Jánoš Bravo z Brna
Príspevky: 2838
Dátum registrácie: So 09. Apr, 2005, 20:00
Bydlisko: Krankenhaus
Kontaktovať užívateľa:

Príspevok od užívateľa Scorp » Pi 24. Feb, 2006, 15:02

cron... cron... cron... nie je to len pre linux? :?
Me like Pentium

Užívateľov profilový obrázok
RP
Administrátor
Administrátor
Príspevky: 2621
Dátum registrácie: St 21. Mar, 2001, 20:00
Bydlisko: Kosice

Príspevok od užívateľa RP » Pi 24. Feb, 2006, 16:06

Scorp napísal:cron... cron... cron... nie je to len pre linux? :?
Ano, je.

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.

Užívateľov profilový obrázok
Scorp
Jánoš Bravo z Brna
Jánoš Bravo z Brna
Príspevky: 2838
Dátum registrácie: So 09. Apr, 2005, 20:00
Bydlisko: Krankenhaus
Kontaktovať užívateľa:

Príspevok od užívateľa Scorp » Pi 24. Feb, 2006, 18:30

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...?
Me like Pentium

Užívateľov profilový obrázok
RP
Administrátor
Administrátor
Príspevky: 2621
Dátum registrácie: St 21. Mar, 2001, 20:00
Bydlisko: Kosice

Príspevok od užívateľa RP » Pi 24. Feb, 2006, 18:56

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...?
Neviem ale pochybujem ze to je take jednoduche. Skus ci to pojde.

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

:END
:: 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 ---//

Užívateľov profilový obrázok
CrakeN
Ban
Ban
Príspevky: 1654
Dátum registrácie: St 20. Apr, 2005, 20:00
Bydlisko: MALACKY (16)
Kontaktovať užívateľa:

Príspevok od užívateľa CrakeN » Pi 24. Feb, 2006, 20:34

mam jednoduchsiu vec, nemal som cas na dlhsie skumanie, ale skus si dat prikaz spustit pod XP, a daj si

Kód: Vybrať všetko

ntbackup
skus sa s tym pohrat, myslim, ze by to malo ist ... :wink: ak nie, daj vediet ...

Užívateľov profilový obrázok
Scorp
Jánoš Bravo z Brna
Jánoš Bravo z Brna
Príspevky: 2838
Dátum registrácie: So 09. Apr, 2005, 20:00
Bydlisko: Krankenhaus
Kontaktovať užívateľa:

Príspevok od užívateľa Scorp » So 25. Feb, 2006, 01:10

CrakeN napísal:mam jednoduchsiu vec, nemal som cas na dlhsie skumanie, ale skus si dat prikaz spustit pod XP, a daj si

Kód: Vybrať všetko

ntbackup
skus sa s tym pohrat, myslim, ze by to malo ist ... :wink: ak nie, daj vediet ...
myslim, ze to je o inom, ako zaloha db :blind:
ten batch file vyskusam, vdaka
Me like Pentium

Užívateľov profilový obrázok
Secret
Nový používateľ
Nový používateľ
Príspevky: 177
Dátum registrácie: Pi 25. Feb, 2005, 20:00
Kontaktovať užívateľa:

Príspevok od užívateľa Secret » So 25. Feb, 2006, 14:21

hmm, a nevedeli by ste poradit ako by to slo spravit pod linux. serverom...aby mi zalohy pomenovalo podla casu a datumu...bez akelkolvek kontroly :help:

Napísať odpoveď

Návrat na "Programovanie"