mysql 5.7 multi-source replication

31
MySQL 5.7 Mul,Source Replica,on Wagner Bianchi Oracle ACE Director Oracle Open World 2015 Edição # 11 – Ano 2015

Upload: wagner-bianchi

Post on 04-Aug-2015

176 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: MySQL 5.7 Multi-Source Replication

MySQL  5.7  Mul,-­‐Source  Replica,on  Wagner  Bianchi  –  Oracle  ACE  Director  

Oracle  Open  World  2015  Edição  #  11  –  Ano  2015    

Page 2: MySQL 5.7 Multi-Source Replication

Agenda  

•  MySQL  5.7  –  novidades  para  a  replicação;  •  Apresentação  da  replicação  no  MySQL:  •  Replicação  MulD-­‐Source:  

–  Principais  caracterísDcas;  –  ReplicaDon  Channels;  –  Variáveis  de  Ambiente  –  Deployment;  –  Principais  Comandos;  –  PERFORMANCE_SCHEMA  replicaDon_*;  –  Considerações  finais.  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 3: MySQL 5.7 Multi-Source Replication

MySQL  5.7  –  novidades  p/  replicação  

•  O  que  há  de  mais  relevante  na  nova  versão  com  relação  à  replicação  de  dados:    –  MulD-­‐source  ReplicaDon  baseada  em  ReplicaDon  Channels  (5.7.6);  –  Filtros  de  replicação  via  comando  CHANGE REPLICATION FILTER (5.7.3);  –  RBR/RBL  se  tornou  o  formato  padrão  do  log  binário  (5.7.7);  –  Finalmente  slave_net_Dmeout  tem  seu  padrão  igual  a  60  secs;  –  P_S  passa  a  exibir  informações  sobre  a  replicação  (5.7.2);  –  Introdução  do  Replica(on  Mode:  

•  Transações  Anônimas  (file,  offset)  e  Transações  Globais;  •  Convívio  dos  dois  protocolos  de  replicação  em  uma  mesma  topologia;  •  Possibilita  o  rollout  da  replicação  baseada  em  nome  e  posição  do  log  binário  

para  GTID  online;  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 4: MySQL 5.7 Multi-Source Replication

MySQL  5.7  –  CHANGELOG  

•  Para  mais  informações,  acesse  os  CHANGELOG:    

–  hhp://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-­‐5-­‐7-­‐2.html  –  hhp://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-­‐5-­‐7-­‐3.html  –  hhp://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-­‐5-­‐7-­‐4.html  –  hhp://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-­‐5-­‐7-­‐5.html  –  hhp://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-­‐5-­‐7-­‐6.html  –  hhp://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-­‐5-­‐7-­‐7.html  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 5: MySQL 5.7 Multi-Source Replication

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Replicação  MySQL  

Page 6: MySQL 5.7 Multi-Source Replication

Replicação  MySQL  (big  picture)  

•  Conceito  de  servidores  MASTER  e  SLAVE;  •  Escritas  no  MASTER,  leituras  no  SLAVE;  •  Tanto  MASTER  quanto  SLAVE  são  instâncias  de  MySQL;  •  Relação:  1  Master  -­‐>  N  Slaves  /  1  Slave  -­‐>  1  Master  *    •  Cada  instância  parDcipante  da  topologia:  server_id  único;  •  Obrigatoriamente,  logs  binários  habilitados  no  MASTER;  •  Um  usuário  deve  ser  criado  no  MASTER  para  o  SLAVE;  •  O  SLAVE  copia  o  log  binário  para  o  relay  log  e  aplica  atualizações.  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

*  Relação  existente  até  o  advento  da  replicação  mul(-­‐source  

Page 7: MySQL 5.7 Multi-Source Replication

Replicação  MySQL  (caracterís.cas)  

•  A  replicação  no  MySQL  pode  ser:  –  Assíncrona,  baseada  no  nome  do  log  binário  e  a  posição  do  mesmo;  –  Assíncrona,  baseado  em  Transações  Globais  (GTID);  –  Semi-­‐síncrona,  através  de  plugins  e  via  ack  de  uma  dos  SLAVEs;  –  Síncrona,  através  do  MySQL  Cluster;  –  Virtualmente  síncrona,  através  do  Galera  Cluster  (WSRep  API);  

•  A  replicação  MulD-­‐Source  uDliza  o  modelo  assíncrono:  –  baseada  no  nome  do  log  binário  e  a  posição  do  mesmo;  –  baseado  em  Transações  Globais  (GTID);  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 8: MySQL 5.7 Multi-Source Replication

Replicação  MySQL  (implementação)  

Configurações  my.cnf  •  No  servidor  SLAVE:  

CHANGE  MASTER  TO  (Slaves)  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

[mysqld]#: todos os serversserver_id=1gtid_mode=onlog_bin=mysql01-binlog_slave_updates=truebinlog_format=ROW # default 5.7.6enforce_gtid_consistency=true#report_host=oowmysql01.wb.comreport_port=3306

mysql slave> CHANGE MASTER TO MASTER_HOST=‘192.168.0.100’, MASTER_BIND=‘eth0’, MASTER_PORT=3306, MASTER_USER=‘wb_rpl’; MASTER_PASSWORD=‘ooWlad15’, MASTER_HEARTBEAT_PERIOD=5, MASTER_AUTO_POSITION=1;

mysql slave> START SLAVE;

mysql slave> SHOW STATUS LIKE ‘Slave_%’;

Page 9: MySQL 5.7 Multi-Source Replication

Log  binário  /  Relay  log  

•  Log  binário  (MASTER):  –  Log  para  registro  de  atualizações;  –  ADvado  com  a  variável  log-­‐bin=/local/meulog-­‐bin;  –  Possui  os  formatos  SBR  (SQL)  e  RBR  (eventos),  RBR  o  padrão  5.7.7  ++;  

•  binlog_format=ROW|STATEMENT|MIXED–  A  variável  expire_logs_days  remove  logs  mais  velhos  que  X  dias.  

•  Relay  log  (SLAVE):  –  Log  para  armazenamento  das  atualizações  copiadas  do  MASTER;  –  Acompanha  o  formato  de  log  binário,  sendo  uma  cópia  deste  úlDmo;  –  É  lido  pela  Slave  SQL  Thread  para  atualizar  o  SLAVE;  –  relay_log_purge  habilita  a  remoção  de  logs  não  mais  uDlizados.  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 10: MySQL 5.7 Multi-Source Replication

Replicação  MySQL  (implementação)  

•  A  configuração  da  replicação  é  realizada  através  do  comando  CHANGE  MASTER  TO  (comando  básico):  –  MASTER_HOST:  IP/DNS  do  MASTER;  –  MASTER_BIND:  a  interface  uDlizada  pela  replicação;  –  MASTER_USER:  usuário  que  criamos  no  MASTER  para  os  SLAVEs;  –  MASTER_PASSWORD:  senha  do  usuário  acima  citado;  –  MASTER_PORT:  porta  onde  roda  o  listener  do  MySQL;  -- baseada no nome do log binário e a posição do mesmo  

–  MASTER_LOG_POS:  posição  do  log  binário  para  início  da  leitura;  –  MASTER_LOG_FILE:  nome  do  arquivo  de  log  binário  no  MASTER;  -- replicação GTID (Global Transaction Identifiers)

–  MASTER_AUTO_POSITION:  “Mr. Master, where are we? - Slave.”  Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 11: MySQL 5.7 Multi-Source Replication

Replicação  MySQL  (implementação)  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Servidor MASTERIP: 192.168.0.100Usuário: wb_rpl:ooWlad15

Servidor SLAVE01IP: 192.168.0.101Usuário: wb_rpl:ooWlad15

Servidor SLAVE02IP: 192.168.0.102Usuário: wb_rpl:ooWlad15

Master’s  Binlog  Dump  Thread  

Slave’s  I/O  Thread  

Binary  Log  

 -­‐  Os  SLAVEs  se  conectam  ao  MASTER    -­‐  Os  SLAVEs  copiam  o  log  binário,  relay-­‐log    -­‐  A  Slave  SQL  Thread  executa  as  atualizações  

Slave  SQL  Thread  

Slave  SQL  Thread  

Relay  Log  

Relay  Log  

Page 12: MySQL 5.7 Multi-Source Replication

Replicação  MySQL  (implementação)  

•  São  criadas  três  threads  após  o  comando  START  SLAVE:  –  Binlog   Dump   Thread   (MASTER):   responsável   por   ler   do   log   binário  

local   todos   os   eventos   que   estão   para   ser   enviados   para   o   SLAVE  quando  este  se  conectar  

–  Slave   I/O   Thread:   essa   thread   conversa   direto   com  aquela   existente  no  MASTER,   solicitando  os   eventos   de   atualização   e   os   copia   para   o  relay  log  local,  este  que  é  uma  cópia  do  log  binário  do  MASTER.  

–  Slave   SQL   Thread:   executa   as   atualizações   depositadas   no   relay   log  para   manter   o   SLAVE   atualizado   em   relação   ao   MASTER.   Desde   o  MySQL  5.6,  pode  contar  com  até  1024  sub-­‐threads  para  execução  dos  trabalhos  (slave_parallel_workers).  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 13: MySQL 5.7 Multi-Source Replication

Replicação  MySQL  (monitoramento)  

•  Comandos  para  monitoramento  da  replicação:  –  SHOW SLAVE STATUS:  exibe  todas  as  informações  de  replicação;  –  SHOW SLAVE HOSTS:  exibe  os  hosts  conectados  ao  MASTER;  –  SHOW PROCESSLIST:  exibe  conexões  e  threads  da  replicação;  –  SHOW MASTER STATUS:  exibe  o  arquivo  de  log  binário  sendo  uDlizado  

atualmente  pelo  MASTER,  assim  como  a  posição  atual;  •  Variáveis  de  status:  

–  SHOW STATUS LIKE ‘Slave_running’;•  Exibe  se  um  SLAVE  está  replicando  ou  não  através  de  valores  ON | OFF.  •  Considera  o  funcionamento  da  duas  threads  disponíveis  no  SLAVE.  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 14: MySQL 5.7 Multi-Source Replication

Replicação  Mul,-­‐Source  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 15: MySQL 5.7 Multi-Source Replication

Principais  caracterís,cas  

•  Resolve  o  problema:  1  SLAVE  -­‐>  N  MASTER  /  N  SLAVE  -­‐>  N  MASTER;  •  Cria  estruturas  em  disco  para  acomodar  SLAVEs  por  canal;  •  Replicação  baseada  em  Transações  Anônimas  e/ou  GTID;  •  Possibilita  centralizar  dados  de  vários  servidores;  •  Possibilidade  de  criação  de  até  256  canais  de  replicação  por  MySQL;  •  Pode  ser  uDlizado  com  replicação  clássica  ou  GTID;  •  Não  possui  nenhum  controle  de  conflito  em  dados  auto_increment;  •  Crash-­‐safe  Replica(on  é  mandatório  para  SLAVEs.  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 16: MySQL 5.7 Multi-Source Replication

Variáveis  de  Ambiente  

•  Configuração  de  repositórios  (my.cnf)  –  master_info_repository=TABLE–  relay_log_info_repository=TABLE

•  Dinamicamente:  –  SET GLOBAL master_info_repository=TABLE;–  SET GLOBAL relay_log_info_repository=TABLE;

•  Iniciando  o  mysqld  --master_info_repository=TABLE --relay_log_info_repository=TABLE

  Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 17: MySQL 5.7 Multi-Source Replication

Replica,on  Channels  

•  CHANGE MASTER TO ... FOR CHANNEL ‘channel_name’;

–  Declaração  adicionada  ao  comando  CHANGE MASTER TO;  –  Possibilita  dar  um  nome  aos  canais,  parar  e  iniciá-­‐los;  –  Cada  canal  tem  sua  própria  estrutura  de  relay-­‐logs;  

•  Criados  em  disco  hostname-relay-channel_name.xxxxxx

–  Não  segue  uma  conversão  de  nomeação,  contudo,  nomes  reservados:  •  group_replication_applier•  group_replication_recovery;

–  Canal  Padrão  para  manter  retro  compaDbilidade  (“”);  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 18: MySQL 5.7 Multi-Source Replication

Replica,on  Channels  

Configuração  my.cnf  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

[mysqld]#: all serversserver_id=1gtid_mode=onbinlog_format=ROW # default 5.7.6log_bin=mysql01-binlog_slave_updates=trueenforce_gtid_consistency=truemaster_info_repository=TABLErelay_log_info_repository=TABLErelay_log_recovery=1#: ai conflictsauto_increment_increment=3auto_increment_offset=1#: host infos on replicationreport_host=oowmysql01.wb.comreport_port=3306

CHANGE  MASTER  TO  (Slaves)  mysql oowmysql03> CHANGE MASTER TO MASTER_HOST=‘192.168.0.100’, MASTER_BIND=‘eth0’, MASTER_PORT=3306, MASTER_USER=‘wb_rpl’; MASTER_PASSWORD=‘ooWlad15’, MASTER_HEARTBEAT_PERIOD=5, MASTER_AUTO_POSITION=1 FOR CHANNEL ‘oowmysql01’; # the channel name!

mysql oowmysql03> START SLAVE FOR CHANEL ‘OOWMYSQL01’;

Page 19: MySQL 5.7 Multi-Source Replication

Deployment  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Servidor MASTER01IP: 192.168.0.100Usuário: wb_rpl:ooWlad15

Servidor MASTER02IP: 192.168.0.101Usuário: wb_rpl:ooWlad15

Servidor SLAVE01IP: 192.168.0.102Usuário: wb_rpl:ooWlad15

Slave  SQL  Thread  

Slave  SQL  Thread  

oowmysql03-­‐relay-­‐oowmysql01.000001  oowmysql03-­‐relay-­‐oowmysql01.000002  oowmysql03-­‐relay-­‐oowmysql02.000001  oowmysql03-­‐relay-­‐oowmysql02.000002    

Replica,on  Channel:  oowmysql01-­‐2  

Replica,on  Channel:  oowmysql02-­‐1  

Slave  SQL  Thread  

Page 20: MySQL 5.7 Multi-Source Replication

Deployment  

•  Com  base  na  definição  de  topologia  anterior:    

–  MASTER01•  CHANGE MASTER TO MASTER_HOST=‘192.168.0.101’... FOR CHANNEL ‘oowmysql01-2’;•  CHANGE MASTER TO MASTER_HOST=‘192.168.0.102’... FOR CHANNEL ‘oowmysql01-3’;

–  MASTER02•  CHANGE MASTER TO MASTER_HOST=‘192.168.0.100’... FOR CHANNEL ‘oowmysql02-1’;•  CHANGE MASTER TO MASTER_HOST=‘192.168.0.102’... FOR CHANNEL ‘oowmysql02-3’;

–  SLAVE01•  CHANGE MASTER TO MASTER_HOST=‘192.168.0.100’... FOR CHANNEL ‘oowmysql03-1’;

•  CHANGE MASTER TO MASTER_HOST=‘192.168.0.101’... FOR CHANNEL ‘oowmysql03-2’;

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 21: MySQL 5.7 Multi-Source Replication

Deployment  

•  Com  as  configurações  criadas:  

–  START SLAVE iniciará  a  a  replicação  de  todos  os  canais;  –  START SLAVE FOR CHANNEL ‘oowmysql1-2’   inicia   a   replicação   do  

MASTER01   com   o   MASTER02,   quando   oowmysql01   é   SLAVE   do  oowmysql02;  

–  SHOW SLAVE STATUS exibirá  o  status  de  todos  os  canais;  –  SHOW SLAVE STATUS FOR CHANNEL ‘oowmysql1-2’ exibe   as  

informações  de  status  deste  canal  específico;  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 22: MySQL 5.7 Multi-Source Replication

Principais  Comandos  

•  Todos  os  comandos  Dveram  adição  FOR  CHANNEL  ‘channel_name’  –  SHOW SLAE STATUS FOR CHANNEL ‘channel_name’;

–  START SLAVE [IO_THREAD|SQL_THREAD] FOR CHANNEL ‘channel_name’;

–  STOP SLAVE [IO_THREAD|SQL_THREAD] FOR CHANNEL ‘channel_name’;

–  SHOW RELAY LOGS FOR CHANNEL ‘channel_name’;

–  SHOW RELAYLOG EVENTS FOR CHANNEL ‘channel_name’;

–  RESET SLAVE [ALL] FOR CHANNEL ‘channel_name’;

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 23: MySQL 5.7 Multi-Source Replication

PERFORMANCE_SCHEMA  

•  A  parDr  do  MySQL  5.7.2,  tabelas  replicaDon_*  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

mysql oowmysql01> show tables from performance_schema like 'replication%';+---------------------------------------------+| Tables_in_performance_schema (replication%) |+---------------------------------------------+| replication_applier_configuration           || replication_applier_status                  || replication_applier_status_by_coordinator   || replication_applier_status_by_worker        || replication_connection_configuration        || replication_connection_status               || replication_group_member_stats              || replication_group_members                   |+---------------------------------------------+8 rows in set (0.00 sec)

Page 24: MySQL 5.7 Multi-Source Replication

PERFORMANCE_SCHEMA  •  Monitorar  o  estado  dos  canais:  

•  Monitorar  o  conjunto  de  transações  já  recebidas:  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

mysql oowmysql01> SELECT CHANNEL_NAME, SOURCE_UUID, SERVICE_STATE > FROM performance_schema.replication_connection_status;+--------------+--------------------------------------+---------------+| CHANNEL_NAME | SOURCE_UUID                          | SERVICE_STATE |+--------------+--------------------------------------+---------------+| oowmysql01-2 | 7353cfa9-0d77-11e5-a369-0800274fb806 | ON            || oowmysql01-3 | d9a28f1e-0d77-11e5-a375-0800274fb806 | ON            |+--------------+--------------------------------------+---------------+2 rows in set (0.00 sec)

mysql oowmysql01> SELECT CHANNEL_NAME, SERVICE_STATE, RECEIVED_TRANSACTION_SET > FROM performance_schema.replication_connection_status\G*************************** 1. row ***************************            CHANNEL_NAME: oowmysql01-2           SERVICE_STATE: ONRECEIVED_TRANSACTION_SET: 7353cfa9-0d77-11e5-a369-0800274fb806:1-2*************************** 2. row ***************************            CHANNEL_NAME: oowmysql01-3           SERVICE_STATE: ONRECEIVED_TRANSACTION_SET: 7353cfa9-0d77-11e5-a369-0800274fb806:1-22 rows in set (0.00 sec)

Page 25: MySQL 5.7 Multi-Source Replication

PERFORMANCE_SCHEMA  

•  Configurando  SLAVE  com  múlDplas  SQL_THREADS;  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

#: configurando o multi-threaded slavemysql oowmysql01> STOP SLAVE; # para todas as threads de todos os canaisQuery OK, 0 rows affected (0.00 sec)

mysql oowmysql01> SET GLOBAL slave_parallel_workers=16; # qtd e threads para execução do relay logQuery OK, 0 rows affected (0.00 sec)

mysql oowmysql01> SET GLOBAL slave_parallel_type=LOGICAL_CLOCK # threads trabalhando independente de schemaQuery OK, 0 rows affected (0.00 sec)

#: verificação de configuração e iniciando os canais de replicação novamentemysql oowmysql01> SELECT @@slave_parallel_workers, @@slave_parallel_type;+--------------------------+-----------------------+| @@slave_parallel_workers | @@slave_parallel_type |+--------------------------+-----------------------+|                       16 | LOGICAL_CLOCK         |+--------------------------+-----------------------+1 row in set (0.00 sec)

mysql oowmysql01> START SLAVE; # inicia as threads de todos os canaisQuery OK, 0 rows affected (0.00 sec)

Page 26: MySQL 5.7 Multi-Source Replication

PERFORMANCE_SCHEMA  •  Verificando  Coordinators  (1  para  cada  canal):  

•  Após  um  load  em  qualquer  servidor  da  topologia:  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

mysql oowmysql01> select * from performance_schema.replication_applier_status_by_coordinator;+--------------+-----------+---------------+-------------------+--------------------+----------------------+| CHANNEL_NAME | THREAD_ID | SERVICE_STATE | LAST_ERROR_NUMBER | LAST_ERROR_MESSAGE | LAST_ERROR_TIMESTAMP |+--------------+-----------+---------------+-------------------+--------------------+----------------------+| oowmysql01-2 |      9301 | ON            |                 0 |                    | 0000-00-00 00:00:00  || oowmysql01-3 |      9319 | ON            |                 0 |                    | 0000-00-00 00:00:00  |+--------------+-----------+---------------+-------------------+--------------------+----------------------+2 rows in set (0.02 sec)

mysql oowmysql01> SELECT CHANNEL_NAME, WORKER_ID, THREAD_ID, SERVICE_STATE, LAST_SEEN_TRANSACTION > FROM performance_schema.replication_applier_status_by_worker WHERE LAST_SEEN_TRANSACTION <> '';+--------------+-----------+-----------+---------------+---------------------------------------------+| CHANNEL_NAME | WORKER_ID | THREAD_ID | SERVICE_STATE | LAST_SEEN_TRANSACTION                       |+--------------+-----------+-----------+---------------+---------------------------------------------+| oowmysql01-2 |         1 |      9302 | ON            | 7353cfa9-0d77-11e5-a369-0800274fb806:246601 || oowmysql01-2 |         2 |      9303 | ON            | 7353cfa9-0d77-11e5-a369-0800274fb806:246586 |[…snip…]| oowmysql01-2 |        15 |      9316 | ON            | 7353cfa9-0d77-11e5-a369-0800274fb806:246599 || oowmysql01-2 |        16 |      9317 | ON            | 7353cfa9-0d77-11e5-a369-0800274fb806:246600 |+--------------+-----------+-----------+---------------+---------------------------------------------+19 rows in set (0.00 sec)

Page 27: MySQL 5.7 Multi-Source Replication

Filtros  de  Replicação  

•  Até  a  versão  5.7.2    

--replicate-do-db--replicate-ignore-db--replicate-do-table--replicate-ignore-table--replicate-wild-do-table--replicate-wild-ignore-table

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Page 28: MySQL 5.7 Multi-Source Replication

Filtros  de  Replicação  

•  A  parDr  do  MySQL  5.7.3    

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

mysql oowmysql01> STOP SLAVE;Query OK, 0 rows affected (0.16 sec)

mysql oowmysql01> CHANGE REPLICATION FILTER REPLICATE_IGNORE_DB=(oowdb);Query OK, 0 rows affected (0.00 sec)

mysql oowmysql01> START SLAVE;Query OK, 0 rows affected (0.15 sec)

mysql oowmysql03> create table t04(i int);Query OK, 0 rows affected (0.05 sec)

mysql oowmysql01> show create table t04;ERROR 1146 (42S02): Table 'oowdb.t04' doesn't exist

Page 29: MySQL 5.7 Multi-Source Replication

Filtros  de  Replicação  

•  Outros  exemplos  de  sintaxe  do  comando:  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

#: necessário parar os canais antes de alterar os filtrosmysql wbsrv01> STOP SLAVE;

#: possível comandos e declaraçõesmysql wbsrv01> CHANGE REPLICATION FILTER REPLICATION_DO_DB=(oowdb,mysql), REPLICATION_IGNORE_DB(test);#mysql wbsrv01> CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE=(‘oowdb.hist_%’,’test.tb_%’);#mysql wbsrv01> CHANGE REPLICATION FILTER REWRITE_DB((dbA,dbB), (dbC,dbD));#

#: para limpar as regras criadasmysql wbsrv01> CHANGE REPLICATION FILTER REPLICATE_DO_DB=(), REPLICATE_IGNORE_DB();

Page 30: MySQL 5.7 Multi-Source Replication

Considerações  finais  •  A  replicação  MulD-­‐Source  mudou  o  jogo:  

–  Tornou  o  modelo  de  replicação  mais  flexível;  –  Deu  agilidade  na  linha  de  raciocínio  de  novas  arquiteturas;  –  Agregou  valor  no  tocante  a  termos  so�ware  mais  escaláveis;  –  Aumentou  a  disponibilidade  da  informação;  –  Abriu  caminho  para  o  surgimento  do  MySQL  Group  Replica,on!!  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

mysql oowmysql01> SELECT CHANNEL_NAME, GROUP_NAME FROM performance_schema.replication_connection_status\G*************************** 1. row ***************************CHANNEL_NAME: oowmysql01-2  GROUP_NAME:*************************** 2. row ***************************CHANNEL_NAME: oowmysql01-3  GROUP_NAME:2 rows in set (0.00 sec)

Page 31: MySQL 5.7 Multi-Source Replication

Ques,ons?  

Wagner  Bianchi,  Oracle  ACE  Director  –  [email protected]  

Wagner  Bianchi  é  Oracle  ACE  Director,  com  cerDficações:    

•  MySQL  CerDfied  Database  Cluster  Administrator  •  MySQL  CerDfied  Database  Administrator  •  MySQL  CerDfied  Developer  

 Formando  em  Gerenciamento  de  Bancos  de  Dados,  com  Pós-­‐Graduação  em  Administração  de  Empresas  pela  FGV  e  MBA  em  Gerenciamento  de  Bancos  de  Dados  Oracle.    Blog:  wagnerbianchi.com  E-­‐mail:  [email protected]