问个问题,你们的服务器,数据库备份怎么做? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zzzmh
V2EX    程序员

问个问题,你们的服务器,数据库备份怎么做?

  •  
  •   zzzmh 2020 年 3 月 18 日 11605 次点击
    这是一个创建于 2147 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,目前没买专门的 mysql 主机,都是云主机上装 mysql。云主机本地的备份感觉不保险。

    66 条回复    2020-03-19 16:02:35 +08:00
    gz911122
        1
    gz911122  
       2020 年 3 月 18 日
    前排蹲一个个人最简单的解决方案
    villivateur
        2
    villivateur  
       2020 年 3 月 18 日 via Android
    我也想知道,目前能想到的办法就是定时执行 mysqldump
    nybux
        3
    nybux  
       2020 年 3 月 18 日
    在本地搞个从?
    derek80
        4
    derek80  
       2020 年 3 月 18 日
    xtrabackup
    jinsongzhao
        5
    jinsongzhao  
       2020 年 3 月 18 日   2
    @gz911122 那就给你一个个人方案
    mysqldump -h IP 地址 -uroot -p 密码 --opt --compress 库名 --skip-lock-tables | mysql -h localhost -uroot -p 密码 库名
    然后加到 crontab 定时执行里面,也可以把管道后面的 | mysql .... 替换为其他文件等等
    jiom
        6
    jiom  
       2020 年 3 月 18 日
    蹲大佬的经验分享~
    summerwar
        7
    summerwar  
       2020 年 3 月 18 日
    晚上 3 点的定时备份脚本,然后备份完发送到 cdn 或者邮箱
    CallMeReznov
        8
    CallMeReznov  
       2020 年 3 月 18 日
    阿里不是有定时的保存的镜像吗,你定时下载下来不就好咯?

    而且我刚刚上区看新出了一个跨地域备份
    gz911122
        9
    gz911122  
       2020 年 3 月 18 日
    @jinsongzhao mysqldump 会锁表嘛?
    U7Q5tLAex2FI0o0g
        10
    U7Q5tLAex2FI0o0g  
       2020 年 3 月 18 日
    每天 crontab 执行一次:
    1、mysqldump
    2、tar 打包
    3、ftp 传到别的机子

    单纯的备份到当前服务器跟没备份差不到哪里去,万一服务器全盘毁了都毁了
    vazo
        11
    vazo  
       2020 年 3 月 18 日
    主机安装 wordpress,再装个插件数据库备份扩展,备份内容只备份数据库,备份可以选择邮件 /ftp/onedrive 等等
    jinsongzhao
        12
    jinsongzhao  
       2020 年 3 月 18 日
    @gz911122 没研究,不过这个参数--skip-lock-tables,看起来是不锁表的
    scukmh
        13
    scukmh  
       2020 年 3 月 18 日   1
    Shirakawa
        14
    Shirakawa  
       2020 年 3 月 18 日
    crontab+rsync
        15
    aec4d  
       2020 年 3 月 18 日
    数据量小可以每天全量备份放 S3
    akira
        16
    akira  
       2020 年 3 月 18 日
    你的数据越值钱 你才会花越多的钱去备份它
    shansing
        17
    shansing  
       2020 年 3 月 18 日
    @littleylv 用 FTP 不怕明文传输吗(逃
    lialzm
        18
    lialzm  
       2020 年 3 月 18 日 via iPhone
    @Shirakawa 同步数据库文件吗,对当前数据库使用会不会有影响?
    hs0000t
        19
    hs0000t  
       2020 年 3 月 18 日 via Android
    定期快照
    Shirakawa
        20
    Shirakawa  
       2020 年 3 月 18 日
    @lialzm 只是同步备份文件 rsync 直接增量同步数据库文件也不是不行 就是恢复起来麻烦
    tangbao
        21
    tangbao  
       2020 年 3 月 18 日 via iPhone
    goodsync + sftp
    murmur
        22
    murmur  
       2020 年 3 月 18 日
    我们有专门的存储设备,直接可以对虚机全量备份
    doco
        23
    doco  
       2020 年 3 月 18 日
    搬瓦工有个传家宝 19.9 一年的...直接往那里扔
    zzzmh
        24
    zzzmh  
    OP
       2020 年 3 月 18 日
    恩恩,学到了,我们目前的方案是每天定时任务,拿到备份文件再加密压缩,再发到类似 oss、或者其他的私密文件存储空间里。但总感觉还是不保险。一怕数据泄露,二怕丢数据。尤其是重要库,丢半天的数据都要命了。
    xyooyx
        25
    xyooyx  
       2020 年 3 月 18 日
    树莓派主从
    tomczhen
        26
    tomczhen  
       2020 年 3 月 18 日 via Android
    云平台有磁盘镜像功能,定时镜像。

    弄个对象存储 client 同步到私有 bucket,不放心可以压缩打包时加密。
    chztv
        27
    chztv  
       2020 年 3 月 18 日
    @vazo 为啥要装 wordpress ??
    ajaxfunction
        28
    ajaxfunction  
       2020 年 3 月 18 日
    每天夜里
    定时发 cdn
    ohmyzsh
        29
    ohmyzsh  
       2020 年 3 月 18 日
    mysqldump > tar > dropbox
    nuyan
        30
    nuyan  
       2020 年 3 月 18 日
    @akira 这话属实没毛病
    baobao1270
        31
    baobao1270  
       2020 年 3 月 18 日
    set CURRENT_DATE=%date:~0,4%-%date:~5,2%-%date:~8,2%
    ssh %SERVER% "tar -czvf /home/backup-bot/mysql-data.tar.gz /var/lib/mysql"
    scp %SERVER%:/home/backup-bot/mysql-data.tar.gz D:\GoogleDrive\%CURRENT_DATE%.tar.gz
    lc7029
        32
    lc7029  
       2020 年 3 月 18 日
    Oracle RAC,存储做 HA
    定期离线完整备份到磁带
    ala2008
        33
    ala2008  
       2020 年 3 月 18 日
    数据异步 /同步复制到另外的数据库
    ylsc633
        34
    ylsc633  
       2020 年 3 月 18 日   1
    现在云主机 快照都是收费的!

    所以我把我博客写了一个功能!

    每天定时把博客的静态文件(上传的图片,其他不要) + 数据库导出

    发送到我邮箱!

    https://github.com/izghua/go-blog#main
    threegrandfather
        35
    threegrandfather  
       2020 年 3 月 18 日
    rsync 走你的 binlog ?
    jzmws
        36
    jzmws  
       2020 年 3 月 18 日
    xtrabackup 腾讯云 rds 数据库用的 ,自己搞了一下 很好用
    RookieZoe
        37
    RookieZoe  
       2020 年 3 月 18 日   3
    个人小项目我一般用 docker-compose 跑服务。

    数据库备份还原:
    # PostgreSQL backup
    docker exec -i $CONTAINER_NAME pg_dump -U $DB_USER -d $DB_NAME -Fc > $FILE_NAME.dump

    # PostgreSQL restore
    ## 1. 创建目标数据库
    docker exec -i $CONTAINER_NAME psql -U $DB_USER -d postgres -c "create database $DB_NAME"
    ## 2. 恢复数据库
    docker exec -i $CONTAINER_NAME pg_restore -c -U $DB_USER -d $DB_NAME -Fc < $FILE_NAME.dump

    # MySQL backup
    docker exec $CONTAINER_NAME sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' &g; $FILE_NAME.sql

    # MySQL restore
    docker exec -i $CONTAINER_NAME sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < $FILE_NAME.sql

    全部备份:
    直接加密码压缩 docker-compose.yml 所在项目文件夹,然后上传完事。。。
    mayx
        38
    mayx  
       2020 年 3 月 18 日 via Android
    懒得手动备份,都是直接上快照
    programV2
        39
    programV2  
       2020 年 3 月 18 日 via iPhone
    @jinsongzhao 你这个只是把数据库备份到本地吗?
    vibbow
        40
    vibbow  
       2020 年 3 月 18 日
    阿里云 DBS
    programV2
        41
    programV2  
       2020 年 3 月 18 日 via iPhone
    @RookieZoe 我也是用 DOcker. 请问全部备份:
    直接加密码压缩 docker-compose.yml 所在项目文件夹, 如果迁移至不同的主机, 这个以后怎么恢复呢?。

    还是说只要备份数据库就行了?但我的是 Drupal 网站,用的是自己的主题。好像还需要备份源码
    rockyou12
        42
    rockyou12  
       2020 年 3 月 18 日
    数据量小上面的方案还行,稍微大点还是老实买云数据库保险
    caotian
        43
    caotian  
       2020 年 3 月 18 日
    以前定时任务, 现在阿里云出了 DBS 数据库备份了, 支持自建库, 最低的配置的一年也就 170 多好像, 小库够用了, 可以备份到 OSS 里, 保险
    janxin
        44
    janxin  
       2020 年 3 月 18 日
    mysqldump
    surpass
        45
    surpass  
       2020 年 3 月 18 日
    你们用的哪家的云服务器?
    yEhwG10ZJa83067x
        46
    yEhwG10ZJa83067x  
       2020 年 3 月 18 日
    做主从
    再定时吧从数据库备份出来上传到亚马逊
    xi2008wang
        47
    xi2008wang  
       2020 年 3 月 18 日
    mysqldump tgz cos
    wangyzj
        48
    wangyzj  
       2020 年 3 月 18 日
    xtrabackup
    gearfox
        49
    gearfox  
       2020 年 3 月 18 日
    @scukmh 谢谢,明天我去试试
    RookieZoe
        50
    RookieZoe  
       2020 年 3 月 19 日
    @programV2

    就比如我的 gogs 项目文件树是这样的:

    ```文件树
    ├─gogs/
    ├─db-data/
    ├─site-data/
    ├─docker-compose.yml
    ```

    然后 docker-compose.yml 部分配置如下:

    ``` docker-compose.yml
    # 部分配置省略
    services:
    gogs.postgresql:
    image: postgres:12-alpine
    expose:
    - 5432
    volumes:
    - ./db-data/:/var/lib/postgresql/data/
    restart: always
    environment:
    - TZ=Asia/Shanghai
    - POSTGRES_DB=name
    - POSTGRES_USER=user
    - POSTGRES_PASSWORD=password
    network_mode: bridge
    container_name: gogs.postgresql

    gogs.core:
    image: gogs/gogs:latest
    ports:
    - 22
    - 3000
    volumes:
    - ./site-data/:/data/
    restart: always
    depends_on:
    - gogs.postgresql
    environment:
    - TZ=Asia/Shanghai
    - RUN_CROnD=true
    network_mode: bridge
    external_links:
    - gogs.postgresql
    container_name: gogs.core
    ```

    然后你保留文件权限压缩整个 gogs 文件夹就完事了。。。
    解压之后直接进目录 docker-compos up -d 就可以了。。。
    RookieZoe
        51
    RookieZoe  
       2020 年 3 月 19 日
    @programV2

    v 站的 md 语法一直搞不明白。。。

    文件树更正一下:

    ├─gogs/
     ├─db-data/
     ├─site-data/
     ├─docker-compose.yml

    至于是只备份数据库还是全部看你项目构成以及你个人喜好吧。。。
    SuperAllen
        52
    SuperAllen  
       2020 年 3 月 19 日 via Android
    既然是一起的,自动快照策略搞定,不仅数据库备份,文件和系统环境也备份了
    programV2
        53
    programV2  
       2020 年 3 月 19 日
    @RookieZoe 那这么说假如直接 rsync 增量备份你的 gogs/ 文件夹, 以后在新的服务器上也可以 直接进目录 docker-compos up -d 就可以了? 我是担心到时 db-data 文件夹这个恢复不起来?
    lxfxf
        54
    lxfxf  
       2020 年 3 月 19 日
    Teamcity 定期备份出来一个 dump 传到 Google cloud storage 上。
    geekvcn
        55
    geekvcn  
       2020 年 3 月 19 日 via Android
    定时快照,每周归档
    Tink
        56
    Tink  
    PRO
       2020 年 3 月 19 日 via iPhone
    直接给虚拟机拍快照不行么
    RookieZoe
        57
    RookieZoe  
       2020 年 3 月 19 日 via iPhone
    @programV2 我只在几台系统都是 debian 的机器上试过,是可以的,如果几台机器系统不一样不确定行不行,没实际操作过。。。
    u0mo5
        58
    u0mo5  
       2020 年 3 月 19 日
    宝塔面板支持数据库备份脚本
    或者直接用一个定时脚本
    Chaidu
        59
    Chaidu  
       2020 年 3 月 19 日   1
    只有我一个人用 git 私有仓库备份数据库吗?哈哈
    llussy
        60
    llussy  
       2020 年 3 月 19 日
    xtrabackup/mysqldump --> rsync
    Itesting
        61
    Itesting  
       2020 年 3 月 19 日 via iPhone
    mysql 的话 天为单位 xtrbackup 全量备份,小时为单位 binlog 备份
    zzzmh
        62
    zzzmh  
    OP
       2020 年 3 月 19 日
    @Chaidu 天才哈哈哈
    raptor
        63
    raptor  
       2020 年 3 月 19 日
    当然是 cron + xtrabackup + binlog backup + ssh/rsync 到异地服务器或本地电脑,要保密还可以加一层 gpg
    phxsuns
        64
    phxsuns  
       2020 年 3 月 19 日
    每天自动全盘做个快照。
    如果有问题,就全盘恢复到昨天。
    zunceng
        65
    zunceng  
       2020 年 3 月 19 日
    买 mysql 服务啊
    良心云 web 上有个按钮 定时冷备 (不是打广告 基本每个云厂商都有这个功能)
    imnpc
        66
    imnpc  
       2020 年 3 月 19 日
    PHP 的话 用宝塔 可以定时自动备份到阿里云 OSS 备份到私有的即可
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4831 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 07:09 PVG 15:09 LAX 23:09 JFK 02:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86