为什么要让数据库脱机?

Gre*_*g B 16 sql-server

您会出于何种原因以及在何种情况下使用“脱机”/ALTER DATABASE dbName SET OFFLINE功能。

您可以使用离线数据库执行哪些任务?您只能使用离线数据库执行哪些任务?

squ*_*man 19

在开发/暂存环境中,有时将数据库脱机以确保您连接到应用程序中正确的数据库实例并且在某处没有架起的连接字符串很有用。

也就是说,在这种情况下,为不同的环境使用不同的数据库名称和构建过程会自动配置您的连接字符串是一个更好的主意......

同样,我喜欢让数据库离线一段时间,然后再将它们停用(不太可能),因为某些原因它们需要重新上线。当我想摆脱它时,我被开发人员咬了很多次,他们在我的一个数据库中拥有我不知道的钩子。与删除它并在需要时恢复它相比,将其离线要少得多,而且耗时少得多。

另一件事是作为紧急保障。我以前不得不这样做。有时在您的应用程序中发现一个令人讨厌的错误,即使不是恶意的,仍然会破坏您数据库中的数据。使数据库脱机是一种在确定错误之前停止流血的快速方法。然后,您可以将其重新联机以评估数据库中的损坏情况。

  • 同上。我在我们的预生产环境中有四千个数据库。有时很难知道谁拥有什么。将其离线并等待尖叫声有时是唯一的选择。 (9认同)
  • 我喜欢在删除之前离线的想法 (3认同)

mfi*_*nni 17

您可以将 MDF 文件移动到另一台服务器以使其联机。

  • 不,我还能想到其他原因。想象一下,您有多个数据库,用于多个应用程序。其中一个应用程序正在升级前端应用程序(Web 应用程序、客户端,谁知道呢。)您希望在升级期间禁止任何人访问数据库,但又不想关闭整个服务器因为其他数据库。这可能是将其离线的一个原因。我相信你的想象力也可以想出其他原因。 (6认同)
  • +1,或其他驱动器/文件夹/SAN... (4认同)
  • Greg B - 我特别提到升级前端,而不是数据库本身。在我描述的场景中,数据库保持不变。它将脱机以确保在过渡期间没有人访问它。 (2认同)

joe*_*rty 7

虽然这里的一些答案可能会给您一些关于您可以使用受限访问的数据库做什么的想法,但实际上无法使用离线数据库做太多事情。您无法更新、升级、添加或删除数据等。

  • 正确的。如果您希望能够对数据库做很多事情,最好将其置于单用户模式。然后你仍然限制访问,但可以做更多的事情。 (2认同)