1
julyclyde 2013-06-02 09:30:50 +08:00 via iPad 1
12可以。3需要;原master恢复后作为slave就得了
|
2
likuku 2013-06-03 04:20:30 +08:00 1
3 不需要。但之后,建议将slave当成新的master用;或者找机会停机维护,将读写使用中的slave数据复制到旧的master覆盖老的(masql库因为记录主从配置信息,不能覆盖,建议老的master也做好完整备份)。主从mysql版本一致时(作主从,尽可能如此),我是直接复制数据文件的,当然最好先关闭相关mysql服务。
|
4
likuku 2013-06-03 10:03:14 +08:00 1
@romotc 不考虑恢复的话,是有无痛备份的办法:
专用备份机:磁盘空间很足,磁盘性能非常好,CPU也要足够强,最好就是SSD阵列,跑 mysql:对你所有的master作slave, 文件系统建议用btrfs/zfs支持snapshot的,需要备份时,临时关闭所有mysql实例,对mysql数据所在的文件系统作个snapshot,然后启动mysql,继续对所有master作同步。 以前我们用的办法类似这个,只是在专用备份机上临时锁表,然后rsync将数据文件传到专用存储机(zfs),那时ssd阵列跑btrfs也很慢,slave的lag持续增加。 因为slave的同步是串列单线程,而多线程的各台master生成binlog的速度远快于slave同步串列执行的速度,这备份机最好有比master更强的性能。 新契机: 1.新版mysql貌似有多线程slave同步了。 2.备份的mysql机上可以起多个mysql实例来充分使用cpu core |
5
julyclyde 2013-06-03 10:07:06 +08:00
如果只用InnoDB及其衍生物的话,可以用xtraBackup工具备份
@likuku snapshot并不能保证可靠。InnoDB经常只把数据写入redo log,而不写入数据文件。如果关闭再开启,会有一个很长的关闭阶段,或者开启后有个很长的Recovery阶段,虽然最终数据正确,但缺乏实用性;flash tables with read lock不能保证InnoDB的完整写入 |
6
likuku 2013-06-03 10:29:43 +08:00
|