我正在运行 MySql 5.1。我在 2 台机器上有 Master 和 Slave,并设置了复制。
我在我的从属服务器上进行定期备份。我停止mysql,复制所有文件并重新启动mysql。
万一我失去了大师,我可以从上次备份中设置一个新的。
如果我失去了奴隶怎么办?我可以从上次备份重新启动从站吗?我是否应该在每次备份时跟踪复制的位置?
我正在运行 MySql 5.1。我在 2 台机器上有 Master 和 Slave,并设置了复制。
我在我的从属服务器上进行定期备份。我停止mysql,复制所有文件并重新启动mysql。
万一我失去了大师,我可以从上次备份中设置一个新的。
如果我失去了奴隶怎么办?我可以从上次备份重新启动从站吗?我是否应该在每次备份时跟踪复制的位置?
我解决这个问题的方法是:
每月(或每周/每天)备份,重置 master 以便它重新启动日志文件。将备份通过管道传输到主服务器,以便一次将一个表重新填充数据库。重新启动从站。
我有更多的奴隶,桌子重新加载并没有花太长时间。如果您的备份时间过长,您可能需要以不同的方式执行此操作。
如果您丢失了一个从属服务器,您可以通过日志文件重新启动它,只要您通过重新加载表来启动它们。如果您从其中一个从属设备进行备份,那么首先确保它与主设备同步至关重要。
可能有其他方法可以做到这一点,但定期重新启动日志文件变得非常有用。
进入 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 日志文件,然后重新启动并运行上述内容。