2013-08-22 16 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.