Opções de Inicialização da Replicação


Você deve utilizar a opção server-id no master e no slave para estabelecer uma ID de conexão única em cada servidor. Você deve escolher um valor único no intervalo de 1 a 2^32-1 para cada master e slave. Example: server-id=3

As opções que você pode utilizar no servidor master para controle do log binário estão todas descritas em "O Log Binário".

A seguinte tabela descreve as opções que você pode utilizar nos servidores slaves. Você pode especificá-las na lina de comando ou no arquivo de opção.

NOTA: A replicação trata das seguintes opções de um modo especial:

Se não existir nenhum arquivo master.info quando o servidor slave inicia, ele usa valores específicados no arquivo de opções ou na linha de comando. Isto irá ocorrer quando você iniciar o servidor como um slave de replicação pela primeira vez, ou você executar RESET SLAVE e desliga e reiniciar o servidor slave.

No entanto, se o arquivo master.info existe quando o servidor slave iniciar, ele usa o valor no arquivo e IGNORA qualquer valor especificado para aquelas opções no arquivo de opção ou na linha de comando.

Suponha que você especifique esta opção em seu arquivo my.cnf:

[mysqld]
master-host=this_host

A primeira vez que você iniciar o servidor como um slave de replicação, ele irá ler e usar a opção do arquivo my.cnf. O servidor gravará então aquele valor no arquivo master.info. A próxima vez que você iniciar o servidor, ele irá ler o valor da máquina master a partir do arquivo master.info. Se você modificar o arquivo my.cnf para especificar uma máquina master diferente, ele não terá efeito. Você deve usar CHANGE MASTER TO.

A partir do MariaDB, as seguintes opções também é tratada de forma especial:

O arquivo master.info inclui os valores correspondentes a essas opções. Adicionalmente, o formato do arquivo na versão 4.1.1 inclui na sua primeira linha o número de linhas no arquivo. Se você atualizar um servidor mais antigo para a versão 4.1.1, o master.info será atualizado para o novo formato automaticamente quando o novo servidor iniciar. (Se você substituir um MariaDB ou mais novo por uma versão mais antiga que a 4.1.1, você deve remover a primeira linha manualmente antes de iniciar o servidor mais antigo pela primeira vez.)

Como o servidor da precedência a uma arquivo master.info existente sobre as opções de inicialização acima descrito, você pode preferir usar as opções de inicialização para estes valores, e especifique-os usando a instrução CHANGE MASTER TO. Leia "CHANGE MASTER TO".

Este exemplo mostra um uso mais extensivo das opções de inicialização para configurar um servidor slave:

[mysqld]
server-id=2
master-host=db-master.mycompany.com master-port=3306
master-user=pertinax master-password=freitag master-connect-retry=60
report-host=db-slave.mycompany.com

The following list describes startup options for controlling replication:

Algumas destas opções, como todas as opções --replicate-*, só podem ser definidas na inicialização do servidor slave, e não com ele ligado. Planejamos corrigir isto.

Aqui está a ordem de avaliação das regras --replicate-*, para decidir se a consulta será executada pelo slave ou ignorada por ele:

  1. Existe alguma regra --replicate-do-db ou --replicate-ignore-db?
    • Sim: teste-as como para --binlog-do-db e --binlog-ignore-db (see "O Log Binário"). Qual é o resultado do teste?
      • ignore a consulta: ignore-a e saia.
      • execute a consulta: não execute-a imediatamente, adie a decisão, vá para o passo abaixo.
    • Não: vá para o passo abaixo.
  2. Existe alguma regra --replicate-*-table?
    • Não: execute a consulta e saia.
    • Sim: vá para o passo abaixo. Apenas tabela que serão atualizadas serão comparadas às regras (INSERT INTO sales SELECT * from prices: apenas sales será comparada às regras). Se várias tabelas forem ser atualizadas (instruções multi-tabelas) a primeira a corresponder a regra (com do ou ignore) vence (isto é, a primeira tabela é comparada a regra. se nenhuma decisão pode ser tomada a segunda tabela é compara às regras, etc).
  3. Existe alguma regra --replicate-do-table?
    • Sim: o tabela encaixa em alguma delas?
      • Sim: execute a consulta e saia.
      • Não: vá para o passo abaixo.
    • Não: vá para o passo abaixo.
  4. Existe alguma regra --replicate-ignore-table?
    • Sim: a tabela encaixa em alguma delas?
      • Sim: ignore a consulta e saia.
      • Não: vá para o passo abaixo.
    • Não: vá para o passo abaixo.
  5. Existe alguma regra --replicate-wild-do-table?
    • Sim: a tabela se encaixa em qualquer uma delas?
      • Sim: execute a consulta e saia.
      • Não: vá para o passo abaixo.
    • Não: vá para o passo abaixo.
  6. Existe alguma regra --replicate-wild-ignore-table?
    • Sim: a tabela se encaixa em qualquer uma delas?
      • Sim: ignore a consulta e saia.
      • Não: vá para o passo abaixo.
    • Não: vá para o passo abaixo.
  7. Nenhuma regra --replicate-*-table foi correspondida. Existe outra tabela para se testar com estas regras?
    • Sim: loop.
    • Não: testamos todas as tabelas a serem atualizadas, nenhuma regra foi obedecida. Existem regras --replicate-do-table ou --replicate-wild-do-table?
      • Sim: ignore a consulta e saia.
      • Não: execute a consulta e saia.

      Retornar