1
halfbloodrock 2013-08-12 15:33:19 +08:00
同步最早的值应该是master里的position那栏的值.
|
2
Ansen OP @halfbloodrock
能否 将从mysql当成一个空的数据库,然后慢慢跟主mysql同步,最后成一样 |
3
mogging 2013-08-12 16:16:22 +08:00
同问,这个问题很常见
|
4
Ever 2013-08-12 16:19:02 +08:00
5.1及之前有个deprecation的load data from master
percona-tools里带pt-table-sync 不过最好还是停机备 |
5
xzl 2013-08-12 16:26:26 +08:00
@Ever load data from master其实也是做了同样的操作,表要都是myisam,然后他lock tables,再传输数据文件过来。
|
7
halfbloodrock 2013-08-12 22:52:01 +08:00 1
@Ansen 要是不能停机的话,innodb表试试用xtrabackup备份恢复,这工具号称不锁表。然后再同步bin-log
bin-log已经有了吧,我都是不停机直接mysqldump出全库,然后slave上直接导入然后同步主库.......不过别学我。。。重要生产库还是寻找downtime配置完成,别找技巧了。。。这个实在玩不起。 |
8
Ansen OP |
9
msg7086 2013-08-13 05:29:27 +08:00
不能。只能锁表导库…
|
10
yangqi 2013-08-13 10:16:24 +08:00 1
myisam没办法,只能停机,innodb的话可以hotcopy出来。话说生产环境的数据库就没有备份么?不能从备份导入然后再慢慢同步
|
11
Ansen OP @yangqi
是innodb 这两天搞迁移机房,上新服务器。。产品升级, mysql半瓶水,最后导致同步有问题。近千万的用户数据,导入导出时间太长了 就有了这个想法,故来看看,可行不,嘿嘿, 当然生产环境还是得按步就班的来 |
12
BeijingBaby 2013-08-13 11:33:37 +08:00 1
我的做法一般是:
1.等周末半夜停掉master 2.把数据dump到slave,或者rsync数据目录。 3.配置好主从关系 4.查看master binlog状态,在slave上设置同步位置,启动同步。这时候其实是没有数据同步。 5.启动master,看双方状态正常,后面就不用管了。 操作过很多次,基本没出过问题,期间遇到过有人把slave当master插入数据,然后报错,但遇到错误跳过这些就搞定了。 |
13
Ansen OP |
14
sampeng 2013-08-13 12:15:53 +08:00 1
你需要的不是在这问。。google。。
关键词 mysql 主从同步 重新开始 stop slave reset slave |
15
sampeng 2013-08-13 12:18:12 +08:00
不明白楼上的同学为啥没尝试。。。mysql当然必然考虑这个问题。。。自带命令为啥不用。。。
|
18
Ansen OP @likuku 机器型号一致,mysql版本一致,配置 除了innodb_buffer_pool_size大小不一样外其余都一致,
我点是不是太背了 |
19
likuku 2013-08-13 15:29:44 +08:00
@Ansen 全新的备机(Slave),只需要 数据,不需要 binlog。
主机停止,rsync复制数据目录到新备机,修改备机设定,增加同步相关参数信息,关闭同步开关。 启动主机,检查,正常。启动备机,检查,正常,打开同步开关。 另外还建立了专用于备份的 备份从机,只用来同步主机的数据库。备份从机因为不被业务使用,随时可以停机/全局锁表,复制打包数据+ binlog。 |
20
msg7086 2013-08-13 15:31:14 +08:00
@sampeng 我在google上没搜到什么特别有用的东西。
不知道你说的是不是「重置mysql主从同步」这篇文章。此文中提到的方法就是lock tables再dump sql的。 顺便官方文档里做repli也是用的lock+dump http://dev.mysql.com/doc/refman/5.5/en/replication-howto-mysqldump.html |