• 请不要在回答技术问题时复制粘贴 AI 生成的内容
documentzhangx66
V2EX  ›  程序员

看了站内很多不小心把数据库清空或误删数据的

  •  
  •   documentzhangx66 · Jul 11, 2022 · 6978 views
    This topic created in 1581 days ago, the information mentioned may be changed or developed.

    提个醒:

    1.一定要做数据库自动备份,至少每日一备份。 就是个脚本的事情,搜一下就完事了。

    2.除了查询外,做增删改之前,一定要备份一次。不要怕麻烦,不要怕耽误时间。 性能不够上固态,固态不够上内存盘。

    以上两点,没做好,是有可能吃牢饭的,没开玩笑。

    43 replies  •  2022-07-13 09:36:07 +08:00
    zhzy0077
    zhzy0077
    Jul 11, 2022 via Android
    1
    所有 dml/ddl 前要么 begin transaction 要么找人 review 一遍也很重要
    heyjei
    heyjei
    Jul 11, 2022
    2
    @zhzy0077
    ddl 没有事务的吧
    moult
    moult
    Jul 11, 2022
    3
    3 、不想动手就掏钱买云数据库吧,都有秒级回滚功能。
    rekulas
    rekulas
    Jul 11, 2022
    4
    提到的 2 点没意见,最后一句不敢苟同,似乎没有过这种案例吧
    kingjpa
    kingjpa
    Jul 11, 2022
    5
    自己玩的项目还好,
    生产数据库备份一次要多久,以及会不会锁表,没试过吗?
    cpstar
    cpstar
    Jul 11, 2022❤️1
    6
    我倒是没有删库,就是 update 的时候忘了 where ,而已,而已,而已。。。多大点事
    shench
    shench
    Jul 12, 2022
    7
    有些软件不小心对某个表按了一下 del 键,一会儿运行的时候这个表就这么没了。。。。我碰到过两次
    ktqFDx9m2Bvfq3y4
    ktqFDx9m2Bvfq3y4
    Jul 12, 2022 via iPhone
    8
    数据是最宝贵的,我选择使用云上的服务,回滚到任意秒没什么压力。其他可以自己搞。
    BruceXu
    BruceXu
    Jul 12, 2022
    9
    @Chad0000 云数据库这么屌吗...是每秒备份一次?
    luckyc
    luckyc
    Jul 12, 2022
    10
    总结的不错, 刚入行的新手可以看看.
    老手就一笑而过了.
    micean
    micean
    Jul 12, 2022
    11
    动生产库养成建表存变动数据的习惯
    bthulu
    bthulu
    Jul 12, 2022
    12
    @xubingok 云数据库可设置成每事务备份一次, 可确保任何情况下数据不丢失
    ktqFDx9m2Bvfq3y4
    ktqFDx9m2Bvfq3y4
    Jul 12, 2022 via iPhone
    13
    @xubingok 不需要时时备份,mysql 云数据库定时备份➕binlog ,可以恢复到任意时刻。云商自带功能。
    hay0577
    hay0577
    Jul 12, 2022
    14
    .....垃圾项目表很大了咋办..
    ila
    ila
    Jul 12, 2022 via Android
    15
    克隆个 dev 数据库,放脱敏后的数据,操作无误,再用同个语句操作线上的
    liuliangyz
    liuliangyz
    Jul 12, 2022❤️1
    16
    说明,你们这些系统基本都不是特别重要的系统。重要的系统不回搞什么脚本备份的,肯定是上数据库集群,硬件上就是多机热备,共享存储。同时存储也是硬件灾备。
    什么软件热备,手工备份,都是为了省成本高出来的软件方案。
    morty0
    morty0
    Jul 12, 2022
    17
    3. 手动 commit
    zhw2590582
    zhw2590582
    Jul 12, 2022❤️1
    18
    我就没有这种烦恼,因为我是前端
    jorneyr
    jorneyr
    Jul 12, 2022
    19
    阶段全备,每日增备
    singerll
    singerll
    Jul 12, 2022
    20
    性能不够上固态,固态不够上内存盘。
    抱歉,就是 dba ,我也没见有这么大权力的。
    Cmdhelp
    Cmdhelp
    Jul 12, 2022
    21
    做好数据备份,真的很重要
    R18
    R18
    Jul 12, 2022
    22
    我有点好奇, 200 多 G 的数据库该怎么备份.
    mywaiting
    mywaiting
    Jul 12, 2022
    23
    OP 没有总结到点上啊,备份肯定没错,但备份只是挽救措施

    最关键的是:永远不要手动执行 SQL 语句~
    nothingistrue
    nothingistrue
    Jul 12, 2022
    25
    这两个提醒属于费工夫不讨好的提醒。

    用在生产库上没用:1 ,这种备份作用很有限,一天一备份间隔时间太长,热机备份不能直接用来恢复,冷机备份又要先停机; 2 ,啥都备份等于啥都没备份,这种备份压根没法用来恢复数据。

    用在个人库徒增工作量。

    对于在程序之外动生产库的操作,一减少二增加操作审查流程,要比上面的方式有效多了。
    dzdh
    dzdh
    Jul 12, 2022
    26
    @heyjei mysql 8.0 有了。pgsql/oracle 是一直都有的
    xdzhang
    xdzhang
    Jul 12, 2022
    27
    数据随时都在变,不实时你的备份有啥用。。。
    agdhole
    agdhole
    Jul 12, 2022
    28
    rds 多机自动备份,充钱世界可及
    liuidetmks
    liuidetmks
    Jul 12, 2022
    29
    @shench 什么破软件?,不过应该权限没设置好是根本原因吧
    woostundy
    woostundy
    Jul 12, 2022
    30
    不可能,备份也是资源消耗。
    heyjei
    heyjei
    Jul 12, 2022
    31
    @dzdh 多谢纠正。
    Zach369
    Zach369
    Jul 12, 2022
    32
    主从,集群....
    fangdaidai
    fangdaidai
    Jul 12, 2022
    33
    @rekulas 破坏计算机信息系统罪了解下
    Tounea
    Tounea
    Jul 12, 2022
    34
    想问下各位数据库备份频率是怎么样的?是每天增备还是每天全备?数据库小还好说,要是数据库容量特别大呢?
    adoal
    adoal
    Jul 12, 2022
    35
    @xdzhang 有实时备份可以完整恢复当然好,但如果数据被破坏了又没办法完整恢复回来,要承担经济甚至法律责任时,丢失一天的数据跟跟全丢的责任轻重还是大不一样的,这时候有 daily backup 对当事人来说当然有用
    neptuno
    neptuno
    Jul 12, 2022
    36
    1 、测试环境多测试几遍 sql 2 、线上运行前,找人 review 。(站内那几个案例,感觉都是连测试都没测过,直接线上手写 sql ,肯定会出问题)
    james2013
    james2013
    Jul 12, 2022
    37
    理论上备份是好的
    实际使用时,生产库表的数据很多,有的表 1 张都很大,备份一次时间都不知道要多久呢,要是多改几次数据,1 天就没有了,哪里这么规范呢
    rekulas
    rekulas
    Jul 12, 2022
    38
    @vone
    @fangdaidai
    破坏罪我知道,但这是主观破坏跟答主提到的备份不当导致事故是两回事,虽然理论上这种可能会被判因玩忽职守造成重大损失从而触发法律,但实际生活很难看到具体案例
    rekulas
    rekulas
    Jul 12, 2022
    39
    另外就算是不小心删库导致的事故,目前暂时也未看到判决案例,目前看到的基本都是主观破坏性删除定罪的。
    对于非主观事故,可能也有责任但不清楚该适用什么罪,玩忽职守罪肯定不对那是机关工作的
    xdzhang
    xdzhang
    Jul 13, 2022
    40
    @adoal 最初的时候我也是每天备份一次,后来发现不行,没多大保障,又快照,发现快照还是不行,现在我做实时备份。主要清理起来真的太恼火了,也不是说前面的不行,也是必须做的,尽量减少损失。
    awen233333
    awen233333
    Jul 13, 2022
    41
    update 或 delete 的时候加个 top 或者 limit 限制要更新的数量,并将要更新的那几行数据备份,Oracle 手动 commit
    vone
    vone
    Jul 13, 2022
    42
    @rekulas 仔细看链接哈,那人是运维,在系统出现生产问题后,尝试使用私下开发的运维程序处理问题导致的事故。

    他被认为主观的原因是:1 、私自使用未经授权的管理员账号; 2 、事故后使用 360 安全卫士清理过软件垃圾和软件使用痕迹(被认为是隐瞒犯罪事实)。
    yc8332
    yc8332
    Jul 13, 2022
    43
    你怕是没见过大生产数据库吧。知道备份一次要多久吗?根本做不到 1 日 1 备份。。都是几天 1 备,有问题时间近的用 binlog 恢复。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2384 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 103ms · UTC 04:14 · PVG 12:14 · LAX 20:14 · JFK 23:14
    ♥ Do have faith in what you're doing.