如何对镜像数据库进行架构更改?

时间:2009-08-19 17:05:53

标签: sql sql-server sql-server-2005 sql-server-2008 mirroring

我有一个镜像数据库,我需要对它进行一些更改。主要是添加视图和一些存储过程。现在我知道如果你进行架构更改,你应该删除镜像和镜像数据库,对主体进行更改,然后备份 - 恢复主体并恢复镜像。这是存储过程和视图的情况吗?我可以只对Principal进行更改,然后进行故障转移并对镜像进行更改吗?做这样的事情有什么可能的问题和后果?每次我们想做一个小改动时,这似乎是一项非常繁琐的工作,主要是因为数据库超过10场演出所以需要一点时间进行备份和恢复。

3 个答案:

答案 0 :(得分:11)

如果您正在镜像,则应该能够将这些更改应用于主体,并且它们会显示在镜像端。如果您希望两者之间存在架构差异,则无法使用镜像。您是要在仅镜像数据库上应用架构更改还是同时应用两者?如果两者都没有做任何特别的事情。

答案 1 :(得分:2)

  

现在我知道如果你制作架构   您应该删除的更改   镜像和镜像数据库,   对校长进行更改,   然后备份 - 恢复主体和   恢复镜像

这实际上是错误的。主体和镜像数据库实际上是存储在两个物理位置的单个数据库。 主体中发生的任何每次更改也会发生在镜像中。它们始终是完全相同的。

因此,在主体和镜像上都会发生任何模式更改,包括表,视图,过程,函数,模式,数据库主体,程序集等等。

需要特别注意的唯一更改是与数据库相关但在数据库中不会发生的更改:代理作业(它们在msdb中),服务器主体(登录),复制设置(它们遍布数据库,msdb和分发服务器。

答案 2 :(得分:1)

我们已将架构更改应用于logshipped和镜像数据库,而不必采取任何特殊操作 某些形式的复制需要特殊的测量。