2013-08-22 10 views
15

Używamy Amazon RDS i mamy replikację MASTER do SLAVE.Czy możesz replikować określoną bazę danych lub tabelę za pomocą RDS Amazon

Chcemy stworzyć nowego slave'a, który będzie replikował tylko określone bazy danych lub tabele z mastera.

Domyślnie RDS po prostu kopiuje wszystkie bazy danych wzorca na urządzenia podrzędne. Ale chcemy tylko tworzyć konkretne tabele. Wiem, że jest to możliwe w ogóle w MySQL, ale nie jestem pewien co do RDS i nie mogę znaleźć nigdzie odpowiedzi.

Ustawienia te istnieją w MySQL, nie widzę ich w ustawieniach parametrów niestandardowych dla RDS, chyba że czegoś mi brakuje.

--replicate-ignore-db=db_name 
--replicate-ignore-table=db_name.tbl_name 

Odpowiedz

11

Nie jest to możliwe w przypadku RDS.

Możesz "podrobić", konwertując tabele, których nie chcesz zreplikować do Engine = Blackhole, jednak musisz edytować grupę parametrów i ustawić "tylko do odczytu" na 0, zamiast domyślnego "{ TrueIfReplica} ".

Alternatywnie, musisz uruchomić swój własny serwer slave na EC2 z serwerem RDS jako master (jest to możliwe, jeśli używasz MySQL 5.6 na RDS, ale nie 5.5 lub niżej), jednak jest to bardzo skomplikowane Ustawiać.

0

Jak powiedziała Kat, nie, nie zapewniają tej funkcji.

Tego też się nie spodziewam, ponieważ moglibyśmy użyć go do złamania hermetyzacji as-a-service, co wymaga replikacji niektórych tabel, aby podstawowe funkcje działały.

Obejście, które rozważam, polega na utworzeniu instancji MySQL opartej na EC2 pomiędzy urządzeniem nadrzędnym a urządzeniem podrzędnym w łańcuchu replikacji (przy użyciu zewnętrznej funkcji replikacji), z zastosowaniem tych filtrów i wstępnie skonfigurowany silnik otworów dla wszystkich stołów, aby wszystko było proste.

Dodatkową korzyścią jest to, że podrzędny serwer RDS ma mniej danych dziennika binarnego do przeanalizowania, ponieważ jest wstępnie filtrowany.

Powiązane problemy