出于什么原因以及在什么情况下,您将使用“脱机”/ ALTER DATABASE dbName SET OFFLINEfunction。
您可以使用脱机数据库执行哪些任务? 您只能使用脱机数据库执行哪些任务?
您可以将MDF文件移动到其他服务器以使其联机。
在开发环境/登台环境中,将数据库脱机以确保连接到应用程序中正确的数据库实例并且在某处没有连接string是有用的。
也就是说,在这种情况下,为不同的环境使用不同的数据库名称以及一个可以自动configuration连接string的构build过程是一个好主意。
同样,我喜欢将数据库脱机一段时间,然后在(不太可能)出于某种原因需要重新联机的情况下退役。 当我想摆脱它的时候,我已经被开发人员咬了好几次,这些开发人员把我不知道的钩子插入到我的数据库中。 使其脱机要比删除它更less,更省时,并在需要时进行恢复。
另一件事是作为紧急保障。 我以前不得不这样做。 有时在您的应用程序中发现一个令人讨厌的错误,即使不是恶意的,仍然会损坏数据库中的数据。 使数据库脱机是一种快速的方法来阻止stream血,直到find错误。 然后,您可以将其重新在线,以评估数据库中的损坏。
虽然这里的一些答案可能会给你一些关于你可以用限制访问的数据库做什么的想法,但实际上离线的数据库实际上可以做的不多。 您无法更新,升级,添加或删除数据等
我的首要原因,就是我不得不比较多地向DBA出售这个数据。
“SAN需要维修……不,我不能热插拔驱动器,背板/控制器出现故障。”
数据库实例的行为非常糟糕,当他们的磁盘消失。
因此,在closuresSAN之前closuresSQL实例,然后将它们一次一个地带回来,这样它们就不会竞争资源 – 第一个实例占用所有群集资源并成为活动DB节点,后续实例运行作为被动节点。
有很多原因你需要这样做..
例如,
consider changing or upgrading the actual database program/binary... consider changing or upgrading the schema or tables.. consider changing or upgrading index's..
最重要的一点
Is taking a backup.. to get a perfect snapshot in time..
(在某些数据库中,您只需在所有表上创build一个锁)