问个问题,你们的服务器,数据库备份怎么做? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
zzzmh

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

  •  
  •   zzzmh Mar 18, 2020 11831 views
    This topic created in 2230 days ago, the information mentioned may be changed or developed.

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

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

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

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

    弄个对象存储 client 同步到私有 bucket,不放心可以压缩打包时加密。
    chztv
        27
    chztv  
       Mar 18, 2020
    @vazo 为啥要装 wordpress ??
    ajaxfunction
        28
    ajaxfunction  
       Mar 18, 2020
    每天夜里
    定时发 cdn
    ohmyzsh
        29
    ohmyzsh  
       Mar 18, 2020
    mysqldump > tar > dropbox
    nuyan
        30
    nuyan  
       Mar 18, 2020
    @akira 这话属实没毛病
    baobao1270
        31
    baobao1270  
       Mar 18, 2020
    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  
       Mar 18, 2020
    Oracle RAC,存储做 HA
    定期离线完整备份到磁带
    ala2008
        33
    ala2008  
       Mar 18, 2020
    数据异步 /同步复制到另外的数据库
    ylsc633
        34
    ylsc633  
       Mar 18, 2020   1
    现在云主机 快照都是收费的!

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

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

    发送到我邮箱!

    https://github.com/izghua/go-blog#main
    threegrandfather
        35
    threegrandfather  
       Mar 18, 2020
    rsync 走你的 binlog ?
    jzmws
        36
    jzmws  
       Mar 18, 2020
    xtrabackup 腾讯云 rds 数据库用的 ,自己搞了一下 很好用
    RookieZoe
        37
    RookieZoe  
       Mar 18, 2020   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"' > $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  
       Mar 18, 2020 via Android
    懒得手动备份,都是直接上快照
    programV2
        39
    programV2  
       Mar 18, 2020 via iPhone
    @jinsongzhao 你这个只是把数据库备份到本地吗?
    vibbow
        40
    vibbow  
       Mar 18, 2020
    阿里云 DBS
    programV2
        41
    programV2  
       Mar 18, 2020 via iPhone
    @RookieZoe 我也是用 DOcker. 请问全部备份:
    直接加密码压缩 docker-compose.yml 所在项目文件夹, 如果迁移至不同的主机, 这个以后怎么恢复呢?。

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

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

    文件树更正一下:

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

    至于是只备份数据库还是全部看你项目构成以及你个人喜好吧。。。
    SuperAllen
        52
    SuperAllen  
       Mar 19, 2020 via Android
    既然是一起的,自动快照策略搞定,不仅数据库备份,文件和系统环境也备份了
    programV2
        53
    programV2  
       Mar 19, 2020
    @RookieZoe 那这么说假如直接 rsync 增量备份你的 gogs/ 文件夹, 以后在新的服务器上也可以 直接进目录 docker-compos up -d 就可以了? 我是担心到时 db-data 文件夹这个恢复不起来?
    lxfxf
        54
    lxfxf  
       Mar 19, 2020
    Teamcity 定期备份出来一个 dump 传到 Google cloud storage 上。
    geekvcn
        55
    geekvcn  
       Mar 19, 2020 via Android
    定时快照,每周归档
    Tink
        56
    Tink  
    PRO
       Mar 19, 2020 via iPhone
    直接给虚拟机拍快照不行么
    RookieZoe
        57
    RookieZoe  
       Mar 19, 2020 via iPhone
    @programV2 我只在几台系统都是 debian 的机器上试过,是可以的,如果几台机器系统不一样不确定行不行,没实际操作过。。。
    u0mo5
        58
    u0mo5  
       Mar 19, 2020
    宝塔面板支持数据库备份脚本
    或者直接用一个定时脚本
    Chaidu
        59
    Chaidu  
       Mar 19, 2020   1
    只有我一个人用 git 私有仓库备份数据库吗?哈哈
    llussy
        60
    llussy  
       Mar 19, 2020
    xtrabackup/mysqldump --> rsync
    Itesting
        61
    Itesting  
       Mar 19, 2020 via iPhone
    mysql 的话 天为单位 xtrbackup 全量备份,小时为单位 binlog 备份
    zzzmh
        62
    zzzmh  
    OP
       Mar 19, 2020
    @Chaidu 天才哈哈哈
    raptor
        63
    raptor  
       Mar 19, 2020
    当然是 cron + xtrabackup + binlog backup + ssh/rsync 到异地服务器或本地电脑,要保密还可以加一层 gpg
    phxsuns
        64
    phxsuns  
       Mar 19, 2020
    每天自动全盘做个快照。
    如果有问题,就全盘恢复到昨天。
    zunceng
        65
    zunceng  
       Mar 19, 2020
    买 mysql 服务啊
    良心云 web 上有个按钮 定时冷备 (不是打广告 基本每个云厂商都有这个功能)
    imnpc
       
    imnpc  
       Mar 19, 2020
    PHP 的话 用宝塔 可以定时自动备份到阿里云 OSS 备份到私有的即可
    About     Help     Advertise     Blog     API     FAQ     Solana     914 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 141ms UTC 22:15 PVG 06:15 LAX 15:15 JFK 18:15
    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