生产环境新增一个从库

[复制链接]
查看11 | 回复6 | 2015-3-4 14:52:11 | 显示全部楼层 |阅读模式
最近有个需求,需要在生产环境(写操作不是很频繁)新增一个从库,但是主库的数据量比较大,有100G+,而且里面同时有MYISAM和Innodb存储引擎的表。用mysqldump导出非常的慢,所以我原本打算在原有从库上先使用flush tables with read lock,锁定写操作,再拷贝从库的数据文件到新从库上开启主从同步,这样更快点。但是我看网上的相关资料,都说flush tables with read lock这个语句有很大的风险会引起阻塞,而且只对MYISAM的表有效,所以我又开始纠结了,不知道该怎么办能够安全的进行数据拷贝
后来又想到一种方法,就是暂时先断开原有从库来进行数据文件的拷贝,拷贝完成后再start slave。但是这个操作我有两点不确定的,一点是如果从库与主库断开时间较长(2小时左右),重新启动主从同步会不会有问题,第二点是如果在拷贝的时候,从库上有select查询,不知道会不会引起relay_log或者别的日志的改变。
请各位给点建议或者帮忙评估一下,用什么样的方法更合适呢?

回复

使用道具 举报

千问 | 2015-3-4 14:52:11 | 显示全部楼层
建议用xtrabackup先备份下,然后用这个备份去搭建从库。也是已知最快的一个方法了。 另外你myisam表有多大啊,如果很小的话,而且你没有大查询的话,应该可以承受的。
回复

使用道具 举报

千问 | 2015-3-4 14:52:11 | 显示全部楼层
WGY20051896 发表于 2016-5-10 17:43
建议用xtrabackup先备份下,然后用这个备份去搭建从库。也是已知最快的一个方法了。 另外你myisam表有多大啊 ...

请问使用XtraBackup是拷贝主库上的数据,还是原有从库上的数据呢?
我看备份出来的文件中有一个xtrabackup_binlog_info,里面记录的是备份的数据库中最后的binlog的位置信息。。。
如果拷贝主库上的数据后,是不是只要在设定binlog的位置的时候,直接使用xtrabackup_binlog_info中给出的binlog位置就可以了?
回复

使用道具 举报

千问 | 2015-3-4 14:52:11 | 显示全部楼层
lvchenotl 发表于 2016-5-11 10:40
请问使用XtraBackup是拷贝主库上的数据,还是原有从库上的数据呢?
我看备份出来的文件中有一个xtraback ...

可以的
回复

使用道具 举报

千问 | 2015-3-4 14:52:11 | 显示全部楼层
本帖最后由 lujinke 于 2016-5-17 11:57 编辑
先在从库上用Xtrabackup备份,但是注意选好备份参数,一定要获取master上的binlog位点,然后创建新实例,按照位点指向master即可备份前,建议先用做一次主从数据校验,在晚上使用pt-table-checksum

回复

使用道具 举报

千问 | 2015-3-4 14:52:11 | 显示全部楼层
http://www.itpub.net/thread-2056080-1-1.html
看看我的回复。
回复

使用道具 举报

千问 | 2015-3-4 14:52:11 | 显示全部楼层
谢谢各位的耐心解答!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行