將資料庫加入至可用性群組 (SQL Server)
本主題描述如何使用 SQL Server Management Studio、Transact-SQL 或 SQL Server 2012 中的 PowerShell,將資料庫加入至 AlwaysOn 可用性群組。
開始之前:
必要條件和限制
權限
若要使用下列項目,將資料庫加入至可用性群組:
SQL Server Management Studio
Transact-SQL
PowerShell
開始之前
必要條件和限制
您必須連接到裝載主要複本的伺服器執行個體。
資料庫必須位於裝載主要複本的伺服器執行個體上,且符合可用性資料庫的必要條件和限制。 如需詳細資訊,請參閱<AlwaysOn 可用性群組的必要條件、限制和建議 (SQL Server)>。
權限
需要可用性群組的 ALTER AVAILABILITY GROUP 權限、CONTROL AVAILABILITY GROUP 權限、ALTER ANY AVAILABILITY GROUP 權限或 CONTROL SERVER 權限。
[回到頁首]
使用 SQL Server Management Studio
若要將資料庫加入至可用性群組
在 [物件總管] 中,連接到裝載主要複本的伺服器執行個體,然後展開伺服器樹狀目錄。
依序展開 [AlwaysOn 高可用性] 節點和 [可用性群組] 節點。
以滑鼠右鍵按一下可用性群組,然後選取下列其中一個命令:
若要啟動「將資料庫加入至可用性群組精靈」,選取 [加入資料庫] 命令。 如需詳細資訊,請參閱<使用 [將資料庫加入至可用性群組] 精靈 (SQL Server Management Studio)>。
若要在 [可用性群組屬性] 對話方塊中指定一個或多個資料庫來加入這些資料庫,選取 [屬性] 命令。 加入資料庫的步驟如下所示:
在 [可用性資料庫] 窗格中,按一下 [加入] 按鈕。 這樣會建立並選取一個空白資料庫欄位。
輸入符合可用性資料庫必要條件之資料庫的名稱。
若要加入另一個資料庫,請重複上述步驟。 當您指定好資料庫時,按一下 [確定] 以完成該作業。
使用 [可用性群組屬性] 對話方塊將資料庫加入至可用性群組之後,您需要在裝載次要複本的每個伺服器執行個體上設定對應的次要資料庫。 如需詳細資訊,請參閱<於 AlwaysOn 次要資料庫啟動資料移動 (SQL Server)>。
[回到頁首]
使用 Transact-SQL
若要將資料庫加入至可用性群組
連接到裝載主要複本的伺服器執行個體。
使用 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
將資料庫加入至可用性群組之後,您需要在裝載次要複本的每個伺服器執行個體上設定對應的次要資料庫。 如需詳細資訊,請參閱<於 AlwaysOn 次要資料庫啟動資料移動 (SQL Server)>。
[回到頁首]
使用 PowerShell
若要將資料庫加入至可用性群組
變更目錄 (cd) 為裝載主要複本的伺服器執行個體。
使用 Add-SqlAvailabilityDatabase 指令程式。
例如,下列命令會將次要資料庫 MyDd 加入至 MyAG 可用性群組,其主要複本由 PrimaryServer\InstanceName 裝載。
Add-SqlAvailabilityDatabase ` -Path SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MyAG ` -Database "MyDb"
[!附註]
若要檢視指令程式的語法,請在 SQL Server PowerShell 環境中使用 Get-Help 指令程式。 如需詳細資訊,請參閱<取得 SQL Server PowerShell 說明>。
將資料庫加入至可用性群組之後,您需要在裝載次要複本的每個伺服器執行個體上設定對應的次要資料庫。 如需詳細資訊,請參閱<於 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"
[回到頁首]