Mysql database replicatie van view naar table

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Guvner
  • Registratie: Oktober 2000
  • Laatst online: 05-04-2022
Ik heb een databaseomgeving waarbij er een master zal komen er er een viertal slaves aan komen te hangen.

Tot zover is de uitdaging niet zo groot. Het probleem ontstaat wanneer de vier slaves ieder een eigen database moeten krijgen die bestaat uit een deel van de database die op de master staat.

Ik dacht dit op te lossen door gebruik te maken van een master database met hierin twee tabellen en vervolgens nog vier databases te maken met hierin per database een tweetal views. Deze views zijn een select * van de beide tabellen in de master database met hierin een WHERE segment = ... (welke voor dat segment geldt).


Het zou er dan als volgt uit gaan zien voor een van de tabellen

Master database table
testserver1tst
acceptatie1acc
productie1prd
internet1dmz
testserver2tst
acceptatie2acc
internet2dmz
internet3dmz
productie2prd
testserver3tst
acceptatie3acc
testserver4tst
acceptatie4acc
internet4dmz
internet5dmz
internet6dmz


View Sectie DMZ
internet1dmz
internet2dmz
internet3dmz
internet4dmz
internet5dmz
internet6dmz


View Sectie Test
testserver1tst
testserver2tst
testserver3tst
testserver4tst


View Sectie Acceptatie
acceptatie1acc
acceptatie2acc
acceptatie3acc
acceptatie4acc


View Sectie Productie
productie1prd
productie2prd


Op de vier slaves zou ik dus per slave een database willen met hierin een tabel waarin de data van de bijbehorende view staat. Ik ben nu al een week aan het spitten op google en allerlei forums, maar nergens lijk ik hier een oplossing voor te kunnen vinden.

Iemand suggesties hoe dit, wellicht op een andere manier, op te lossen is??

Acties:
  • 0 Henk 'm!

  • dik_voormekaar
  • Registratie: April 2003
  • Laatst online: 10-09 22:00
Zoek op 'mysql insert select'
Je vindt dan dit:
code:
1
2
CREATE TABLE newtable (user VARCHAR(20) PRIMARY KEY, age INT, os VARCHAR(20));
INSERT newtable (user,age,os) SELECT table1.user,table1.age,table2.os FROM table1,table2 WHERE table1.user=table2.user;

Dit kan ook gewoon met een view.

[ Voor 4% gewijzigd door dik_voormekaar op 18-10-2011 15:53 ]


Acties:
  • 0 Henk 'm!

  • Guvner
  • Registratie: Oktober 2000
  • Laatst online: 05-04-2022
Zit dit dan in de replicatie ingebakken? Dus als ik dan records verwijder op de master database voor bijvoorbeeld segment DMZ, dan verdwijnt dat record ook in het segment DMZ op de slave uit die tabel?

Acties:
  • 0 Henk 'm!

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

Ik denk dat je je moet gaan inlezen in Data Replication en dan voor jouw geval (tabel replicatie) kijken naar Replication Rules.
Edit:
Ik kwam dit ook nog tegen: View Replication. Misschien handig om een testomgeving op te zetten en dit te testen.

[ Voor 63% gewijzigd door MTWZZ op 19-10-2011 09:21 ]

Nu met Land Rover Series 3 en Defender 90


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 09-09 12:00

TheNephilim

Wtfuzzle

Wij hebben hier een Master + 2 slaves staan, niet echt ingewikkeld. Maar wat jij hier wil snap ik niet goed, je wil een replicatie omgeving waarbij je master alle tabellen bevat en je slaves elk een paar?
Dat doet me meer denken aan sharding dan aan replication.

Acties:
  • 0 Henk 'm!

  • Guvner
  • Registratie: Oktober 2000
  • Laatst online: 05-04-2022
Ik zal even uitleggen waar het om gaat.

Het gaat om dns servers in de verschillende segmenten van ons netwerk.

Er is een Test, Acceptatie, Productie en DMZ omgeving.

Voor ieder segment wil ik een eigen setje dns servers. Om te zorgen dat ik het beheer maar op 1 plek hoef te doen hiervoor, had ik bedacht dat ik het op 1 dns server inregel welke in het server management netwerk staat, waarna de data voor de betreffende segmenten naar de betreffende dns servers wordt gerepliceerd.

That's it eigenlijk, maar het lijkt nogal een ingewikkeld zootje te gaan worden op deze manier.

Helaasch

Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Guvner schreef op woensdag 19 oktober 2011 @ 12:39:
Ik zal even uitleggen waar het om gaat.

Het gaat om dns servers in de verschillende segmenten van ons netwerk.

Er is een Test, Acceptatie, Productie en DMZ omgeving.

Voor ieder segment wil ik een eigen setje dns servers. Om te zorgen dat ik het beheer maar op 1 plek hoef te doen hiervoor, had ik bedacht dat ik het op 1 dns server inregel welke in het server management netwerk staat, waarna de data voor de betreffende segmenten naar de betreffende dns servers wordt gerepliceerd.

That's it eigenlijk, maar het lijkt nogal een ingewikkeld zootje te gaan worden op deze manier.

Helaasch
Dan snap ik niet waarvoor je die database slaves nodig hebt. Zelfs als je voor elke omgeving een eigen MySQL server wilt hebben, is het dan niet mogelijk om volledig te repliceren en dan op elke lokatie dmv een extra WHERE-clause te filteren op de rijen voor die lokatie?
Pagina: 1