[ 01011011 @ 20.07.2005. 17:41 ] @
Zelim da u administraciji imam opciju da se uradi backup baze podataka, kako ovo jednostavno da uraidm, ima li neko code?
[ SmilieBG @ 20.07.2005. 21:44 ] @
Code:

<a href = backup.php>Bek Up</a>

backup.php

<?

exec('/usr/local/mysql/bin/mysqldump -uusername -ppassword -hhostname -databasename > /some/location/mybackup.sql');

?>


ovo ti je ono, najosnovnije, otkucano za 1,5 minut... za 6 minuta imas full skriptu, kakvu zelis ;)

Poz,
Sale
[ _owl_ @ 20.07.2005. 23:12 ] @
Pod uslovom da je moguce pozivanje eksternih programa i da je mysqldump instaliran na serveru, takodje pogledaj i sta kaze manual (posebno deo da li se komanda izvrsava upozadini ili ne. Meni se cini da je bolje ali i teze napraviti sopstveni mehanizam (recimo po uzoru na phpMyAdmin).
[ 01011011 @ 21.07.2005. 16:20 ] @
Hvala :)

Kako da sad omogucim korisniku tom da opet ako nesto pukne stavi bazu podataka nazad na server, i kako da se igram sa opcijama ono ako hocu drop if exist i tako to...
[ SmilieBG @ 21.07.2005. 17:25 ] @
Za omogucivanje, mozes 2 stvari da uradis:

1) ako je napredniji korisnik, tj, zna sta radi, da mu izlistas sql beck-ups, recimo, po datumima ili slicno, a zatim kada izabere koji fajl hoce (preko radio button na primer), onda taj radio button salje samo ime fajla do sledeceg php fajla, u kome se nalazi:

exec('mysql -uusername -ppassword -hhostname database_name < /path/to/mysqldump/$imefajla_ovde_iz_Radio_Button');

2) ako nije napredniji korisnik, onda ti, kroz skriptu sam odlucis za korisnika koji backup da uradi, nesto u smislu, uzmes najnoviji backup. Ne znam kako PHP moze da barata sa tim podacima o fajlovima, ali _ako_ bash nista drugo, mali shell sa ls -caltr koji ce da ti izvuce datum i ime fajla, koje ti opet prosledjujes komandi gore.

U oba slucaja, moras na mnogo stvari da pazis. Recimo:

- dal' ces da radis dump baze ili ce backup da bude samo update?
- dal' ima relacija u bazi?
- dal' smeju da se dupliraju podaci?
- koliko je velika baza / brza masina (recimo, 2 GB backup na pristojnoj 4-ro serverskoj masini traje oko 30 minuta da je ucita, od nule. To znaci da 30 minuta baza uopste nije dostupna)...

Itd, itd, itd...

Sto se tice opcija, to se ipak moras sam igrati. Ili instaliraj phpmyadmin, pa radi export sa raznim opcijama, ili bolje preko shell-a. Ukucaj lepo: mysqldump --help, pa citaj :)

Poz,
Sale