Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1425718
  • 博文数量: 77
  • 博客积分: 2104
  • 博客等级: 大尉
  • 技术积分: 2322
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-19 13:21
个人简介

关注于系统高可用、网站架构

文章分类

全部博文(77)

文章存档

2018年(1)

2017年(1)

2015年(4)

2014年(8)

2013年(4)

2012年(12)

2011年(17)

2010年(30)

分类: Mysql/postgreSQL

2010-02-02 16:12:13

两台数据库服务器(192.168.1.5051),目前应用均在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

阅读(2637) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~