将数据库添加到可用性组 (SQL Server)

本主题说明如何通过在 SQL Server 2012 中使用 SQL Server Management Studio、Transact-SQL 或 PowerShell 将数据库添加到 AlwaysOn 可用性组。

  • 开始之前: 

    先决条件和限制

    权限

  • 若要将数据库添加到可用性组,请使用: 

    SQL Server Management Studio

    Transact-SQL

    PowerShell

开始之前

先决条件和限制

权限

对可用性组要求 ALTER AVAILABILITY GROUP 权限、CONTROL AVAILABILITY GROUP 权限、ALTER ANY AVAILABILITY GROUP 权限或 CONTROL SERVER 权限。

用于“返回首页”链接的箭头图标[返回页首]

使用 SQL Server Management Studio

将数据库添加到可用性组

  1. 在对象资源管理器中,连接到承载主副本的服务器实例,然后展开服务器树。

  2. 依次展开**“AlwaysOn 高可用性”节点和“可用性组”**节点。

  3. 右键单击可用性组,然后选择下列命令之一:

    • 若要启动“将数据库添加到可用性组向导”,请选择**“添加数据库”**命令。 有关详细信息,请参阅使用“将数据库添加到可用性组向导”(SQL Server Management Studio)

    • 若要通过在**“可用性组属性”对话框中指定一个或多个数据库来进行添加,则选择“属性”**命令。 添加数据库的步骤如下所示:

      1. 在**“可用性数据库”窗格中,单击“添加”**按钮。 这将创建并选择一个空数据库字段。

      2. 输入符合可用性数据库先决条件的数据库的名称。

      若要添加其他数据库,请重复前面的步骤。 当您完成指定数据库后,请单击**“确定”**以完成此操作。

      在您使用**“可用性组属性”**对话框将数据库添加到可用性组后,需要在承载辅助副本的每个服务器实例上配置相应的辅助数据库。 有关详细信息,请参阅启动 AlwaysOn 辅助数据库的数据移动 (SQL Server)

用于“返回首页”链接的箭头图标[返回页首]

使用 Transact-SQL

将数据库添加到可用性组

  1. 连接到承载主副本的服务器实例。

  2. 按如下所示使用 ALTER AVAILABILITY GROUP 语句:

    ALTER AVAILABILITY GROUP group_name ADD DATABASE database_name [,...n]

    其中,group_name 为可用性组的名称,database_name 为要添加到该组的数据库的名称。

    以下示例将 MyDb3 数据库添加到 MyAG 可用性组。

    -- Connect to the server instance that hosts the primary replica.
    -- Add an existing database to the availability group.
    ALTER AVAILABILITY GROUP MyAG ADD DATABASE MyDb3;
    GO
    
  3. 在您将数据库添加到可用性组后,需要在承载辅助副本的每个服务器实例上配置相应的辅助数据库。 有关详细信息,请参阅启动 AlwaysOn 辅助数据库的数据移动 (SQL Server)

用于“返回首页”链接的箭头图标[返回页首]

使用 PowerShell

将数据库添加到可用性组

  1. 将目录 (cd) 更改为承载主副本的服务器实例。

  2. 使用 Add-SqlAvailabilityDatabase cmdlet。

    例如,下面的命令将辅助数据库 MyDd 添加到 MyAG 可用性组,其主副本由 PrimaryServer\InstanceName 承载。

    Add-SqlAvailabilityDatabase ` 
    -Path SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MyAG ` 
    -Database "MyDb"
    
    注意注意

    若要查看 cmdlet 的语法,请在 SQL Server PowerShell 环境中使用 Get-Help cmdlet。 有关详细信息,请参阅获取 SQL Server PowerShell 帮助

  3. 在您将数据库添加到可用性组后,需要在承载辅助副本的每个服务器实例上配置相应的辅助数据库。 有关详细信息,请参阅启动 AlwaysOn 辅助数据库的数据移动 (SQL Server)

设置和使用 SQL Server PowerShell 提供程序

有关完整示例,请参阅下面的示例 (PowerShell)。

示例 (PowerShell)

下面的示例说明了一个完整过程:从承载可用性组主副本的服务器实例上的一个数据库中准备一个辅助数据库,将此数据库添加到可用性组(作为主数据库),然后将此辅助数据库加入可用性组。 首先,该示例备份数据库及其事务日志。 然后,此示例将数据库和日志备份还原到承载辅助副本的服务器实例。

此示例调用两次 Add-SqlAvailabilityDatabase:第一次是针对主副本调用,以便将数据库添加到可用性组;然后对辅助副本调用,以便将该副本上的辅助数据库加入到可用性组。 如果您有多个辅助副本,则对其中每个副本还原和加入辅助数据库。

$DatabaseBackupFile = "\\share\backups\MyDatabase.bak"
$LogBackupFile = "\\share\backups\MyDatabase.trn"
$MyAgPrimaryPath = "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MyAg"
$MyAgSecondaryPath = "SQLSERVER:\SQL\SecondaryServer\InstanceName\AvailabilityGroups\MyAg"

Backup-SqlDatabase -Database "MyDatabase" -BackupFile $DatabaseBackupFile -ServerInstance "PrimaryServer\InstanceName"
Backup-SqlDatabase -Database "MyDatabase" -BackupFile $LogBackupFile -ServerInstance "PrimaryServer\InstanceName" -BackupAction 'Log'

Restore-SqlDatabase -Database "MyDatabase" -BackupFile $DatabaseBackupFile -ServerInstance "SecondaryServer\InstanceName" -NoRecovery
Restore-SqlDatabase -Database "MyDatabase" -BackupFile $LogBackupFile -ServerInstance "SecondaryServer\InstanceName" -RestoreAction 'Log' -NoRecovery

Add-SqlAvailabilityDatabase -Path $MyAgPrimaryPath -Database "MyDatabase"
Add-SqlAvailabilityDatabase -Path $MyAgSecondaryPath -Database "MyDatabase"

用于“返回首页”链接的箭头图标[返回页首]

请参阅

概念

AlwaysOn 可用性组概述 (SQL Server)

创建和配置可用性组 (SQL Server)

使用 AlwaysOn 面板 (SQL Server Management Studio)

监视可用性组 (Transact-SQL)