我正在运行MySql 5.1。我在2台计算机上有Master和Slave,并设置了复制。
我在从属服务器上进行定期备份。我停止mysql,复制所有文件,然后重新启动mysql。
万一丢失主服务器,可以从上一个备份中设置一个新的。
如果我失去了奴隶怎么办?我可以从上次备份重启从服务器吗?我是否应该在每次备份时都跟踪复制的位置?
最佳答案
我解决此问题的方法是:
进行每月(或每周/每天)备份,重置主数据库,以便重新启动日志文件。通过管道将备份传输到主数据库,以便一次将数据库重新填充一个表。重新启动从站。
我有更多的奴隶,表重新加载的时间并不长。如果备份花费的时间太长,则可能需要采用其他方法。
如果丢失了一个从属服务器,只要通过重新加载表来启动它们,就可以通过日志文件重新启动它。如果您从一个从站进行备份,那么确保它首先与主站同步至关重要。
可能还有其他方法可以执行此操作,但是定期重新启动日志文件非常有用。
进入cron的主代码(这是一种回溯方式,您应该验证它是否适合您):
#!/usr/bin/ksh
date=`date +%y%m%d`
mysql -u root db_name -e "flush tables with read lock;"
mysqldump -u root -pYrPass --add-drop-table --add-locks natl_inv > /path/to/backup/db_name$date
mysql -u root -e "reset master;"
mysql -u root db_name -e "unlock tables;"
mysql -u root –pYrPass db_name < /path/to/backup/db_name$date
mysql -u root -e "flush logs;"
在奴隶上:
使用show slave status命令来验证您是否与主服务器同步。如果要重新同步到主服务器,请运行:
slave stop;
reset slave;
slave start;
您可能需要停止mysql,删除从站bin日志文件,然后重新启动并运行上面的命令。
关于mysql - 如何从mysql备份还原从站?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11093367/