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

请教一个关于双机房的问题

  •  
  •   VEXGOD · 9 天前 · 862 次点击
    场景是公司有两个机房,主机房和备用机房,两个机房的数据库做了主从同步,现在有个问题,就是当主机房断电后,我们会通过域名来切换到备用机房,但是当有电之后还是要切回主机房,当切回主机房之后,在备用机房产生的额外的数据怎么同步给主机房。还有就是主从同步也会因为备用机房多出来的数据而断掉,这也是个问题。除了用 dump 数据重新同步,还有什么比较好的方法吗
    14 条回复    2024-09-09 18:01:06 +08:00
    fru1t
        1
    fru1t  
       9 天前
    两个机房做双活?还分什么主备
    lplplp
        2
    lplplp  
       9 天前
    关于数据库异地主从同步问题,看是什么库 一般常用都有标准解决方案和最佳实践,也可以找数据库供应商
    fs418082760
        3
    fs418082760  
       9 天前
    @fru1t #1 双活有数据延迟的前提,一般是 5ms 以内,如果是异地,费用太高
    VEXGOD
        4
    VEXGOD  
    OP
       9 天前
    @fru1t 双活以我们公司的能力,无法做到
    VEXGOD
        5
    VEXGOD  
    OP
       9 天前
    @lplplp 数据库用的 mysql ,之前从来没搞过这些,现在老板把活交给了我,我真是 fuck 了。真是想不明白,老板脑子里装的什么,之前一直都是另一个专门的运维在搞,莫名奇妙交给我,让我去解决,都 tmd 的自认为写 java 的都会做运维吗
    NewYear
        6
    NewYear  
       9 天前
    换换思路,不要想着总是用“技术”且不花钱解决。

    首先看公司的网络结构,看你的意思应该是两个机房在同一个厂区/大厦?如果是这样,二者之间延迟应该非常低,停电后需要同步的数据很少,因此只要保留很短时间的时间运作,两边数据库就不会有差异。

    解决办法其实一大堆:
    1 、两个机房都互相连接备用电路,且电路是直达:就是 A 机房走一条电线去 B 机房,B 机房走一条电路去 A 机房,然后自动切换电源就可以了。
    2 、UPS+服务器高频率探测是否断电,断电立刻切换主从,你预估下这个时间最多要多久,再乘以 2 作为备用,购买相应规格 UPS ,如果价格差距很小,可以增大基数。例如切换需要 2 分钟,你直接买能支撑半小时的 UPS 。


    这 2 个方案既是万能,实现又简单,花钱就能解决的问题从来都不是问题。

    思路:工欲善其事必先利其器,多花钱多花钱多花钱,少把风险抗在自己肩膀上,电路出问题是电工的事情,你怎么还帮电工操心起来了,直接抛给他们解决不好吗?玩电他们可是专业的!!!不要怕花钱,不花钱那是微型企业的通病!!!怕花钱当然容易出问题!!!
    要学会博弈:
    1 、电路出问题是电工的事情!让他们解决!
    2 、服务器出问题影响非常大,必须要有靠谱的方法解决问题!而且应该是自动化解决!
    NewYear
        7
    NewYear  
       9 天前
    要确保两边机房一直有网络直连,可以用光纤连接,很远都可以的。

    另外要有备用网络,至少要有 2 条稳定的网络连接到对方。。。如果可以的话搞 3 条网络(可以是内网也可以是外网,甚至可以是 4G 网络),并确保任何时候至少有 2 条网络是联通状态的。
    VEXGOD
        8
    VEXGOD  
    OP
       9 天前
    @NewYear 谢谢回复,其实现在的问题就是在这里,如果在备用机房搭建的时候想好策略,就不会有现在的问题。现在公司让去解决的就是数据同步的问题,钱是不可能多花一分的,冤大头是肯定要做的。两个机房在同一个园区,上次断电演习,数据量其实不多,也就不到一百条订单。然后最奇葩的就是这 100 多条订单居然没办法同步到主机房上去。
    NewYear
        9
    NewYear  
       9 天前
    @VEXGOD 电都没了,还同步个毛线?你只管出方案,形成书面文件,不花钱有什么方式,有什么风险,花钱要怎么花,批不批是领导的事情,非要选高风险也不是你的问题。一分钱没有?那就耗着呗。每次出问题你假装很忙,给各部门表示你很努力了,但是巧妇难为无米之炊。

    “一分钱不花”这种策略只能对付供应商,让供应商多花钱,自掏腰包解决问题,变相降低成本了。。但你是什么身份?你如果是供应商那你自掏腰包也是正常。。。但你是员工的话,这样的话说出来就毫无水平了。

    另外你的表达很差,在这个帖子里,至今我没有搞明白你是什么职位,你的技术栈会是什么方向,你们公司是什么规模,你们公司的网络架构是怎样的,哪些是可控的,哪些是不可控的,主从切换要多少时间,供电的话要承担多大的电量。
    抱怨式发帖要不得,如果你和领导也是这样沟通的,那就混日子吧,其实混日子也挺舒服的。
    l22576283
        10
    l22576283  
       9 天前
    只是 mysql ?建议你看一下 mysql 半同步复制集群,看一下这个能不能满足你们的性能要求,搞定这个应该就能满足你们公司的要求了

    https://blog.csdn.net/qq_39962403/article/details/131561718
    https://juejin.cn/post/7224794158744551480
    VEXGOD
        11
    VEXGOD  
    OP
       9 天前
    @NewYear 我是 java 后端,这个项目是公司投标的,目前还在维护阶段。每个公司都有无法言明的东西。可控的东西我一概不知,机房在哪里,里面长什么样我完全不知。唯一知道的就是服务器账号密码。跟领导从来没有沟通过,至于为什么没有沟通,因为公司已经基本没人了,该裁的都裁完了,即便找领导说我做不了这些,他也是只会你研究研究这样的。 我的需求并不是如何去整备机房,我只是想除了 dump 数据库之外,有没有更好的办法去解决现在已经出现的问题。至于为什么抱怨,是因为我觉得领导做事没有任何想法,本来有一个一人运维的好好的,机房,服务器全部都是他在处理,关键他还在职,莫名全部给我这边,我已经回应了好几次,说这件事我做不了,但是没用,群里只会艾特你。
    你可以理解为公司内部一塌糊涂,管理无比混乱。
    VEXGOD
        12
    VEXGOD  
    OP
       9 天前
    @l22576283 感谢回复,我先看一下
    NewYear
        13
    NewYear  
       9 天前
    @VEXGOD

    不了解就问,不清楚就实地去考察,只要你的目的是解决问题,都能做好的,至于做成什么样子,那就按领导批复来。

    不要抱怨了,这贴别 @ 我了。最后告诉你一句话:你所做的所有事情都是你为公司而做的,不要心理活动那么多,这样只会自寻烦恼,实在不行就离职,别上个班还搞一堆心理疾病出来就不值得了。。。。至于工作能力,其实就是考验你解决问题的能力,以及在混乱中如何坚定内心的定力。。。别把自己搞太被动。。。也不要背太多怨气。
    yinmin
        14
    yinmin  
       9 天前 via iPhone
    OP 找个机会和运维吃个饭,探探对方的打算。如果对方有下家了,大概率会把系统的部署情况告诉你;如果对方没准备走,你和对方讲好,如果领导找你,你就直接明面上转给他,来保他的饭碗。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5578 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:41 · PVG 09:41 · LAX 18:41 · JFK 21:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.