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:
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?
Pergunta
Daniel Vasconcelos
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
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.