[CLOSED] Mysql Replikering Setup 2vejs replikering - med forskellige databaser
Hey Forum.
Så hører jeg gerne herinde omkring dette.
Jeg kører et lille test setup af mine virtuelle maskiner. Alle Debian med MySQL 8.0.11
Server A - 172.16.0.97
Server B - 172.16.0.98
Server C - 172.16.0.99
Mit spørgsmål er så - Kan det følgende lade sig gøre:
[inline:Replication flow.png=Replication flow.png]
Fordi:
Sætter jeg op - så jeg jeg kun fra Server C --> B --> A - replikerer jeg fint og uden problemer.
Men så snart jeg sætter replikeringen igang den anden vej ( Og dette er ikke testet med resrite Custom_Data) stopper al data hos server B
Data kommer fra A --> B !--> C
og det samme modsat C --B !--> A
Dette er med forskellige replikeringsbrugere og kun med rettigheder til de konkrete databaser.
Jeg kan se min logposition ændres på slvaerne og står som de har modtaget alt data - selv når jeg skiller det helt ned til 2 går det galt
Jeg formoder selvfølgelig det er min konfiguration af slaverne der fejler her - så prøvede noget mere forenklet - kun med 2 maskiner.
Jeg har følgende i min konfiguratinsfiler på begge server med forsakellig ID:
Server A har som replic info:
Server B:
Dette virker fint - Vil jeg gerne tilsætte det den modsatte vej og i forhold til deres dokumentation omkring replication filter https://dev.mysql.com/doc/refman/8.0/en/replication-rules-channel-based…
Så får JEG det som det skal konfigureres således:
Server A:
Server B:
Så kan jeg se de connecter og tæller op - men inserter ikke data: Opretter jeg t1 på Server A i autolog - vises dette ikke på server B
Opretter t1 i Generic_Data på Server B vises det ikke i Server A:
I min show slave status har jeg
Er der nogen der kan fortælle mig hvad jeg gør forkert her ???
Jeg har kæmpet med dette i dagevis nu - Uanset hvad rammer jeg i det samme resultat!
Jeg er i tvivl om jeg skal til at køre multi Instanses istedet for således jeg bruger port 3306 til autolog og en ny DB service på port 3307 der kører Generic_Data - Det kan jo ikke være rigtigt at man skal hove dobbelt op på server for at replikere 2vejs med forskellige DB
Så hører jeg gerne herinde omkring dette.
Jeg kører et lille test setup af mine virtuelle maskiner. Alle Debian med MySQL 8.0.11
Server A - 172.16.0.97
Server B - 172.16.0.98
Server C - 172.16.0.99
Mit spørgsmål er så - Kan det følgende lade sig gøre:
[inline:Replication flow.png=Replication flow.png]
Fordi:
Sætter jeg op - så jeg jeg kun fra Server C --> B --> A - replikerer jeg fint og uden problemer.
Men så snart jeg sætter replikeringen igang den anden vej ( Og dette er ikke testet med resrite Custom_Data) stopper al data hos server B
Data kommer fra A --> B !--> C
og det samme modsat C --B !--> A
Dette er med forskellige replikeringsbrugere og kun med rettigheder til de konkrete databaser.
Jeg kan se min logposition ændres på slvaerne og står som de har modtaget alt data - selv når jeg skiller det helt ned til 2 går det galt
Jeg formoder selvfølgelig det er min konfiguration af slaverne der fejler her - så prøvede noget mere forenklet - kun med 2 maskiner.
Jeg har følgende i min konfiguratinsfiler på begge server med forsakellig ID:
master-info-repository =TABLE
relay-log-info-repository =TABLE
relay-log-recovery = 1
Server A har som replic info:
log-bin = mysql-bin
binlog_do_db = autolog
Server B:
log-bin = mysql-bin
binlog_do_db = autolog
replicate_do_db = autlogo
Dette virker fint - Vil jeg gerne tilsætte det den modsatte vej og i forhold til deres dokumentation omkring replication filter https://dev.mysql.com/doc/refman/8.0/en/replication-rules-channel-based…
Så får JEG det som det skal konfigureres således:
Server A:
log-bin = mysql-bin
binlog_do_db = autolog,Generic_Data
replicate_do_db = b2a:Generic_Data
Server B:
log-bin = mysql-bin
binlog_do_db = autolog,Generic_Data
replicate_do_db = a2ba:autolog
Så kan jeg se de connecter og tæller op - men inserter ikke data: Opretter jeg t1 på Server A i autolog - vises dette ikke på server B
Opretter t1 i Generic_Data på Server B vises det ikke i Server A:
I min show slave status har jeg
Slave_IO_State: Waiting for master to send event
Master_Host: 172.16.0.98
Master_User: generic_replic
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 155
Relay_Log_File: mysqld-relay-bin-s2v.000002
Relay_Log_Pos: 369
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: <-- !!!!!! hvorfor intet her???
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Er der nogen der kan fortælle mig hvad jeg gør forkert her ???
Jeg har kæmpet med dette i dagevis nu - Uanset hvad rammer jeg i det samme resultat!
Jeg er i tvivl om jeg skal til at køre multi Instanses istedet for således jeg bruger port 3306 til autolog og en ny DB service på port 3307 der kører Generic_Data - Det kan jo ikke være rigtigt at man skal hove dobbelt op på server for at replikere 2vejs med forskellige DB
Kommentarer8
Hej pequePrøv at beskrive
Prøv at beskrive hvad du har tænkt dig at bruge det til og hvilke guides du allerede har forsøgt.
Det kan være en anden kan gennemskue om det eksempelvis handler om en master-master replication, men jeg kan ikke.
Det er under alle omstændighede klogt at holde dig til to servere til en start, for at forenkle det, og når det fungere, så prøve med en tredje.
Er det her relevant?
https://www.linode.com/docs/databases/mysql/configure-master-master-mys…
Hey Frogmaster
Oprindeligt
Oprindeligt vil setup være følgende:
Server A ( Simulerer vores HQ)
Server B Simluerer Kunde HQ
Server C simluerer Kunde installationer
På alle kundens installationer er der 1 DB kaldet autolog. Dette logger alle målte værdier på lokationen
Skal replikeres hjem til klundens HQ og videre til vores HQ
I Vores HQ Server er der 2 DB Generic_Data og Custom_Data
Disse skal replikeres til Kundens server og videre til alle installationer.
I dag replikerer vi uden problemer Serv er C --> Server B --> Server A
Problemet opstår så snart jeg replikerer den anden vej.
Selve med 2 maskiner kan jeg godt replikere fra Fra Server C --> Server B - Men så snart jeg konfigurerer channel for replikering fra Swerver B --> Server C så kommer der ikke noget data.
Jeg kan jo se der indlæses binlog og positionen kører som forventet der indsættes bare ikke data. Jeg har ingen fejlæ i SQL error.log - tværtimod - siger den er connected og replikerer!
Huh har efterhånden prøvet alle de guides jeg har kunen finde - men ingen som rigtig passer på mit setup.
https://dba.stackexchange.com/questions/17529/setting-circular-replicat…
https://www.atlantic.net/managed-server-hosting/how-to-multi-master-mys…
https://www.howtoforge.com/mysql_master_master_replication
og siden vi MySQL8 - Har jeg kigget en hel del på replication filter fra mysql.com
https://dev.mysql.com/doc/refman/8.0/en/change-replication-filter.html
Denne beskriver det fint hvad jeg ønsker ( dog kun den ene vej) https://blog.monyog.com/setting-basic-master-slave-replication-mysql-8/
Som sagt - så snart jeg sætter replikering up fra A --> B = kører fint, men sætter jeg så op med B --> A - stopper replikeringen.
De fleste guides her viser jo desværre MASTER to MASTER replikering af samme database hvor det her er anderledes da det er forskellige DB
Det kan jo ikke være
Jeg ved det ikke. Jeg har ganske enkelt ikke tilstrækkelig viden.
Det bedste jeg kan tilbyde er henvisninger til specialister i mysql. Det er selvfølgelig nødvendigt at setup er fuldstændigt tydeliggjort på engelsk.
Hvis en søgning kan hjælpe: https://www.google.dk/search?q=mysql+ask+about&oq=mysql+ask+about&aqs=c…
Jeg ved ingen ting, om
$mpsyt .Mysql Two Way Replication
giver masser af hits.
1 Tutorial Database Replication Using MySQL 32:29
2 MySQL Database Replication - Part #3 (Two-Ways Replication) 17:27
3 Two Way Replication - Multi Master Replication using SymmetricDS (MySQL - SQL Server) 10:10
4 Two Way Replication (SymmetricDS): MySQL - SQL Server 05:36
5 How to synchronize two databases by using MySQL Workbench - MySQL DBA Tutorial 06:31
6 MYSQL REPLICATION 14:39
7 Two Way Replication - Multi Master Replication using SymmetricDS (MySQL - SQL Server) 06:48
8 How to Set Up MySQL Replication 03:08
9 Getting The Most From MySQL Replication 21:23
10 MySQL: Set up Master-Slave Replication 29:28
11 How Booking.com Avoids and Deals with MySQL/MariaDB Replication Lag 43:36
12 Configure SymmetricDS & One Way Replication (MySQL - SQL Server) 08:49
13 Configure SymmetricDS & One Way Replication (MySQL - SQL Server) 15:39
14 Lesson 11: Setting Up MySQL Replication - UniversalClass MySQL Course 32:39
15 Master to Master Replication with SymmetricDS ( Two Way Replication ) 10:56
16 How to Configure MySQL Master-Slave Replication on Ubuntu Linux 07:50
17 SymmetricDS Replication : MySQL - SQL Server (Master - Slave) 14:57
18 Two Way Database Replication with Symmetric DS (MySQL - SQL Server) 07:53
19 How to configure MySQL Master-Master replication in CentOS 7 17:12
20 MySQL: Set up Master-Master Replication 19:28
21 Two Way Database Replication Master to Master SQLSERVER to MySQL 02:37
22 MySQL Replication (With MySQL Proxy in front) 13:15
23 Two Ways Replication 21:49
24 [Tutorial] Mysql Replication - Realtime Backup database (master - slave) 32:16
25 master2master - two way replication MSSQL & MySQL 11:08
+ mange flere.
giver masser af hitsDet
Det er problemet. For specialiseret besvarelse, er det formentligt nødvendigt at spørge specialister i mysql.
#3
Problemet er jo lidt
Problemet er jo lidt mange af disse exempler er med en database/r alle steder hvilket ikke er mit .- her et flow begge veje ink en rewrite :-)
Men jo alle de forskellige løsninger som du selv lister - de fleste har jeg gennemgået uden den ønskede success.
#5 Det er jo lige præcis det ( og det er også gjort )
Lidt som
https://www.youtube.com/watch?v=O2qjOPox-3I
Nå - En lille update.
Dette
Dette kan ikke gøres med 2 ways replikering - det havde været muligt hvis det kørte i ring - men det er ikke det vi ønsker.
Det vil blive lavet med en Webservice - der trigger flow fra A --> B --> C
Replikering vil køre fra C --> B --> A