V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Lawrence886
V2EX  ›  数据库

这个梗我能笑一年。

  •  
  •   Lawrence886 · 2017-03-23 09:32:42 +08:00 · 6353 次点击
    这是一个创建于 2591 天前的主题,其中的信息可能已经有所发展或是发生改变。
    typedef enum EMSqlMode
    {
    	SM_CONST,	//数据一致性优先,当有故障发生时,不进行主、从切换
    	SM_HA,		//高可用性优先,当有故障发生时,进行主、从切换
    	SM_OTHER
    }EMSqlMode;
    
    40 条回复    2017-03-24 13:59:17 +08:00
    TakWolf
        1
    TakWolf  
       2017-03-23 09:35:48 +08:00
    看不懂笑点,楼主给解释下
    jsjjdzg
        2
    jsjjdzg  
       2017-03-23 09:40:21 +08:00
    当有故障发生时,到底进不进行主、从切换?
    ZhLTE
        3
    ZhLTE  
       2017-03-23 09:43:31 +08:00 via Android
    同没看懂。
    Lawrence886
        4
    Lawrence886  
    OP
       2017-03-23 09:43:32 +08:00
    @jsjjdzg 他们的策略是有故障发生,直接开机重启,再连网络。。。别问我怎么知道的,都是泪啊。
    Lawrence886
        5
    Lawrence886  
    OP
       2017-03-23 09:46:42 +08:00
    @Lawrence886 迷之分布式数据库。
    Techman
        6
    Techman  
       2017-03-23 09:51:45 +08:00   ❤️ 1
    迷之梗
    lydasia
        7
    lydasia  
       2017-03-23 09:52:20 +08:00   ❤️ 1
    哈哈哈哈哈哈哈哈

    不好笑。
    riaqn
        8
    riaqn  
       2017-03-23 10:05:45 +08:00
    另外这个英文写错了吧 一致性是 consistent 缩写怎么也不可能是 const 啊。
    Lawrence886
        9
    Lawrence886  
    OP
       2017-03-23 10:15:32 +08:00
    @riaqn 没错,都是泪啊。公司人英语都是这个水平,我之前看到过 Scaner, Synatax 。
    Lawrence886
        10
    Lawrence886  
    OP
       2017-03-23 10:15:56 +08:00
    @riaqn 打算跑路了。
    wyx
        11
    wyx  
       2017-03-23 10:22:39 +08:00
    SM_OTHER 表示的是什么呢
    Lawrence886
        12
    Lawrence886  
    OP
       2017-03-23 10:24:19 +08:00
    @wyx 据他们说是还没想好。。。
    tigerstudent
        13
    tigerstudent  
       2017-03-23 10:28:06 +08:00
    有人笑了的话麻烦通知我一声,我给他点赞(感谢)。
    Lawrence886
        14
    Lawrence886  
    OP
       2017-03-23 10:31:20 +08:00
    @tigerstudent 这个梗太专业了,可能没做过的人不能懂。。。
    R18
        15
    R18  
       2017-03-23 10:34:40 +08:00
    这个帖子 我能笑一会
    justfun
        16
    justfun  
       2017-03-23 10:39:25 +08:00
    楼下尴尬的回复够我笑一会了= =
    Lawrence886
        17
    Lawrence886  
    OP
       2017-03-23 10:43:47 +08:00
    @justfun 蜜汁尴尬
    sinxccc
        18
    sinxccc  
       2017-03-23 10:48:31 +08:00
    没有 get 到笑点,这两个状态都没什么问题啊……
    fxxkgw
        19
    fxxkgw  
       2017-03-23 10:50:27 +08:00
    C 的枚举 有什么问题么? 没看出来
    littleylv
        20
    littleylv  
       2017-03-23 10:57:29 +08:00
    同没 get 到笑点。
    magicbrighter
        21
    magicbrighter  
       2017-03-23 10:59:17 +08:00   ❤️ 2
    CAP CP 当保证强一致性可用性降低
    AP 保证可用性,数据未及时同步,主从切换后,可能数据不一致
    murmur
        22
    murmur  
       2017-03-23 11:01:29 +08:00   ❤️ 1
    这个感觉设计没错 如果故障发生时 切换主从数据 很可能把备份数据库也搞挂了 有多少问题是因为删库的时候没及时发现结果备份库也被删了的

    本来主从不是集群啊 主从不是集群啊大家 从库是个备胎主库不用从库是不会上的
    Lawrence886
        23
    Lawrence886  
    OP
       2017-03-23 11:07:43 +08:00
    @murmur
    @magicbrighter 然而他们根本没实现同步,本身就是可能存在数据不一致的。于是他们就妄想只要故障了不切换,就能够一致。
    murmur
        24
    murmur  
       2017-03-23 11:17:54 +08:00
    @Lawrence886 这种策略看他运维怎么弄吧 我们有个数据源就是 相当于中间库 写入是两个独立的 webapp 去写入 如果一个系统挂了 直接改配置文件切过去

    因为这个中间库只是其他数据的一部分 盲目切换可能有些配套数据不在切过去问题更大 所以还不如从库留在那里备用 出故障的时候评估一下问题有多大 再决定是手动切从库把数据顶上去还是直接修主库

    企业应用屁事一堆 架构乱七八糟的 手动主从出事的也不在少数 自动集群问题也有 有的集群同步时间只有 5 分钟 也就是说你出了事只有 5 分钟的时间给你响应 如果你错过这 5 分钟你的从库也一样出事
    vjnjc
        25
    vjnjc  
       2017-03-23 11:19:18 +08:00
    所以从机就一直空载么?
    suckli
        26
    suckli  
       2017-03-23 11:20:05 +08:00
    @murmur
    两个独立的写入根本没办法保证一致性啊,一个写失败一个写成功怎么破~
    Lawrence886
        27
    Lawrence886  
    OP
       2017-03-23 11:22:05 +08:00
    @murmur 开眼界了。。。
    Lawrence886
        28
    Lawrence886  
    OP
       2017-03-23 11:22:50 +08:00
    @vjnjc 正解
    murmur
        29
    murmur  
       2017-03-23 11:27:02 +08:00
    @suckli 这我就不清楚了 银行的 2 地三机房是怎么保持一致性的呢。。。最后的底线估计是银行留的纸质单据吧
    murmur
        30
    murmur  
       2017-03-23 11:52:25 +08:00
    @Lawrence886 其实这就是个省钱一点的防误操作的方案而已,而且怕做数据处理的程序挂掉所以程序也是 2 份独立写入,企业开发又没要求多少并发,只要求他出莫名其妙的问题时候随手可以拉一台机器换上去接着用,自动同步是好,但是万一把误操作也同步上去不就亏大了

    没啥开眼界的。。至于 @suckli 说的一致性,我们是用 oracle ,相信 oracle 不会让我们失望,这个问题对我来说,就跟你问我事务把你骗了怎么办。。一样
    yuedingwangji
        31
    yuedingwangji  
       2017-03-23 12:34:58 +08:00
    小白表示笑不出来
    xialdj
        32
    xialdj  
       2017-03-23 12:37:32 +08:00 via iPhone
    sunber
        33
    sunber  
       2017-03-23 13:45:38 +08:00
    哈哈哈哈哈

    我在笑什么???黑人问号
    Fishdrowned
        34
    Fishdrowned  
       2017-03-23 13:56:48 +08:00
    https://github.com/pingcap/tidb

    虽然我还没用过,不过感觉 tidb 可以帮到你
    Caratpine
        35
    Caratpine  
       2017-03-23 14:08:01 +08:00   ❤️ 3
    笑,都 TM 给我笑🙂
    Gsyc1
        36
    Gsyc1  
       2017-03-23 14:11:08 +08:00   ❤️ 1
    路过,不知道在说什么
    cloudzhou
        37
    cloudzhou  
       2017-03-23 18:48:53 +08:00
    @Lawrence886 @murmur 没看出有什么不对,可能设计的时候,有中间件,比如检测出现数据库异常,尝试切换到从数据库,但是有一些数据非常重要,需要人工确定是否切换,所以有两种处理逻辑:
    1 中间件决定切换,切换后通知开发人员
    2 中间件报警,通知开发人员,开发人员决定是否切换

    因为切换的代价是很高的,如果开发人员知道某种原因数据库不可用,并且会恢复,那么可以不切换,保持数据的一致性,尽量使用主数据库
    从数据库很多时候本身就是空载,类似实时备份。
    prasanta
        38
    prasanta  
       2017-03-23 23:53:04 +08:00
    哈哈哈哈哈哈哈
    richzhu
        39
    richzhu  
       2017-03-24 11:23:51 +08:00
    呵呵
    Lawrence886
        40
    Lawrence886  
    OP
       2017-03-24 13:59:17 +08:00
    @richzhu 呵呵
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2974 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 13:41 · PVG 21:41 · LAX 06:41 · JFK 09:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.