+++ title = "Configure o Source Database (origem)" weight = 35 +++ ### Rode a tarefa DMS Replication Task com Change Data Capture (CDC) Para garantir mínimo impacto na migração do banco de dados, nós usaremos replicação contínua das mudanças (também conhecida como **Change Data Capture (CDC)**) a partir do banco de dados origem. Para mais informações sobre CDC e o suporte do CDC pelo **AWS DMS** veja este artigo. #### Habilite binary log (log binário) no banco de dados origem Para a replicação contínua do **AWS DMS** a partir do MySQL database, você precisará habilitar o binary log e mudar algumas configurações no banco de dados origem. 1. Login no servidor **Source Environment Database** (origem) Para quem estiver fazendo **o lab por conta própria** - a informação necessária para acessar o banco de dados está descrita na seção **Output** do template CloudFormation **ApplicationMigrationWorkshop** . ![Database Server login information](/db-mig/db-server-ssh-self-paced.png) Para quem estiver participando de um **Evento AWS** - a informação necessária para acessar o banco de dados está descrita nas seções **Database IP**, **Database Username** e **Database SSH Key** do Team Dashboard. ![Database Server login information](/db-mig/db-server-ssh-event.png) Caso não saiba como acessar o servidor via SSH, cheque: - Para usuários de Microsoft Windows veja este artigo. - Para usuários de Mac OS veja este artigo. 2. Dê privilégios adicionais para o usuário do banco de dados chamado **wordpress-user** Rode os seguintes comandos no servidor de banco de dados: ``` sudo mysql -u root -pAWSRocksSince2006 GRANT REPLICATION CLIENT ON *.* to 'wordpress-user'; GRANT REPLICATION SLAVE ON *.* to 'wordpress-user'; GRANT SUPER ON *.* to 'wordpress-user'; exit ``` 3. Crie uma pasta para os **bin logs** Rode os seguintes comandos no servidor de banco de dados: ``` sudo su - mkdir /var/lib/mysql/binlogs chown -R mysql:mysql /var/lib/mysql/binlogs exit ``` Mais informações sobre binary log podem ser encontradas na documentação do MySQL. 4. Crie e modifique o arquivo **/etc/mysql/my.cnf** Rode os seguintes comandos no servidor para editar o arquivo: ``` sudo su - cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf chown -R mysql:mysql /etc/mysql/my.cnf nano /etc/mysql/my.cnf ``` Então adicione a seguinte informação na seção **[mysqld]**, salve o arquivo e saia do nano: ``` server_id=1 log-bin=/var/lib/mysql/binlogs/log binlog_format=ROW expire_logs_days=1 binlog_checksum=NONE binlog_row_image=FULL log_slave_updates=TRUE performance_schema=ON ``` 5. **Reinicie** o serviço MySQL para aplicar as mudanças Na console, rode o seguinte comando para aplicar as mudanças: ``` sudo service mysql restart ``` {{% notice warning %}} Para aplicar as alterações é necessário reiniciar o mysql service. Isso irá parar o banco de dados por alguns momentos. {{% /notice %}} 6. **Teste** as mudanças Certifique que as alterações no **/etc/mysql/my.cnf** foram efetuadas rodando os comandos: ``` sudo mysql -u root -pAWSRocksSince2006 select variable_value as "BINARY LOGGING STATUS (log-bin) :: " from performance_schema.global_variables where variable_name='log_bin'; select variable_value as "BINARY LOG FORMAT (binlog_format) :: " from performance_schema.global_variables where variable_name='binlog_format'; exit ``` O output deverá mostrar **BINARY LOGGIN STATUS** configurado para **ON**, como na imagem abaixo: ![expected-results](/db-mig/bin-log-verificaion.png) Caso esteja tudo bem você pode **exit** (sair) do SSH, em caso de problemas: cheque o **/var/log/mysqld.log** para erros.