免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5245 | 回复: 14
打印 上一主题 下一主题

【讨论中】mysql主从同步的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-22 16:18 |只看该作者 |倒序浏览
本帖最后由 cenalulu 于 2012-08-22 16:59 编辑

是这样的,两台5.5的mysql做主从同步复制。一般的思路都是设置好角色的必要参数后,然后从主那里锁表,导出库,将这个要同步的库复制到从服务器并导入。然后再启动同步复制线程这样开始同步,也就是说在运行此机制前,主从数据库中数据是一致的。我在这里有个疑问,如果在每日都有大量数据的营运环境中,先锁表,导出导入这些操作引起的耗时不会对当前的营运环境造成影响吗?又或者说,因为数据库压力的需要,我需要马上加多一台数据库服务器作为从的角色加入到这个环境当中,如果要也按以上这样操作的话,是不是很不科学。我在想,是不是有一种方法是可以当这台从数据库服务器启动之后是可以马上开始同步复制工作的呢?

论坛徽章:
224
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:1015-16赛季CBA联赛之四川
日期:2023-07-25 16:53:45操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
2 [报告]
发表于 2012-08-22 16:33 |只看该作者
这个问题问得不错,支持一下,

白手起家

帖子
    1
主题
    1
精华
    0
可用积分
    1
专家积分
    0
在线时间
    18 小时
注册时间
    2010-02-12
最后登录
    2012-08-22

两年前的MJ,处女帖{:3_198:}

论坛徽章:
0
3 [报告]
发表于 2012-08-22 16:55 |只看该作者
看来CU出错了,我绝对不是2010年注册的,是03的,而且发贴和回贴的数字绝对不是那样。
回复 2# action08


   

论坛徽章:
0
4 [报告]
发表于 2012-08-22 17:29 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
224
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:1015-16赛季CBA联赛之四川
日期:2023-07-25 16:53:45操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
5 [报告]
发表于 2012-08-28 13:20 |只看该作者
mysql> reset master;

看看会出现啥{:3_188:}

论坛徽章:
1
双鱼座
日期:2014-07-25 11:32:13
6 [报告]
发表于 2012-08-31 10:35 |只看该作者
不知道我对你的理解对不对啊。

mysql服务本身主从复制不是像你说的那种什么锁表导出,然后再复制到从服务器里进行导入。

远不是这样的,做主从,一般是用的二进制日志来做的(这个要开启的),这个日志会记录除select即操作的其它很多记录,而且这个日志你也可以去看的。

从mysql服务器会开启一个线程专门到主服务器里去拿二进制日志,然后同步到自己的库里去。。

这里主从复制的二进制文件有两种记录方式,一种是基于sql的,一种是记录行变化的。(参数由binlog_format决定)

因为基于sql在一些有触发器或者函数像now(),uuid()之类的可能会导致同步不一致,后来引进了row,即是针对行改变的形式去记录,,因为基于行,所以

需要的磁盘空间可能会很大,所以还有mixed的格式,这个相当于智能的形式,两者的结合

论坛徽章:
0
7 [报告]
发表于 2012-09-01 00:35 |只看该作者
谢谢你回复和意见,你所提到的那些其实我也清楚,也启用了二进制日志等必须的措施,但现在摆在我面前的就是这样一个情况,正在运行的一台mysql,现在要加多一台从的上去
我是按照标准的做法,开启日志,设置好server_id 等必要的参数。还有从的那台机无论版本,安装位置都是和主的一样。不同的就是从的那台只有基础的三个数据库(mysql,test,还有一个忘记了),上面并没有将要同步的那个库。两台服务都开了同步线程了。但等了好久。从的那台还是什么动静都没有。后来我把主的那个要同步的库先复制一份到从。这样对主有数据操作的时候,从服务器就有反应了,就是因为这样的实验所以才导致出我的那个疑问,不知道这样的做法是否有问题。请指教一下。谢谢了
回复 6# 秦风笛韵1


   

论坛徽章:
0
8 [报告]
发表于 2012-09-01 07:27 |只看该作者
学习一下,mark.

论坛徽章:
1
双鱼座
日期:2014-07-25 11:32:13
9 [报告]
发表于 2012-09-01 11:43 |只看该作者
噢,我明白你的意思了,你现在想加一台从数据库,但是那个新的从服务器里啥也没有。

这样肯定不行的,你可以去看下那个二进制日志,里面记录的其实就是些sql,你库都没有,一个sql怎么可能同步成功呢。。

一个根本的办法就是让这台新的服务器里的数据和主的一样,至于方法嘛,随便你

回复 7# gzfreeman


   

论坛徽章:
0
10 [报告]
发表于 2012-09-01 22:19 |只看该作者
对啊,我就是这个意思,当然可以通过一些方法令到这台新的服务器里的数据和主的一样。所以我的一个疑问就是在不能停的运营环境当中,也是用这样的方法来增加从的服务器吗?
回复 9# 秦风笛韵1


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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP