Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Tymczasowe blokowanie bazy danych, na czas zrzutu danych...
Bakus
post 19.06.2004, 00:16:02
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 Rkingsmiley.png


--------------------
Powrót do przeszłości :)
Go to the top of the page
+Quote Post
rzseattle
post 19.06.2004, 00:40:45
Post #2





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Jesli masz mozliwosc (uprawnienia) to czasowo mozesz zmieniac prawa dostepu do systemu w tabelach bazy "mysql" .


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
Bakus
post 19.06.2004, 00:45:36
Post #3


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%)
-----


Ale czy nie za długo to potrwa ?
Czy można bazę zablokować i odblokować bez zapisywania całej tabeli uprawnień?

P.S. Wszystkie 3 serwery są uruchomione na moich prywatnych maszynach, więc mam pełne uprawnienia do obu winksmiley.jpg


--------------------
Powrót do przeszłości :)
Go to the top of the page
+Quote Post
rzseattle
post 19.06.2004, 00:51:38
Post #4





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Jesli nie masz tysiecy uzytkownikow to dump tabeli host nie powinien zajac duzo czasu. I jest to jedyny znany mi sposob aby oddac baze we wladanie tylko jednego skryptu (usera).


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
Bakus
post 19.06.2004, 01:04:19
Post #5


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%)
-----


OK... Dzięki.. zobaczymy co z tego wyjdzie winksmiley.jpg
Szkoda, że "pomógł mi" nie działa winksmiley.jpg

Pozdrowionka

_______________________________
UpDated: Dzięki... działa jak trzeba winksmiley.jpg
Co prawda cały proces trwa ok. 3 minuty, ale w okresie dobowym (co tyle wykonuję backup) to nie dużo, a baza jest bezpieczna... laugh.gif


--------------------
Powrót do przeszłości :)
Go to the top of the page
+Quote Post
Jabol
post 19.06.2004, 09:06:09
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


http://dev.mysql.com/doc/mysql/en/LOCK_TABLES.html
Zobacz to. Co prawda jest to manual do wersji 5.0, ale w starszych też może działać.
Go to the top of the page
+Quote Post
DeyV
post 19.06.2004, 10:29:02
Post #7





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




a mnie zastanawia jedna rzecz. Dlaczego chcesz robić dump bazy przy pomocy skryptu php, jeśli MySQL ma wbudowane narzędzia do generowania dump'a które działają nieporównywalnie szybciej, i ma spore możliwości konfiguracji?


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
Bakus
post 20.06.2004, 03:28:13
Post #8


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... 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...


--------------------
Powrót do przeszłości :)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 07:44