数据库镜像和故障转移的编程管理

上次修改时间: 2010年1月13日

适用范围: SharePoint Foundation 2010

本主题介绍 Microsoft SharePoint Foundation 对象模型对 Microsoft SQL Server 的数据库镜像和故障转移功能提供的支持。

数据库镜像和自动故障转移

可以将任何 Microsoft SQL Server 数据库镜像到其他 SQL Server 服务器。对主数据库执行的每个写入和删除操作都将在镜像数据库上重复执行。此外,当主服务器上发生硬件故障、网络故障或其他故障时,镜像服务器会立即承担主数据库的角色,而几乎或完全不会中断对使用应用程序的服务。

重要注释重要信息

数据库镜像并未消除对备份数据的需求。一般来说,如果主数据库因硬件故障之外的任何原因导致受损,则镜像数据库将以同样的方式受损。

SharePoint Foundation 对数据库镜像和故障转移服务器的支持主要在于告知 SharePoint Foundation 有关镜像的情况。详细的配置是在 Microsoft SQL Server 中处理的。管理中心应用程序具有的 UI 可用于为内容数据库和服务应用程序数据库(如搜索数据库)标识故障转移服务器。Windows PowerShell 命令行界面脚本可用于执行同一操作,而 Windows PowerShell 命令可用于指定配置数据库的故障转移服务器。如果解决方案包含您希望用户镜像的数据库,您可以使用对象模型告知 SharePoint Foundation 有关故障转移服务器的信息并将此信息保留在配置数据库中。

在已设置见证服务器的情况下,如果主数据库是不可访问的,则该服务器会自动将数据库访问权重定向到镜像数据库。即使没有见证服务器,SharePoint Foundation 也将支持快速转换到镜像。如果因任何原因导致无法访问主数据库,则 SharePoint Foundation 将尝试连接到镜像。当然,必须在 SQL Server 中将镜像设置为可读

对象模型中的镜像和故障转移支持

SPDatabase 类中有三个成员支持数据库镜像:

下面的示例演示如何将镜像数据库注册到 SharePoint Foundation 配置数据库。cdb 为 SPDatabase 对象。

cdb.AddFailoverServiceInstance("Server2/Microsoft##SSEEMirror");
cdb.Update();
cdb.AddFailoverServiceInstance("Server2/Microsoft##SSEEMirror")
cdb.Update()

如果您的解决方案还向服务器场管理员提供 UI 作为管理中心应用程序的替代项,您可以使用 ContentDatabaseSection 控件。可以确定的是,服务器场管理员可利用其属性来设置相关值,特别是 FailoverDatabaseServer 属性。