Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: backup bazy z poziomu php
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
korad1
Jak archiwizowac baze danych z poziomu stron html(php). Chcialby zeby kierownik mogl zrobic backup (jak i odtworzyc baze ) z poziomu przegladarki internetowej, a nie grzebal w samej bazie. Polecenia pg_dump, pg_restore chyba odpadaja gdyz trzeba by uzyc polecenia SQL do wgrania danych np. "\i nazwa_pliku.sql", ale jak zrobic backup.?
Kamis
Oczywiście, że możesz to zrobić z poziomu php...

Poczytaj w manualu o funkcji exec:

  1. <?php
  2. exec(&#092;" polecenie linux/unix \");
  3. ?>


Zobacz pod: http://pl.php.net/manual/pl/function.exec.php

Powodzenia smile.gif
korad1
tylko nasuwa sie jeszcze pytanie jak zrobiony backup (plik) umiescic na komputerze klienta (kierownika), tzn. aby osobiscie z wlasnego komputera mogl sobie zrobic backup jak i w kazdej chwili mogl sobie z niego(backupu) odtworzyc baze danych. Funkcja exec("pg_dump ...") spowoduje utworzenie kopii na serwerze,a ja bym chcial zeby zostala ona utorzona na maszynie klienta(kierownika) i na odwrot.
Z gory dziekuje za pomoc
crash
Możesz bez problemu, używając odpowiednich nagłówków, wysłać ten plik do przeglądarki i umożliwić kierownikowi zapisanie go na dysku. I odwrotnie możesz napisać skrypt ładujący wgrany przez stronę backup bazy.

Oba tematy były poruszane wielokrotnie na forum, wystarczy poszukać...
Kamis
Zgadzam się z pomysłami crashu... ja wymyśliłem coś innego :]

Jak już byś chciał wszystko zrobić moją metodą smile.gif
Możesz wysłać plik dmp. na maila (chyba, że baza jakaś jest ogromna to pomysł odpada). Zastosujemy do tego celu sendmaila:

Stałe + zmienne:
  1. <?php
  2.  
  3. $to=&#092;"odbiorca\";
  4. $subject=&#092;"temat\";
  5. $body=&#092;"tresc\";
  6. $from=&#092;"bacqpZdniaXXX@postgresql.pl\";
  7.  
  8. ?>


Wysyłanie:

  1. <?php
  2.  
  3. $fd=fopen(&#092;"mail.txt\",\"w\"); // zapis do pliku :]
  4. fputs($fd, &#092;"To: \".$to.\" n\");
  5. fputs($fd, &#092;"From: \".$from.\" n\");
  6. fputs($fd, &#092;"Subject: \".$subject.\" n\");
  7. fputs($fd, $body.&#092;" n\");
  8. fclose($fd);
  9. exec(&#092;"/usr/sbin/sendmail $to< mail.txt\");
  10. printf('<center><b>Wiadomosc z bacqpem wyslana !</b></center>');
  11.  
  12. ?>


Musisz w tym wypadku poszukać jak załącznik daje się w sendmailu bo nie pamiętam (man sendmail/ sendmail --help)... ale to z góry powinno działać... masz zarys co i jak :]

Ps. Jak już coś wykombinujesz to chętnie rzucę na to (kod) okiem bo temat ciekawy :]
korad1
niestety serwer jest typowo bazodanowy, linux+ postgresql, zadnych ftp, sendmaili itp.
crash
No to moje rozwiązanie pasuje do tego...
Kamis
Tak już po za tematem... trzeba by się zastanowić czy udostępnianie szefowi bazy jest zgodne z polityką bezpieczeństwa danych w danej firmie :/ Czy nie lepiej zostawiać kopi na serverze/ wysyłać do jakieś jednoski archwizującej (tasiemki itp) a szefowi zostawić maxymalnie przycisk [kopia bezpieczeństwa] na stronie...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.