![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Witam mam przed sobą problem na zaliczenie semestru z inżynierii oprogramowania, otóż mam zrobić projekt strony www (coś na wzór portalu społecznościowego) oczywiście na bazie danych mysql. Projekt ma wytrzymywać koło 4-5k userów online którzy coś robią.
No i pomysł mam prosty rozproszyć bazę danych, zrobić na wszelki wypadek serwery "dzieci" z mysql, tj mam serwer matka do którego dodaje wpis, jednocześnie do serwera dziecko dodaje ten wpis. Po co? Ponieważ jeśli serwer matka padnie na X czasu, to jego działanie przejmuje serwer dziecko i ustawiany jest automatycznie jako matka, a matka przechodzi w tryb dziecka. Pomysł niby fajny, prosty do zrobienia. Ale.... Jak uzyskać spójność bazy danych po takim upadku. Backup i wgrywać ? tracę X czasu na robienie backupa i wrzucanie go na drugi serwer, w tym momencie może się pojawić ogromna niespójność danych. Czy ktoś zetknął się z takim problem i mógłby mi doradzić? -------------------- Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas === po prostu kocham ją :D haha |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 274 Pomógł: 35 Dołączył: 18.07.2008 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Mając dwa serwery jeden jako matka a drugi jako dziecko zakładasz, że ten drugi tylko jest w czasie gdy pierwszy nie odpowiada tak?
No to problemu nie ma ładujesz na każdej tabeli unikalne id i w momencie uzyskania połączenia z serwerem matką przerzucasz dane z dziecka (tylko te których nie ma w matce) do matki za pomocą jakiegoś skryptu (lub programu) (ale ten sposób też nie jest doskonały ponieważ i tak stracisz trochę czasu bo w czasie przerzucania danych serwis musi być nie dostępny) -------------------- "Tylko dwie rzeczy są nieskończone: wszechświat oraz ludzka głupota,
choć nie jestem pewien co do tej pierwszej." Albert Einstein Wirtualny Rynek Predykcyjny |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
hmm ale czy w sumie takie zabezpieczenie jest aż tak potrzebne?
jeśli rozproszę dane tak, że: -> wchodząc w profil usera, skrypt pobiera id, ustawiania konta z Bazy X -> pobiera przez id, informacje np komentarze do konta z Bazy Y mając dwa serwery mysql każdy odpowiedzialny za konkretną cześć bazy ile userów by musiało być by to sie zacinało, lub też serwer upadł ? Dodatkowo z serwerów mysql są ciągnięte tylko dane mysql, serwery z plikami są osobnymi serwerami. Czy nie wystarczy robic backupa autmatyczne do 4h? -------------------- Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas === po prostu kocham ją :D haha |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
http://dev.mysql.com/doc/refman/5.1/en/replication.html
Cytat Replication enables data from one MySQL database server (called the master) to be replicated to one or more MySQL database servers (slaves). Replication is asynchronous - your replication slaves do not need to be connected permanently to receive updates from the master, which means that updates can occur over long-distance connections and even temporary solutions such as a dial-up service. Depending on the configuration, you can replicate all databases, selected databases, or even selected tables within a database. Masz gotowe rozwiazania... -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 483 Pomógł: 50 Dołączył: 15.03.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
bonzo dziękuje bardzo, ja szukałem tego i nie mogłem nic wyszukać.
-------------------- Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas === po prostu kocham ją :D haha |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.06.2025 - 06:14 |