二次元之男吧 关注:16贴子:1,422
  • 4回复贴,共1

千万不要作死【一】

取消只看楼主收藏回复



IP属地:广东1楼2016-10-06 21:49回复
    首先,一个常识,不要在生产环境直接执行sql语句,原因不多说
    but,实际上很多时候没办法,只能直接到服务器上执行sql
    ok,这个到此为止
    然后,在生产环境执行sql危险性极大,如果出问题后果跟核弹在头上爆炸一样
    那是一个风雨交加,电闪雷鸣的夜晚,我加着班。无聊的加班使我昏昏欲睡,麻木的手指噼里啪啦的码着代码。远程连接到了服务器,我需要查一下数据,三两下敲出了我的sql,选中,然后F5
    结果输出栏的9900+行记录受影响让我一脸懵逼
    当时脑袋就爆了,我知道我要死了
    定睛一看,原来服务器上很卡,我并没有选中我写的sql,而是选中了一个空白字符,也就是空格
    如果没有选中任何语句,sql server 2008的客户端软件会执行所有当前编辑窗口中的所有sql,当然这是我后来才知道的
    我往上面一翻,发现了一些update语句,当然这不是我写的,是其他同事写的,被我执行到了;还有写delete语句也被执行到了
    sql server 2008的客户端是自动提交事务的,点了F5就没法撤销
    死定了这次
    后来百度了下,所幸数据库的备份模式是完全备份,可以通过日志找回数据,在老司机的帮忙下数据找回来了
    谢天谢地


    IP属地:广东本楼含有高级字体2楼2016-10-06 21:57
    回复
      如果没有老司机救命,我后来甚至想到了要找硬盘数据恢复的,但是即使能恢复,也是行不通的,这是阿里云的云服务器,硬盘搞不到的
      标准的姿势:
      我拒绝在生产环境直接执行sql
      如果非要我这么做,我选择新建一个编辑窗口来编写和执行我的sql


      IP属地:广东本楼含有高级字体3楼2016-10-06 22:02
      回复
        首先,一个常识,不要在生产环境直接执行sql语句,原因不多说
        but,实际上很多时候没办法,只能直接到服务器上执行sql
        ok,这个到此为止
        然后,在生产环境执行sql危险性极大,如果出问题后果跟核弹在头上爆炸一样
        那是一个风雨交加,电闪雷鸣的夜晚,我加着班。无聊的加班使我昏昏欲睡,麻木的手指噼里啪啦的码着代码。远程连接到了服务器,我需要查一下数据,三两下敲出了我的sql,选中,然后F5
        结果输出栏的9900+行记录受影响让我一脸懵逼
        当时脑袋就爆了,我知道我要死了
        定睛一看,原来服务器上很卡,我并没有选中我写的sql,而是选中了一个空白字符,也就是空格
        如果没有选中任何语句,sql server 2008的客户端软件会执行所有当前编辑窗口中的所有sql,当然这是我后来才知道的
        我往上面一翻,发现了一些update语句,当然这不是我写的,是其他同事写的,被我执行到了;还有写delete语句也被执行到了
        sql server 2008的客户端是自动提交事务的,点了F5就没法撤销
        死定了这次
        后来百度了下,所幸数据库的备份模式是完全备份,可以通过日志找回数据,在老司机的帮忙下数据找回来了
        谢天谢地


        IP属地:广东4楼2016-10-09 08:55
        回复
          如果没有老司机救命,我后来甚至想到了要找硬盘数据恢复的,但是即使能恢复,也是行不通的,这是阿里云的云服务器,硬盘搞不到的
          标准的姿势:
          我拒绝在生产环境直接执行sql
          如果非要我这么做,我选择新建一个编辑窗口来编写和执行我的sql


          IP属地:广东5楼2016-10-09 08:55
          回复