PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
MySQL andmebaaside syncimine kahe serveri vahel
Postitaja: Karl  2014-04-22 00:11:39
Tere.

Plaanis ühes serveris jooksev rakendus tõsta laiali kahte eraldiasuvasse serverisse koormuse jagamiseks ning töökindluse tõstmiseks. Eri serverid asuvad eri kohtades ja tahaks ka eraldi mysql-e kasutada

Kasutajate tabel on umbes selline:
id, nimi, parool, vajalikudandmed, lastupdate_timestamp

Andmete sünkroniseerimisel võrdlen rida realt, kumba timestamp on suurem ja selle järgi uuendan teist serverit ja ideeliselt kõik nagu toimiks.
Kuni selle hetkeni, mil lisatakse uusi ridu. Kui seda tehakse vaid ühes serveris ja ID autoincrement jookseb kenasti on kõik korras. Kui lisatakse teises serveris, siis läheb asi loomulikult katki ja uuendus enam ei toimi.

Kuidas oleks seda asja kõige mõistlikum lahendada?
Plaanis hiljem veel rohkem servereid lisada.
RE: MySQL andmebaaside syncimine kahe serveri vahel
Postitaja: ise php 2014-04-22 07:31:39
Kuidas kasutajaid suunatakse, millise serveri juurde sattub?
RE: MySQL andmebaaside syncimine kahe serveri vahel
Postitaja: tiigrikutsu 2014-04-22 08:49:12
Minu soovitus oleks, et defineeri 1 server keskse serverina, kuhu alati käib andmete kirjutamine ja teised serverid on siis dublikaadid, millest toimub andmete lugemine - kirje lisamisel mingit ID konflikti ei teki. Kui sul mingi lahendus juba olemas on, siis saad jääda selle juurde, et andmete uuendamine toimub dublikaadis ja see sünkroniseeritakse keskse serveriga...aga lisamine alati kesksesse serverisse.

Teine võimalus - eemalda mysql primary key autoincrement väljad ja iga kord kirje lisamisel genereeerid ise piisavalt unikaalse primary key ning tekidad vajalikud seosed läbi selle.
RE: MySQL andmebaaside syncimine kahe serveri vahel
Postitaja: RLa 2014-04-22 13:22:12
Võtme genereerimiseks saab kasutada UUID https://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html#function_uuid funktsiooni. Või genereerida selline rakenduse sees. Ise varem edukalt seda kasutanud.
RE: MySQL andmebaaside syncimine kahe serveri vahel
Postitaja: aksel 2014-04-22 13:57:01
Õige on seda teha MASTER-SLAVE setupiga ehk replikeerimisega.

http://dev.mysql.com/doc/refman/5.1/en/replication-howto.htm
RE: MySQL andmebaaside syncimine kahe serveri vahel
Postitaja: rtfm 2014-04-24 16:33:47
TSITEERITUD:
Õige on seda teha MASTER-SLAVE setupiga ehk replikeerimisega.

http://dev.mysql.com/doc/refman/5.1/en/replication-howto.htm


replikeerimine ei ole sünkroniseerimine ega backup strateegia. Sünkroniseerimine on väga raske, kõige lihtsamini lahendatud Microsofti poolt frameworkina http://msdn.microsoft.com/en-us/sync/bb821992.aspx

kui eesmärk on lihtsalt andmeid replikeerida siis muidugi replikeerida kas master - master (galera cluster näiteks) või mingi master lsave süsteemi kaudu
RE: MySQL andmebaaside syncimine kahe serveri vahel
Postitaja: Karl  2014-05-04 23:59:17
TSITEERITUD:
Kuidas kasutajaid suunatakse, millise serveri juurde sattub?


Hetkel ei suunatagi, 1 server on.
Ideeks on DNS-i sama kirje alla mitu IP-d.

TSITEERITUD:
Minu soovitus oleks, et defineeri 1 server keskse serverina [...] andmete uuendamine toimub dublikaadis ja see sünkroniseeritakse keskse serveriga...aga lisamine alati kesksesse serverisse.


Ise olen umbes sama ideeni jõudnud, aga lootsin, et kuidagi lihtsalt/kavalalt saaks keskserverist täiesti lahti.

Kogu asja disanides mõtlesin vaid uuendamiste peale, uute kasutajate lisamine ununes sootuks (peale kasutajate tabeli ei ole ID-d kuigi olulised kuni neid kasutatakse viitamiseks sama serveri-mysql komplekti piires).

Lihtsalt infoks: plaaniks ei ole mingi suure portaali/rakenduse ehitamine, huvi suuremalt jaolt teoreetline kuidas teenust serverite vahel jagada nii, et ükskõik millise serveri kukkumisel (hobiprojekt=tasuta_server=ebatöökindel) kogu asi tööle jääks.
RE: MySQL andmebaaside syncimine kahe serveri vahel
Postitaja: RLa 2014-05-10 15:20:43
Võibolla loobuda MySQL-st ja kasutada andmebaasi, kus multimaster tugi juba olemas? Või on oluline ka SQL tugi?
RE: MySQL andmebaaside syncimine kahe serveri vahel
Postitaja: rtfm 2014-05-12 14:46:45
TSITEERITUD:
Võibolla loobuda MySQL-st ja kasutada andmebaasi, kus multimaster tugi juba olemas? Või on oluline ka SQL tugi?


mysqlil ka ju olemas, galera näol

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0849609375