看了站内很多不小心把数据库清空或误删数据的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
documentzhangx66
V2EX    程序员

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

  •  
  •   documentzhangx66 2022-07-11 18:06:44 +08:00 5990 次点击
    这是一个创建于 1191 天前的主题,其中的信息可能已经有所发展或是发生改变。

    提个醒:

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

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

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

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

    最关键的是:永远不要手动执行 SQL 语句~
    vone
        24
    vone  
       2022-07-12 09:44:33 +08:00
    nothingistrue
        25
    nothingistrue  
       2022-07-12 09:52:19 +08:00
    这两个提醒属于费工夫不讨好的提醒。

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

    用在个人库徒增工作量。

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

    他被认为主观的原因是:1 、私自使用未经授权的管理员账号; 2 、事故后使用 360 安全卫士清理过软件垃圾和软件使用痕迹(被认为是隐瞒犯罪事实)。
    yc8332
        43
    yc8332  
       2022-07-13 09:36:07 +08:00
    你怕是没见过大生产数据库吧。知道备份一次要多久吗?根本做不到 1 日 1 备份。。都是几天 1 备,有问题时间近的用 binlog 恢复。
    关于     帮助文档     自助推广系统     博客     API     FAQ &nbp;   Solana     1120 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 23:12 PVG 07:12 LAX 16:12 JFK 19:12
    Do have faith in what you're doing.
    ubao 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