有没有简单的方法来触发单个镜像数据库的自动故障转移?


8

我在具有自动故障转移配置的高度安全的sqlserver2008-R2单个实例上拥有3个镜像数据库。有没有一种方法可以触发仅1个数据库的自动故障转移?

我想模拟数据库实际上无法访问的位置,而不仅仅是单击SSMS中的“故障转移”按钮。我可以将端点停止在主数据库上,但这会使所有3个数据库无法访问,因为它们使用相同的端点。

如何仅禁用1分贝?

Answers:


3

如果为高安全性/自动故障转移正确配置了镜像,那么我倾向于认为您可以通过以下方式使主体数据库脱机:

alter database YourDb set offline
with rollback immediate
go

我相信,通过使数据库脱机,您将具有自动故障转移功能,而不会影响您不想进行故障转移的其他两个数据库。


1
这是我希望可以使用的解决方案,但我得到了消息1468,数据库涉及镜像,更改语句失败。
dat_girl 2011年

@dat_girl您可以首先尝试将其设置为具有立即回滚的单用户,然后尝试上述声明吗?
托马斯·斯金格

@shark也不起作用,同样的错误。我认为在对数据库进行任何“状态”更改之前,我必须停止镜像。
dat_girl 2011年

2

为了使镜像有意义,您至少需要第二个SQL Server实例:一个用于“主要”实例,一个用于“镜像”实例。

如何安装其他实例,请参阅:实例配置

为了使自动故障转移生效,您还需要第三个实例(“见证”),目的是监视主体和镜像的(连接)状态(“ ...见证方不为数据库提供服务。”)故障转移是见证人的唯一角色”)。

要使用故障转移设置整个镜像,请参阅:自动故障转移同步数据库镜像(高安全性模式)

完成这些步骤后,您可以通过停止SQL Server服务之一(主服务或镜像服务)来测试配置。镜像的数据库随后可用。

我强烈建议不要在同一台真实的服务器上运行实例,因为这不能使您免受任何硬件灾难的侵害!


感谢@vorax,但是我已经有了镜像设置,并且可以正常工作。我也不想停止该服务,因为这将导致实例上的所有数据库崩溃。我只想停止1.
dat_girl 2011年

0

嗯,alter database whateverdb set partner failover应该这样做,但是它可能会带走整个服务器,我没有一个可以尝试的手,而且文档似乎很讨厌地交替使用服务器数据库

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.