Replicações Mysql: o escravo não é somente leitura

2

Depois de configurar as replicações do mysql com o esquema db master / slave, notei que o servidor db escravo não é somente leitura. De causa, depois disso eu configurei manualmente no arquivo /etc/my.cnf.

Eu não consigo entender: não é o comportamento padrão que os escravos estão sempre rodando no modo somente leitura ou devem sempre ser configurados manualmente?

    
por Andrey Pesoshin 30.10.2010 / 21:58

4 respostas

0

É bastante comum não ter o escravo no modo read_only ..

na verdade, se você não definir você mesmo, ele nunca estará ativado ...

Uma boa pergunta é por que você realmente deseja defini-lo ... ???

Você está tentando proteger os erros? ou erros fizeram meus usuários admin ??? ou a aplicação?
Considerando que MUITOS administradores estão usando o MySQL como root de qualquer maneira, onde está a proteção aqui?
Você não pode proteger exatamente seus dados como você imaginaria (como tudo replicado para o escravo de qualquer maneira)

Você sabe que qualquer usuário com super privilégios e o encadeamento de replicação não obedecem ao read_only ??

Uma abordagem estruturada e strong para usuários e privilégios é a maneira correta de lidar com problemas de replicação, não com uma configuração read_only no escravo

Na minha opinião sincera, na verdade não protege muito ... ou útil para qualquer coisa além de parar alguns usuários que não escrevem .. (que em sistemas de produção - nunca deve acontecer de qualquer maneira)

Como exemplo, In Mysql-Multi-Master (read_only é definido pelos scripts) Em teoria, isso é apenas para decidir qual servidor é o "True Master" na configuração mestre-mestre.

Ao todo .. Esqueça read_only (é realmente desnecessário, e provavelmente não irá protegê-lo do que você imagina)

    
por 18.11.2010 / 00:19
1

Não, não é o comportamento padrão, e sim, se você quer que os escravos sejam lidos apenas, você precisa fazê-lo "manualmente" (ou script).

A razão para isso é principalmente porque é assim que começou e não foi alterado desde então. No entanto, há muitas maneiras em que esse é o comportamento desejado, por exemplo, se seus escravos tiverem algumas tabelas que seu mestre não possui (como tabelas de resumo de relatórios). Ou, se você quiser executar um ALTER, você pode executá-lo em seu escravo primeiro, failover, e então executá-lo em seu mestre para não impactar o site ao vivo.

    
por 18.11.2010 / 00:19
0

Acho que o modo somente leitura é apenas por usuário, não globalmente para o escravo Portanto, certifique-se de não estar replicando os usuários (banco de dados 'mysql') e, se necessário, crie usuários com apenas a opção de concessão USAGE - assim, esses usuários terão somente leitura.

    
por 01.11.2010 / 10:12
0

Embora muitos de nossos escravos estejam definidos como read_only, alguns deles não são.

Nesses casos, geralmente é porque abrigamos outros bancos de dados de desenvolvimento / rascunho / relatórios nesses servidores. Nesses casos, os usuários só recebem permissões SELECT para o banco de dados primário, mas as permissões SELECT / UPDATE para o banco de dados secundário.

Além disso, se a replicação multimestre estivesse sendo usada, ter os escravos como read_only por padrão seria um problema sério. :)

    
por 17.11.2010 / 23:53