为什么要使数据库脱机?


15

您出于什么原因在什么情况下使用“脱机” ALTER DATABASE dbName SET OFFLINE功能。

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

Answers:


16

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


4
+1,或其他驱动器/文件夹/ SAN ...
Chris S 2010年

那是“脱机”的唯一用途吗?
Greg B

5
不,我可以想到其他原因。假设您有多个数据库,用于多个应用程序。其中一个应用程序正在升级前端应用程序(Web应用程序,客户端,谁知道。)您想在升级过程中禁止任何人对数据库的访问,但是您不想关闭整个服务器因为其他数据库。这可能是使其脱机的原因。我敢肯定,您的想像力也会有其他原因。
mfinni

我的想象力不会害怕,因此是一个问题。我不认为您可以在脱机时更改数据库,所以我看不到脱机如何有助于升级过程
Greg B,2010年

2
Greg B-我专门说过升级前端,而不是升级数据库本身。在我描述的场景中,数据库保持不变。它将脱机以确保在过渡期间没有人可以访问它。
mfinni

18

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

也就是说,在这种情况下,最好为不同的环境使用不同的数据库名称,并且构建过程将自动配置连接字符串...

同样,我希望使数据库脱机一段时间,然后(出于某种原因)(出于某种原因)需要使数据库重新联机以使其(不那么)停止使用。我已经被开发人员咬了好几次了,这些开发人员在想摆脱它的时候却不知所措。使它脱机比删除它并在需要时进行恢复要少得多,并且花费的时间也少得多。

另一件事是作为紧急保障。我以前必须这样做。有时,在您的应用程序中发现了一个讨厌的错误,即使它不是恶意的,也仍然会破坏数据库中的数据。使数据库脱机是一种阻止故障的快速方法,直到您发现错误为止。然后,您可以将其重新联机以评估数据库中的损坏。


2
我喜欢删除之前先离线的想法
Greg B,2010年

8
同上。在我们的预生产环境中,我有四千个数据库。有时很难知道谁拥有什么。使其脱机并等待尖叫声有时是唯一的选择。
Michael Green

6

尽管此处的某些答案可能会给您一些有关访问受限的数据库可以做什么的想法,但对于脱机的数据库实际上却无能为力。您无法更新,升级,添加或删除数据等。


2
正确。如果您想对数据库做很多事情,最好将其置于单用户模式。这样您仍然可以限制访问权限,但可以做更多的事情。
肖恩·霍亚特

您甚至无法重命名!
Dima Fomin

0

我的首要原因是,我不得不卖给DBA的原因比我想列举的要多。

“ SAN需要维修……而且,我不能只是热交换驱动器,背板/控制器有故障。”

当数据库实例的磁盘消失时,它们的行为非常糟糕。

因此,在将SAN脱机之前,我先关闭了SQL实例,然后一次又将它们恢复为原来的状态,这样它们就不会竞争资源-第一个实例占用所有群集资源并成为Active DB节点,随后的实例运行作为被动节点。


-3

有许多原因使您需要执行此操作。

举个例子

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.. 

(在某些数据库中,您只需在所有表上创建一个锁)


+1,也是较旧的DBMS,用于对数据库进行碎片整理或缩小。
克里斯·S

1
re:“更改或升级模式”,在线丛书中,“ OFFLINE数据库已关闭,干净关闭并标记为脱机。脱机时无法修改数据库。” 在这种情况下如何升级架构?
格雷格·B

对不起..我指的是对不活动的数据库进行更改。.我是MySQL的追随者,我假设升级将在标记为脱机的数据库上进行,因此除了所需的更改外,它没有任何其他并发问题。
.D

2
您知道,真实数据库支持真实备份。您无需采取任何行动,只需离线玩具即可完美地进行时间一致的备份。需要锁或其他一些愚蠢机制的数据库是玩具。真。所有主要数据库在大量使用时都不会出现完全备份,一致,完整的问题。
TomTom
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.