zoukankan      html  css  js  c++  java
  • 线上手一抖,差点直接提桶

    很多人都有过线上操作数据库的经历,大一点的公司可能有层层审核,小公司就直接上去就是干了,而我,就在这样的小公司。

    手一抖,直接把用户的充值记录干没了,虽然最后从备份恢复了,但是也扣了工资,还通报了。。。

    痛定思痛,开始学习怎么避免这种情况。。。

    定期备份

    别管多大的库,都要有备份,而且要定期备份,哪怕有个从库,至少不会提桶。。

    如果是小表,比如是配置表,可以先克隆一个表出来备份。

    测试服先试试

    如果条件允许,现在测试服环境试一下,别太自信。。。

    别用聊天工具直接发SQL

    尤其是长SQL,用文本,最好也别换行,你自己校验的时候换行看都行,发出去最好别换行。

    操作前select先

    比如我要把所有的订单状态改一下,就先查出来,看是不是对的,然后再写update语句。

    分批操作

    大事务的执行最好都分批,不然会锁表。不管是删除还是更新。

    加字段

    • is_delete:即软删除。给自己留一个机会。
    • update_time:可以找出来自己影响了哪些行,方便修复。
    • update_user:如果有多个人操作数据库,最好加上。

    表名前面加库名

    如果业务中分了库,一定要记得加库名,因为很多表名都可能重复,一不小心就。。。

    默认值

    很多线上加了一个字段,不加默认值,就insert失败了。。。

    不允许直接删字段

    这个大公司应该还好,都会走流程、DBA审查之类的。小公司就不一定了,一问都没用,那就直接删吧。。。

    首先是确定所有代码中都没有用,其次要在测试服先测,最后要在停服维护的时候,把要删的字段统计一下,一起删。

    改字段

    • 改名字,不允许,这和删字段有啥区别。
    • 改类型,走测试,和版本一起上线。
    • 改长度,最好别,设计的时候干嘛去了,浪费了就浪费了把。
  • 相关阅读:
    silverlight click 事件委托是 RoutedEventHandler
    silverlight 2 系统对话框
    CSLA.Net 3.0.5 项目管理示例 UI ProjectEdit.aspx
    委托和事件 委托
    Visual Studio 项目模板、文件模板、代码段和环境设置
    C# 打好基础图文详解
    Hession 基础应用
    ADO.NET Entity Framework 概述
    CSLA.Net 3.0.5 项目管理示例 业务基类 Project.cs
    关于使用 Visual Studio 开发环境收费的问题,博友们谁有经验分享一下。
  • 原文地址:https://www.cnblogs.com/HappyTeemo/p/15350010.html
Copyright © 2011-2022 走看看