若要確保Azure數(shù)據(jù)庫遷移服務(wù)在執(zhí)行數(shù)據(jù)庫遷移時順利運行,需要滿足幾個先決條件。某些先決條件適用于該服務(wù)支持的所有方案(源/目標(biāo)對),而其他先決條件則是特定方案所特有的。
以下各部分列出了與使用Azure數(shù)據(jù)庫遷移服務(wù)關(guān)聯(lián)的先決條件。
在不同遷移方案中通用的先決條件
在所有支持的遷移方案中通用的Azure數(shù)據(jù)庫遷移服務(wù)先決條件包括需要:
·使用Azure資源管理器部署模型創(chuàng)建Azure數(shù)據(jù)庫遷移服務(wù)的Azure虛擬網(wǎng)絡(luò),它將使用ExpressRoute或VPN為本地源服務(wù)器提供站點到站點連接。
·請確保虛擬網(wǎng)絡(luò)的網(wǎng)絡(luò)安全組(NSG)規(guī)則不阻止ServiceBus、存儲服務(wù)和AzureMonitor的ServiceTag出站端口443。有關(guān)虛擬網(wǎng)絡(luò)NSG流量篩選的更多詳細(xì)信息,請參閱使用網(wǎng)絡(luò)安全組篩選網(wǎng)絡(luò)流量一文。
·在源數(shù)據(jù)庫的前面使用了防火墻設(shè)備時,可能需要添加防火墻規(guī)則以允許Azure數(shù)據(jù)庫遷移服務(wù)訪問要遷移的源數(shù)據(jù)庫。
·配置針對數(shù)據(jù)庫引擎訪問的Windows防火墻。
·按照啟用或禁用服務(wù)器網(wǎng)絡(luò)協(xié)議一文中的說明啟用TCP/IP協(xié)議(在安裝SQL Server Express時,會默認(rèn)禁用它)。
重要
創(chuàng)建Azure數(shù)據(jù)庫遷移服務(wù)實例需要訪問通常不在同一資源組中的虛擬網(wǎng)絡(luò)設(shè)置。因此,創(chuàng)建DMS實例的用戶需要訂閱級別的權(quán)限。若要創(chuàng)建所需的角色(你可以根據(jù)需要分配這些角色),請運行以下腳本:
復(fù)制
$readerActions=`
"Microsoft.Network/networkInterfaces/ipConfigurations/read",`
"Microsoft.DataMigration/*/read",`
"Microsoft.Resources/subscriptions/resourceGroups/read"
$writerActions=`
"Microsoft.DataMigration/services/*/write",`
"Microsoft.DataMigration/services/*/delete",`
"Microsoft.DataMigration/services/*/action",`
"Microsoft.Network/virtualNetworks/subnets/join/action",`
"Microsoft.Network/virtualNetworks/write",`
"Microsoft.Network/virtualNetworks/read",`
"Microsoft.Resources/deployments/validate/action",`
"Microsoft.Resources/deployments/*/read",`
"Microsoft.Resources/deployments/*/write"
$writerActions+=$readerActions
#TODO:replace with actual subscription IDs
$subScopes=,"/subscriptions/00000000-0000-0000-0000-000000000000/","/subscriptions/11111111-1111-1111-1111-111111111111/"
function New-DmsReaderRole(){
$aRole=[Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition]::new()
$aRole.Name="Azure Database Migration Reader"
$aRole.Description="Lets you perform read only actions on DMS service/project/tasks."
$aRole.IsCustom=$true
$aRole.Actions=$readerActions
$aRole.NotActions=()
$aRole.AssignableScopes=$subScopes
#Create the role
New-AzRoleDefinition-Role$aRole
}
function New-DmsContributorRole(){
$aRole=[Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition]::new()
$aRole.Name="Azure Database Migration Contributor"
$aRole.Description="Lets you perform CRUD actions on DMS service/project/tasks."
$aRole.IsCustom=$true
$aRole.Actions=$writerActions
$aRole.NotActions=()
$aRole.AssignableScopes=$subScopes
#Create the role
New-AzRoleDefinition-Role$aRole
}
function Update-DmsReaderRole(){
$aRole=Get-AzRoleDefinition"Azure Database Migration Reader"
$aRole.Actions=$readerActions
$aRole.NotActions=()
Set-AzRoleDefinition-Role$aRole
}
function Update-DmsConributorRole(){
$aRole=Get-AzRoleDefinition"Azure Database Migration Contributor"
$aRole.Actions=$writerActions
$aRole.NotActions=()
Set-AzRoleDefinition-Role$aRole
}
#Invoke above functions
New-DmsReaderRole
New-DmsContributorRole
Update-DmsReaderRole
Update-DmsConributorRole
將SQL Server遷移到Azure SQL數(shù)據(jù)庫的先決條件
除了普遍適用于所有遷移方案的Azure數(shù)據(jù)庫遷移服務(wù)先決條件外,還有特別適用于個別方案的先決條件。
使用Azure數(shù)據(jù)庫遷移服務(wù)執(zhí)行SQL Server到Azure SQL數(shù)據(jù)庫的遷移時,除了普遍適用于所有遷移方案的先決條件外,還必須滿足以下附加先決條件:
·按照使用Azure門戶在Azure SQL數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)庫一文中的詳細(xì)說明創(chuàng)建Azure SQL數(shù)據(jù)庫實例。
·下載并安裝數(shù)據(jù)遷移助手v3.3或更高版本。
·打開Windows防火墻,使Azure數(shù)據(jù)庫遷移服務(wù)能夠訪問源SQL Server(默認(rèn)情況下為TCP端口1433)。
·如果使用動態(tài)端口運行多個命名SQL Server實例,則可能需要啟用SQL Browser服務(wù)并允許通過防火墻訪問UDP端口1434,以便Azure數(shù)據(jù)庫遷移服務(wù)可連接到源服務(wù)器上的命名實例。
·為SQL數(shù)據(jù)庫創(chuàng)建服務(wù)器級防火墻規(guī)則,以允許Azure數(shù)據(jù)庫遷移服務(wù)訪問目標(biāo)數(shù)據(jù)庫。提供用于Azure數(shù)據(jù)庫遷移服務(wù)的虛擬網(wǎng)絡(luò)子網(wǎng)范圍。
·確保用于連接到源SQL Server實例的憑據(jù)具有CONTROL SERVER權(quán)限。
·確保用于連接到目標(biāo)數(shù)據(jù)庫的憑據(jù)具有目標(biāo)數(shù)據(jù)庫的CONTROL DATABASE權(quán)限。
備注
有關(guān)使用Azure數(shù)據(jù)庫遷移服務(wù)執(zhí)行從SQL Server到Azure SQL數(shù)據(jù)庫的遷移所需的先決條件的完整列表,請參閱教程將SQL Server遷移到Azure SQL數(shù)據(jù)庫。
將SQL Server遷移到Azure SQL托管實例的先決條件
·按照在Azure門戶中創(chuàng)建Azure SQL托管實例一文中的詳述創(chuàng)建SQL托管實例。
·打開防火墻以允許Azure數(shù)據(jù)庫遷移服務(wù)IP地址或子網(wǎng)范圍的端口445上的SMB流量。
·打開Windows防火墻,使Azure數(shù)據(jù)庫遷移服務(wù)能夠訪問源SQL Server(默認(rèn)情況下為TCP端口1433)。
·如果使用動態(tài)端口運行多個命名SQL Server實例,則可能需要啟用SQL Browser服務(wù)并允許通過防火墻訪問UDP·端口1434,以便Azure數(shù)據(jù)庫遷移服務(wù)可連接到源服務(wù)器上的命名實例。
·確保用于連接源SQL Server和目標(biāo)托管實例的登錄名是sysadmin服務(wù)器角色的成員。
·創(chuàng)建網(wǎng)絡(luò)共享,供Azure數(shù)據(jù)庫遷移服務(wù)用來備份源數(shù)據(jù)庫。
·確保運行源SQL Server實例的服務(wù)帳戶對你創(chuàng)建的網(wǎng)絡(luò)共享擁有寫入權(quán)限,并且源服務(wù)器的計算機帳戶具有對同一共享的讀/寫訪問權(quán)限。
·請記下在前面創(chuàng)建的網(wǎng)絡(luò)共享中擁有完全控制權(quán)限的Windows用戶(和密碼)。Azure數(shù)據(jù)庫遷移服務(wù)可模擬用戶憑據(jù),將備份文件上傳到Azure存儲容器,以執(zhí)行還原操作。
·通過采用使用存儲資源管理器管理Azure Blob存儲資源一文中的步驟,創(chuàng)建blob容器并檢索其SAS URI。在創(chuàng)建SAS URI時,務(wù)必在策略窗口選擇所有權(quán)限(讀取、寫入、刪除、列出)。
備注
有關(guān)使用Azure數(shù)據(jù)庫遷移服務(wù)執(zhí)行從SQL Server到SQL托管實例的遷移所需的先決條件的完整列表,請參閱教程將SQL Server遷移到SQL托管實例。