![]() |
![]() |
![]() ![]()
Post
#1
|
|
Administrator serwera Grupa: Przyjaciele php.pl Postów: 909 Pomógł: 0 Dołączył: 12.08.2003 Skąd: /var/www/wroclaw.php Ostrzeżenie: (0%) ![]() ![]() |
Ostatnio przygotowałem skrypt do robienia kopii bazy danych na innym serwerze.
Skrypt dziala i nie jego bezpośrednio dot. pytanie... Podczas wykonywania kopii na głównym serwerze skrypt wykonuje kopię do pliku SQL (ponad 205 000 zapytań dających 25MB plik) i powstał problem zabezpieczenia bazy przed ewentualnym padnięciem na skutek przeciążenia... By stworzyć wspomniany plik dumpa potrzeba 1500 zapytań do bazy... Niestety nie jestem wstanie blokować wszystkich skryptów jakie korzystają z bazy, bo nie wszystkie są na moim serwerze... Z tąd pytanie: czy można zablokować bazę danych przed jakimkolwiek dostępem poza jednym wznaczonym procesem/procesami? (wyłączenie serwera odpada, bo skrypt korzysta ze "zwykłych" zapytań do bazy w celu stworzenia dumpa). Z przywracaniem nie ma problemu, bo są do tego wyznaczone 2 serwery nie dostępne do żadnych innych celów, więc i nie ma możliwości powstania błędu... P.S. Serwer z którego dokonuję kopii to MySQL 4.0 na Win2k3 a serwery na których zapisuję kopię, to MySQL 5.0 na Win2k3 i MySQL 4.0 na Linuxie... UpDated: kurde... ale ja mam problemy (IMG:http://forum.php.pl/style_emoticons/default/Rkingsmiley.png) |
|
|
![]() |
![]()
Post
#2
|
|
Administrator serwera Grupa: Przyjaciele php.pl Postów: 909 Pomógł: 0 Dołączył: 12.08.2003 Skąd: /var/www/wroclaw.php Ostrzeżenie: (0%) ![]() ![]() |
Bo takie rozwiązanie działa na serwerach z safe_mode, gdzie nie można wykonywać poleceń systemowych...
Poza tym to jest wersja 1.0.2 wspomnianej klasy... W kolejnej wersji mam zamiar zaimplementować 2 możliwości - stworzenie tylko dumpa serwera do pliku SQL i wykonywanie replikacji serwera. Jako, że u mnie w sieci pracują obecnie 4 serwery MySQL (na Win2k3: 4.0 i 5.0 oraz Linux: 2 x 4.0 (z czego jedna tylko do prac developerskich - przechowuje wszystkie ważne dane i jej nie ruszam...)) to mam pole do popisu i spore możliwości testowania... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) P.S. A co do LOCK TABLES - jest bardzo nie wydajne w porównaniu ze zrzutem tabeli mysql.user (poza uzytkownikiem wyznaczonym do zrzutu, przeładowanie uprawnień, zrzut danych, przywrócenie mysql.user i ponowne przeładowanie) Jak pisałem skrypt robi z bazy 205 tys. zapytań, co może sugerować mnogość tabel... a blokowanie każdej przed zrzutm to mordęga... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 08:01 |