Thursday, January 31, 2008

Mysql master and slaver server日志文件清理方法

一、要在MASTER要清理日志,需按照以下步骤:
1. 在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。
2. 使用SHOW MASTER LOGS获得主服务器上的一系列日志。
3. 在所有的从属服务器中判定最早的日志。这个是目标日志。如果所有的从属服务器是更新的,这是清单上的最后一个日志。
4. 制作您将要删除的所有日志的备份。(这个步骤是自选的,但是建议采用。)
5. 清理所有的日志,但是不包括目标日志。
二、要在SLAVER上清理日志,需要按以下步骤:
1. 在本机上使用SHOW SLAVE STATUS来检查它正在使用哪个Relay_Log_File日志。
2. 保留此目标日志,可以删除之前的中继日志文件。
(中继日志也可以将本机MYSQL SERVER SHUTDOWN后,将hostname-relay-bin.index, hostname-relay-bin.*, relay-log.info删除之后重启MYSQL SERVER,其中master.info文件不能删除)
3. 使用SHOW MASTER LOGS获得本机上的一系列日志。
4. 保留最新一个,可以删除之前的bin-log文件。
5. 建议删除之前都先备份,删除后重启SERVER看是否正常同步数据,把当前正式使用的中继日志和bin-log日志删除可能会导致同步不可用。
三、如果主机更新了replication slave user的密码,在SLAVE上执行:
mysql> STOP SLAVE; -- if replication was running
mysql> CHANGE MASTER TO MASTER_PASSWORD='new3cret';
mysql> START SLAVE; -- if you want to restart replication
四、CHANGE MASTER 使用注意
CHANGE MASTER会删除所有的中继日志文件并启动一个新的日志,除非指定了RELAY_LOG_FILE或RELAY_LOG_POS,在此情况下,中继日志被保持;relay_log_purge全局变量被静默地设置为0。
CHANGE MASTER TO可以更新master.info和relay-log.info文件的内容。

No comments :