wizardzj 发表于 2010-02-02 16:12

备份DB的恢复


两台数据库服务器(192.168.1.50、51),目前应用均在50机器上,51只是备份机器,考虑到复制已经出现多处数据不一致,并且51机器只作备份机器,因此对51的数据采取重建策略,由50机器上的数据导出并导入到51,执行如下这些步骤:

-- 1. 在 50 DB 执行:
flush logs;
stop slave;
show master logs;
show slave status \G

mysqldump -uroot -p --single-transaction --all-databases --force -R > /home/kay.zhang/all50.sql
scp /home/kay.zhang/all50.sql 192.168.1.51:/home/kay.zhang/

-- 2. 在 51 DB 执行:
flush logs;
stop slave;
show master logs;
show slave status \G

tee /home/kay.zhang/all50in51.log;
source /home/kay.zhang/all50.sql;
notee;

flush logs;
stop slave;
show master logs;
show slave status \G

# 使用 50 机器开始备份时flush logs 所产生的那个日志文件
change master to master_log_file='mysql-bin.000167', master_log_pos=4;

# 由于 50 机器在导出过程中仍然会产生记录,所以从'mysql-bin.000167'开始复制之后,会出现某些数据重复的错误,
# 直接忽略这些错误并再启动slave即可,重复执行以下语句直到不再有错误
stop slave;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
start slave;
show slave status \G


-- 3. 在 51 DB 上执行:
# 将50 上的复制起点定在数据成功导入之后再次 flush logs 所产生的新文件
stop slave;
change master to master_log_file='mysql-bin.000123', master_log_pos=4;
start slave;
show slave status \G


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/64007/showart_2167569.html
页: [1]
查看完整版本: 备份DB的恢复