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

时时备份数据的最佳方法?

  •  
  •   tianxiacangshen · 2017-10-28 08:35:10 +08:00 · 3516 次点击
    这是一个创建于 2584 天前的主题,其中的信息可能已经有所发展或是发生改变。
    程序和数据服务器分离

    想要时时备份数据,只要有新数据就备份到某个地方,请问哪种方法比较高效?
    16 条回复    2017-10-30 20:43:49 +08:00
    yangqi
        1
    yangqi  
       2017-10-28 08:44:56 +08:00
    实时就不叫备份了,叫同步
    SuperMild
        2
    SuperMild  
       2017-10-28 08:51:57 +08:00 via iPhone
    哪个网盘做不到?
    SuperMild
        3
    SuperMild  
       2017-10-28 08:55:12 +08:00 via iPhone
    看错了,是数据库呀。那大概直接部署分布式数据库比较方便
    fox0001
        4
    fox0001  
       2017-10-28 09:01:01 +08:00
    mysql 和 mongo 都有主从数据库同步功能
    RqPS6rhmP3Nyn3Tm
        5
    RqPS6rhmP3Nyn3Tm  
       2017-10-28 09:05:02 +08:00 via iPad
    Google cloud sql
    julyclyde
        6
    julyclyde  
       2017-10-28 09:32:13 +08:00
    然后一不小心从主库删了内容,从库随着也就……
    ragnaroks
        7
    ragnaroks  
       2017-10-28 09:34:19 +08:00
    内网千兆起步的话:

    1.部署 1 个 windows 服务器专门存放数据库文件,使用 Cryptomator 来加密那个目录,此时 Cryptomator 会开一个只能本机访问的网络驱动器解密出文件,修改一下配置绑定到 0.0.0.0.

    2.开一台 linux 做 sql server,将上面的网络驱动器映射为本地驱动器,sql server 文件存储目录就选映射出来的本地驱动器.

    3.在[1]的 windows 上安装 xx 云同步(我用坚果),同步 sql server 文件目录.

    ps: 用过微云,好像会强制占用文件,导致同步时无法写入数据.
    ragnaroks
        8
    ragnaroks  
       2017-10-28 09:34:52 +08:00
    这个方法有个弊端,你要是作死了也自动同步上去了,所以务必开 binlog
    zlfzy
        9
    zlfzy  
       2017-10-28 10:25:35 +08:00 via iPhone
    用阿里云的 RDS MySQL 吧,可以指定任意时间点恢复,精确到秒
    Sooele
        10
    Sooele  
       2017-10-28 22:41:38 +08:00
    如果你是个人博客。直接用阿里云 OSS。定时每天备份一次就好了
    i730
        11
    i730  
       2017-10-29 08:32:01 +08:00
    @julyclyde #6 这不就是我 syncthing 同步的惨状吗,后来就只敢开仅发送不接收了
    gwind
        12
    gwind  
       2017-10-29 11:43:25 +08:00
    看场景

    不过建议考虑几点:
    1. 除了本地方案,尽可能也考虑异地方案
    2. 除了实时‘备份’,尽可能考虑快照(能否恢复到上一时刻)
    qile1
        13
    qile1  
       2017-10-29 14:25:50 +08:00 via Android
    @ragnaroks 还是没明白你意思?数据库写入同时可以备份?怎么同步数据库文件?
    ragnaroks
        14
    ragnaroks  
       2017-10-29 14:31:59 +08:00
    @qile1 #13
    windows 用于存放数据库文件以及同步到远端,我这里是坚果云.
    linux 用于提供 sql server,同时使用 windows 开放出的网络驱动器作为数据存储目录.
    cryptomator 是用于提供读写状态分离+数据加密.
    tianxiacangshen
        15
    tianxiacangshen  
    OP
       2017-10-29 20:17:06 +08:00
    @gwind 对,主要是异地备份
    gwind
        16
    gwind  
       2017-10-30 20:43:49 +08:00
    @tianxiacangshen 异地备份,从高效、简单的角度出发(数据量 100T 以内),建议先试试:
    1. 使用 ZFS 文件系统(支持快照)
    2. crontab + rsync
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3042 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:50 · PVG 21:50 · LAX 05:50 · JFK 08:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.