如何从mysql备份恢复从属设备?

时间:2012-06-19 01:48:18

标签: mysql backup replication mysqldump database-replication

我正在运行MySql 5.1。我在两台机器上有Master和Slave,我设置了复制。

我在我的从属服务器上定期备份。我停止mysql,我复制所有文件,然后重新启动mysql。

如果我失去了Master,我可以在上次备份时设置一个新的。

如果我失去了奴隶怎么办?我可以从上次备份重启奴隶吗?我每次进行备份时都应该跟踪复制的位置吗?

1 个答案:

答案 0 :(得分:1)

我解决这个问题的方法是:
每月(或每周/每天)备份,重置主机,以便重新启动日志文件。将备份管道传输到主服务器,以便一次为数据库重新填充一个表。重启奴隶 我有更多的奴隶,表重新加载并不需要太长时间。如果备份时间过长,您可能希望以不同的方式执行此操作 如果你丢失了一个奴隶,你可以让它重新启动日志文件,只要你用表重新启动它们。如果您从其中一个从站进行备份,那么确保它首先与主站同步至关重要。

可能还有其他方法可以做到这一点,但定期更新日志文件变得非常有用 主代码进入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日志文件,然后重新启动并运行上面的内容。