Ir para conteúdo
Fórum Script Brasil
  • 0

Freeradius - Replicação MySQL


Daniel Vasconcelos

Pergunta

E aí galera!
Seguinte, to montando uma máquina para "espelhar" o meu servidor radius, porém, estou tendo um problema com o MySQL. As configurações do freeradius em si estão todas corretas (fiz testes de autenticação e funcionou perfeitamente). Porém, o meu problema começa quando eu estou replicando o banco de dados.

Tenho o servidor MASTER e o SLAVE, sendo que:
Master: rodando o serviço freeradius e consequentemente o banco de dados;
Slave: rodando o serviço freeradius e consequentemente o banco de dados;

A configuração do arquivo "/etc/mysql/my.cnf" em ambas as máquinas está assim:


## MASTER
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days =10
max_binlog_size = 100M
binlog_do_db = radius

## SLAVE
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
relay-log = /var/log/mysql/mysql-relay-bin.log
log-slave-updates = 1
expire_logs_days = 10
max_binlog_size = 100M
binlog_do_db = radius

A partir disso, para que a replicação acontecesse, efetuei os seguintes procedimentos (partindo do princípio de que a questão de usuários já estejam configurados):

No servidor MASTER:
Travei as tabelas como somente leitura;
Peguei a posição do arquivo bin (show master status;);
Fiz a exportação da base para o servidor slave;

No servidor SLAVE:
Fiz a importação da base;
Executei o comando no mysql: CHANGE MASTER TO MASTER_HOST='meuhost',MASTER_USER='replication', MASTER_PASSWORD='senha', MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS= 74949498;
Em seguida: slave start;

A partir dai, tudo estava correndo bem, até que na manhã seguinte, cheguei no trabalho e fui verificar como estava a replicação.
No MySQL do servidor slave digitei o comando: show slave status\G;
Para minha felicidade estava tudo certo até então. Porém, mais tarde, fui verificar novamente o status, e me deparei com um erro:

mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: meuhost
Master_User: replicator
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000009
Read_Master_Log_Pos: 50811963
Relay_Log_File: mysql-relay-bin.000003
Relay_Log_Pos: 244
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1194
Last_Error: Error 'Table 'radacct' is marked as crashed and should be repaired' on query. Default database: 'radius'. Query: 'UPDATE radacct SET framedipaddress = '10.10.4.5', acctsessiontime = '53400', acctinputoctets = '0' << 32 | '40914351', acctoutputoctets = '0' << 32 | '362241158' WHERE acctsessionid = '810033f5' AND username = 'jaguar' AND nasipaddress = '10.54.2.5''
Skip_Counter: 0
Exec_Master_Log_Pos: 98
Relay_Log_Space: 725792285
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1194
Last_SQL_Error: Error 'Table 'radacct' is marked as crashed and should be repaired' on query. Default database: 'radius'. Query: 'UPDATE radacct SET framedipaddress = '10.10.4.5', acctsessiontime = '53400', acctinputoctets = '0' << 32 | '40914351', acctoutputoctets = '0' << 32 | '362241158' WHERE acctsessionid = '810033f5' AND username = 'jaguar' AND nasipaddress = '10.54.2.5''
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
1 row in set (0.00 sec)

ERROR:
No query specified


Bom, estou preocupado, pois não tenho experiência com replicação do MySQL, mas li bastante sobre e fui surpreendido com esta inconsistência de informação. Alguém saberia explicar um possível motivo de isso ter acontecido? E a partir disso, como posso revidar? Devo fazer o processo de exportação/importação novamente?

Atenciosamente

--
Daniel Vasconcelos
IT Analyst
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Qual o engine da tabela 'radacct' ?

Se innodb dê um restart nos servidores, que ela será reparada imediatamente.

Se MyISAM consulte sobre repair no manual do mysql para reparar a tabela.

Veja abaixo algumas verificações que você possa fazer para evitar este tipo de problema,

Verifique se os discos não estão muito fragmentados

Verifique se os discos estão cheios devem ter 30% de espaço livre, no mínimo.

Verifique sistema de nobreak

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...