你知道我在谈论的那个.
我们已经在某个时候到过那里了.你得到了那种可怕的恐惧感,而我的上帝的实现确实发生了.
当然,你现在可以笑一笑,对,所以继续和我们分享你的SQL Server意外.
如果您可以详细说明如何解决问题,以便我们可以一起从错误中吸取教训,那就更好了.
所以为了让球滚动,我会先走......
这是我早年作为初级SQL Server大师的回归.我正在围绕企业管理器竞争,履行一些管理职责.你知道它是怎么回事,查看几个日志,确保备份运行正常,一点点数据库管理,几乎关于自动驾驶的业务,并按弹出的常规提示点击回车键.
哦,等等,是"你确定要删除此表"提示.太晚了!
只是为了确认任何有抱负的DBA,删除生产表是一件非常非常糟糕的事情!
毋庸置疑,世界纪录被迅速设置为最快的数据库恢复到新的数据库,很快就会进行表迁移,哦是的.当然,其他人都不是明智的,但仍然是一个宝贵的经验教训.浓缩!
我想每个人都在某个时候错过了DELETE或UPDATE的WHERE子句......
将500万测试人员插入生产数据库.我认为最大的错误就是让我首先对生产数据库进行写访问.:P坏dba!
我最大的SQL Server错误是假设它在并发性方面与Oracle一样强大.
让我解释.
谈到SQL Server中的事务隔离级别,您有两种选择:
脏读:事务可以看到未提交的数据(来自其他事务); 要么
选择阻止未提交的更新.
我相信这些来自ANSI SQL.
(2)是默认的隔离级别,(imho)是两个邪恶中的较小者.但对于任何长期运行的流程来说,这都是一个巨大的问题.我不得不批量加载数据,并且只能在数小时内完成,因为它在运行时杀死了网站(因为它插入了50万条记录需要10-20分钟).
另一方面,Oracle拥有MVCC.这基本上意味着每个事务都会看到一致的数据视图.他们不会看到未提交的数据(除非您设置隔离级别来执行此操作).它们也不会阻止未提交的事务(我对这个想法感到惊讶,据称企业数据库会认为这是可以并发的).
我只想说,这是一次学习经历.
而你知道什么? 甚至MySQL都有MVCC.
我在一个高产量的电子商务网站上将所有价格都改为零.我不得不把网站关闭并从备份中恢复数据库..很不好意思.
幸运的是,这是一个LOOONG时间前.
忘记在更新或删除时突出显示WHERE子句
脚本首先处理和检查drop依赖对象,然后在生产中运行它
我正在研究大型在线业务的支付系统.数百万欧元的业务.
从一位同事处获取一些脚本,其中包含一些小更新.
在生产中运行它.
30分钟后从帮助台获取错误报告,抱怨过去30分钟没有购买.
发现所有连接都在等待释放的表锁
发现我的同事的脚本以明确的BEGIN TRANSACTION开始,并希望我在最后手动输入COMMIT TRANSACTION.
向老板解释为什么30分钟的销售损失.
责怪自己没有正确阅读脚本文档.
从上周开始还原到生产实例而不是开发实例.不是早上好.