双服务器同步备份信息:轻松掌握数据安全
双服务器如何同步备份信息

首页 2025-09-02 02:07:42

“哎呦,今天天气真好!”他推开办公室的落地窗,阳光在镜片上跳舞,“兄弟们,咱们聊点硬核又开心的——双服务器如何同步备份信息!”他笑得像刚抢到最后一碗热干面。
“先别皱眉头,”他拍了拍空气,“同步备份就像给数据找了两个贴身保镖,一个累了,另一个立刻顶班,绝不让业务掉链子。”他掰着手指:“第一,得挑对工具。Rsync、Syncthing、DRBD,仨兄弟性格不同:Rsync稳、Syncthing灵、DRBD狠。想省钱?Rsync!想实时?Syncthing!想块级秒切?DRBD!别纠结,先跑起来再说。”
“第二,链路得靠谱。”他随手抓起两根网线比划,“主备之间最好双线+VPN,公网断了走专线,专线断了走5G,别心疼那点流量,数据丢了哭都来不及。”
“第三,校验!校验!校验!”他连拍三下桌子,“Md5、sha256,跑一遍才安心。每周随机抽10%文件做深度对比,发现一只坏苹果,立刻整箱翻。”
“第四,演练别偷懒。”他眯起眼,“凌晨三点拉起容灾库,让业务跑半小时,再切回去。别怕吵醒运维,真故障时可没人替你扛。”
“最后,留一份冷备份。”他神秘兮兮地压低声音,“把每月全量刻进移动硬盘,锁进银行保险箱。真到那一天,它就是时光机。”
他伸个懒腰,笑得像刚收工的小米粥:“记住啊,备份不是成本,是给未来的自己发红包!”
—————————教程分割线—————————
双服务器如何同步备份信息·一步一图实践版
一、准备阶段
  1. 选系统:两台CentOS 7/8或Ubuntu 20.04,内核≥4.9。
  2. 规划目录:
    /data/active —— 主服务器生产数据
    /data/backup —— 备服务器接收目录
  3. 网络:两端固定内网IP,例 192.168.10.1(主) ↔ 192.168.10.2(备)。
二、方案A:Rsync+SSH(定时增量)
  1. 主服务器安装:
    yum install rsync openssh-clients -y
  2. 生成免密钥匙:
    ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
    ssh-copy-id root@192.168.10.2
  3. 创建排除文件 /etc/rsyncd.exclude(日志、缓存不备份)。
  4. 编辑定时任务:
    crontab -e
    0 * /2 * * * /usr/bin/rsync -az --delete --exclude-from=/etc/rsyncd.exclude /data/active/ root@192.168.10.2:/data/backup/ ] /var/log/rsync.log 2>&1
  5. 校验脚本(每晚跑):
    find /data/active -type f -exec md5sum {} + > /tmp/src.md5
    ssh root@192.168.10.2 "find /data/backup -type f -exec md5sum {} + > /tmp/dst.md5"
    diff /tmp/src.md5 <(ssh root@192.168.10.2 "cat /tmp/dst.md5")
三、方案B:Syncthing(实时双向)
  1. 解压并创建系统服务:
    ./syncthing -generate=/opt/syncthing
    useradd -r syncthing -d /opt/syncthing
    chown -R syncthing:syncthing /opt/syncthing
    cp /opt/syncthing/etc/linux-systemd/system/syncthing.service /etc/systemd/system/
    systemctl enable --now syncthing
  2. 浏览器打开 http://192.168.10.1:8384 添加远程设备ID(可在备服务器 http://192.168.10.2:8384 查看),共享/data/active 文件夹。
  3. 在“高级设置”里把“文件拉取顺序”设为“alphabetic”,确保一致性。
  4. 启用“版本控制”→“简易保留30天”,防误删。
四、方案C:DRBD(块级镜像)
  1. 两台加载模块:
    modprobe drbd
  2. 安装:
    yum install kmod-drbd90 drbd90-utils -y
  3. 配置 /etc/drbd.d/r0.res
    resource r0 {
    protocol C;
    on 192.168.10.1 { device /dev/drbd0; disk /dev/sdb1; address 192.168.10.1:7788; meta-disk internal; }
    on 192.168.10.2 { device /dev/drbd0; disk /dev/sdb1; address 192.168.10.2:7788; meta-disk internal; }
    }
  4. 初始化:
    drbdadm create-md r0
    drbdadm up r0
  5. 主节点执行:
    drbdadm primary --force r0
    mkfs.ext4 /dev/drbd0
    mount /dev/drbd0 /data/active
  6. 心跳+Pacemaker做自动切换(略)。
五、容灾演练
  1. 每月1日00:30,备服务器拉起Nginx+MySQL容器,指向/data/backup。
  2. 用curl循环访问业务接口200次,成功率≥99%算通过。
  3. 若失败,立即回滚主库,并记录原因。
六、冷备份补充
  1. 每季度dd全盘:
    dd if=/dev/sdb of=/mnt/usb/date +%Y%m%d_full.img bs=4M status=progress
  2. 异地存放:移动硬盘贴标签,存银行保险箱,登记借出表。
七、常见坑
· SSH端口被改:rsync需加 -e "ssh -p 2222"。
· Syncthing被防火墙拦:firewall-cmd --add-port=22000/tcp --permanent。
· DRBD脑裂:出现Split-Brain时,先在备节点执行 drbdadm secondary r0 && drbdadm connect --discard-my-data r0,再主节点 drbdadm connect r0。
照着做,你的数据就能像那位老总一样,每天咧嘴大笑:“稳!”
MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道