[GTER] Freeradius - MySQL replication
Daniel Vasconcelos
vdaniel at tcheturbo.com.br
Fri Dec 12 10:05:39 -02 2014
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
More information about the gter
mailing list