如何管理超大規模資料庫
本文內容
適用於: Azure SQL 資料庫
此超大規模資料庫服務層級 提供可高度擴增的儲存體和計算效能層,可利用 Azure 結構以擴增 Azure SQL Database 的儲存體和計算資源,而大幅超過一般用途和商務關鍵性服務層級的可用限制。
本文連結至執行超大規模資料庫的基本管理工作的重要指南,包括將現有資料庫轉換成超大規模資料庫、將超大規模資料庫還原至不同區域、從超大規模資料庫反向移轉至另一個服務層級,以及監視超大規模資料庫進行中和最近作業的狀態。
瞭解如何在快速入門:在 Azure SQL Database 中建立超大規模資料庫 中建立新的超大規模資料庫。
監視超大規模資料庫的作業
您可以使用 Azure 入口網站、Azure CLI、PowerShell 或 Transact-SQL,監視 Azure SQL Database 進行中或最近完成的作業狀態。
選取您慣用方法的索引標籤,以監視作業。
當移轉、反向移轉或還原等作業正在進行時,Azure 入口網站會顯示 Azure SQL Database 中資料庫的通知。
瀏覽至 Azure 入口網站中的資料庫。
在左導覽列中,選取 [概觀]。
檢閱右窗格底部的 [通知] 區段。 如果作業正在進行中,則會顯示通知方塊。
選取通知方塊以檢視詳細資料。
[進行中的作業 ] 窗格開啟。 檢閱進行中作業的詳細資料。
此程式碼範例會呼叫 az sql db op list ,以傳回 Azure SQL Database 中資料庫的最新或進行中作業。
在執行下列程式碼範例之前,請先將 resourceGroupName
、serverName
、databaseName
和 serviceObjective
取代為適當的值:
resourceGroupName="myResourceGroup"
serverName="server01"
databaseName="mySampleDatabase"
az sql db op list -g $resourceGroupName -s $serverName --database $databaseName
Get-AzSqlDatabaseActivity cmdlet 會傳回 Azure SQL Database 中資料庫的最新或進行中作業。
在執行範例程式碼之前,請先將 $resourceGroupName
、$serverName
和 $databaseName
參數設定為資料庫的適當值:
$resourceGroupName = "myResourceGroup"
$serverName = "server01"
$databaseName = "mySampleDatabase"
Get-AzSqlDatabaseActivity -ResourceGroupName $resourceGroupName -ServerName $serverName -DatabaseName $databaseName
若要監視超大規模資料庫的作業,請使用 master
連線至您邏輯伺服器 上的 資料庫,並使用 SQL Server Management Studio (SSMS) 、Azure Data Studio 或您選擇的其他用戶端執行 Transact-SQL 命令。
查詢 sys.dm_operation_status 動態管理檢視,以檢閱在 [邏輯伺服器] (logical-servers.md] 上對資料庫執行的最新作業相關資訊。
此程式碼範例會針對指定的資料庫,在 sys.dm_operation_status
中傳回所有項目,並依作業開始時間由近到遠排序。 在執行程式碼範例之前,請先將資料庫名稱取代為適當的值。
SELECT *
FROM sys.dm_operation_status
WHERE major_resource_id = 'mySampleDatabase'
ORDER BY start_time DESC;
GO
檢視超大規模服務層級中的資料庫
將資料庫移轉至超大規模資料庫或在超大規模資料庫服務層級內重新設定資料庫之後,建議您檢視和/或記錄超大規模資料庫設定。
Azure 入口網站會顯示邏輯伺服器 上所有資料庫的清單。
定價層 資料行包含每個資料庫的服務層級。
在 Azure 入口網站中瀏覽至邏輯伺服器 。
在左導覽列中,選取 [概觀]。
捲動至窗格底部的資源清單。 視窗顯示邏輯伺服器上的 SQL 彈性集區和資料庫。
檢閱定價層 資料行,以識別超大規模服務層中的資料庫。
此 Azure CLI 程式碼範例會呼叫 az sql db list ,以列出邏輯伺服器 上的超大規模資料庫,內含其名稱、位置、服務等級目標、大小上限和高可用性複本數目。
在執行以下程式碼範例之前,請先將 resourceGroupName
和 serverName
取代為適當的值:
resourceGroupName="myResourceGroup"
serverName="server01"
az sql db list -g $resourceGroupName -s $serverName --query "[].{Name:name, Location:location, SLO:currentServiceObjectiveName, Tier:currentSku.tier, maxSizeBytes:maxSizeBytes,HAreplicas:highAvailabilityReplicaCount}[?Tier=='Hyperscale']" --output table
Azure PowerShell Get-AzSqlDatabase Cmdlet 會傳回邏輯伺服器上 超大規模資料庫清單,內含其名稱、位置、服務等級目標、大小上限和高可用性複本數目。
在執行範例程式碼之前,請先將 $resourceGroupName
和 $serverName
參數設定為適當值:
$resourceGroupName = "myResourceGroup"
$serverName = "server01"
Get-AzSqlDatabase -ResourceGroupName $resourceGroupName -ServerName $serverName | `
Where-Object { $_.Edition -eq 'Hyperscale' } | `
Select-Object DatabaseName, Location, currentServiceObjectiveName, Edition, `
MaxSizeBytes, HighAvailabilityReplicaCount | `
Format-Table
查看版本 欄,識別超大規模服務層級的資料庫。
若要使用 Transact-SQL 檢閱邏輯伺服器 上所有超大規模資料庫的服務層級,首先使用 SQL Server Management Studio (SSMS) 或 Azure Data Studio 連線至資料庫。
查詢 sys.database_service_objectives 系統目錄檢視,以檢閱超大規模資料庫服務層級中的資料庫:
SELECT d.name, dso.edition, dso.service_objective
FROM sys.database_service_objectives AS dso
JOIN sys.databases as d on dso.database_id = d.database_id
WHERE dso.edition = 'Hyperscale';
GO
將資料庫轉換為超大規模資料庫
您可以使用 Azure 入口網站、Azure CLI、PowerShell 或 Transact-SQL,將 Azure SQL Database 中的現有資料庫轉換成超大規模資料庫。
轉換程式分為兩個階段-數據轉換,在現有資料庫上線時發生,然後完全切換至新的超大規模資料庫。 您可以選擇何時進行切換——一旦資料庫準備就緒時立即進行,或在您選定的時間手動實施。
如需詳細資訊和步驟,請參閱 將現有的資料庫轉換成超大規模資料庫 。
從超大規模資料庫反向移轉
反向移轉至一般用途服務層級可讓最近將 Azure SQL Database 中的現有資料庫轉換為超大規模資料庫的客戶,以在緊急情況下返回,如果超大規模資料庫不符合其需求。 雖然反向移轉是由服務層級變更所起始,但其基本上是不同結構之間的資料大小移動。
如需詳細資訊和步驟,請參閱 從超大規模資料庫 反向移轉資料庫。
相關內容