SQL Server offline migrálása felügyelt SQL-példányra a PowerShell és az Azure Database Migration Service használatával
Ebben a cikkben offline módon migrálja az Adventureworks2016 adatbázist az SQL Server 2005 vagy újabb helyszíni példányára egy Felügyelt Azure SQL-példányba a Microsoft Azure PowerShell használatával. Adatbázisokat migrálhat egy SQL Server-példányból egy felügyelt SQL-példányba a Az.DataMigration
Microsoft Azure PowerShell moduljának használatával.
Ebben a cikkben az alábbiakkal ismerkedhet meg:
- Hozzon létre egy erőforráscsoportot.
- Hozzon létre egy Azure Database Migration Service-példányt.
- Migrálási projekt létrehozása az Azure Database Migration Service egy példányában.
- Futtassa az áttelepítést offline állapotban.
Tipp.
Az Azure Database Migration Service-ben az adatbázisokat offline vagy online állapotban is áttelepítheti. Offline migrálás esetén az alkalmazás állásideje az áttelepítés indításakor kezdődik. Ha az állásidőt a migrálás utáni új környezetre való átállás időtartamára szeretné korlátozni, használjon online migrálást. Javasoljuk, hogy tesztelje az offline migrálást annak megállapításához, hogy az állásidő elfogadható-e. Ha a várt állásidő nem elfogadható, végezze el az online migrálást.
Ez a cikk az offline migrálás lépéseit ismerteti, de online is áttelepíthető.
Előfeltételek
Az alábbi lépések végrehajtásához a következőkre van szüksége:
- SQL Server 2016 vagy újabb (bármely kiadás).
- Az AdventureWorks2016 adatbázis helyi példánya, amely innen tölthető le.
- A TCP/IP protokoll engedélyezéséhez, amely alapértelmezés szerint le van tiltva az SQL Server Express telepítésével. Engedélyezze a TCP/IP protokollt a Kiszolgálói hálózati protokoll engedélyezése vagy letiltása című cikkben leírtak szerint.
- A Windows tűzfal adatbázismotor-hozzáféréshez való konfigurálásához.
- Azure-előfizetés. Ha még nincs előfizetése, hozzon létre egy ingyenes fiókot, mielőtt hozzákezd.
- Felügyelt SQL-példány. Felügyelt SQL-példányt úgy hozhat létre, ha a Felügyelt Azure SQL-példány létrehozása című cikkben leírtakat követi.
- A Data Migration Assistant 3.3-s vagy újabb verziójának letöltéséhez és telepítéséhez.
- Az Azure Resource Manager üzemi modellel létrehozott Microsoft Azure-beli virtuális hálózat, amely az Azure Database Migration Service-nek helyek közötti kapcsolatot biztosít a helyszíni forráskiszolgálókkal expressRoute vagy VPN használatával.
- A helyszíni adatbázis és séma migrálásának befejezett értékelése a Data Migration Assistant használatával, az SQL Server migrálási felmérésének elvégzéséről szóló cikkben leírtak szerint.
- A modul (0.7.2-es vagy újabb verzió) letöltése és telepítése
Az.DataMigration
a PowerShell-galéria az Install-Module PowerShell-parancsmag használatával. - Annak biztosítása érdekében, hogy a forrás SQL Server-példányhoz való csatlakozáshoz használt hitelesítő adatok rendelkeznek a CONTROL Standard kiadás RVER engedéllyel.
- Annak biztosítása érdekében, hogy a felügyelt SQL-példány célpéldányához való csatlakozáshoz használt hitelesítő adatok rendelkezzenek a CONTROL DATABA Standard kiadás engedéllyel a felügyelt SQL-példányok céladatbázisaihoz.
Bejelentkezés a Microsoft Azure-előfizetésbe
Jelentkezzen be Az Azure-előfizetésbe a PowerShell használatával. További információ: Bejelentkezés az Azure PowerShell-lel.
Erőforráscsoport létrehozása
Az Azure-erőforráscsoport egy logikai tároló, amelyben az Azure-erőforrások üzembe helyezése és kezelése történik.
Hozzon létre egy erőforráscsoportot a New-AzResourceGroup
parancs használatával.
Az alábbi példa létrehoz egy myResourceGroup nevű erőforráscsoportot az USA keleti régiójában.
New-AzResourceGroup -ResourceGroupName myResourceGroup -Location EastUS
Egy Azure Database Migration Service-példány létrehozása
A parancsmaggal létrehozhatja az New-AzDataMigrationService
Azure Database Migration Service új példányát.
Ez a parancsmag a következő szükséges paramétereket várja:
- Azure-erőforráscsoport neve. A parancs segítségével
New-AzResourceGroup
létrehozhat egy Azure-erőforráscsoportot a korábban bemutatott módon, és paraméterként megadhatja a nevét. - Szolgáltatásnév. Az Azure Database Migration Service kívánt egyedi szolgáltatásnevének megfelelő sztring.
- Hely. A szolgáltatás helyét adja meg. Adjon meg egy Azure-adatközpont helyét, például az USA nyugati régióját vagy Délkelet-Ázsiát.
- Termékváltozat. Ez a paraméter megfelel a DMS termékváltozat nevének. A jelenleg támogatott termékváltozatok neve Basic_1vCore, Basic_2vCores és GeneralPurpose_4vCores.
- Virtuális alhálózat azonosítója. A parancsmaggal
New-AzVirtualNetworkSubnetConfig
alhálózatot hozhat létre.
Az alábbi példa létrehoz egy MyDMS nevű szolgáltatást az USA keleti régiójában található MyDMSResourceGroup erőforráscsoportban egy MyVNET nevű virtuális hálózat és egy MySubnet nevű alhálózat használatával.
$vNet = Get-AzVirtualNetwork -ResourceGroupName MyDMSResourceGroup -Name MyVNET
$vSubNet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vNet -Name MySubnet
$service = New-AzDms -ResourceGroupName myResourceGroup `
-ServiceName MyDMS `
-Location EastUS `
-Sku Basic_2vCores `
-VirtualSubnetId $vSubNet.Id`
Migrálási projekt létrehozása
Az Azure Database Migration Service-példány létrehozása után hozzon létre egy migrálási projektet. Az Azure Database Migration Service-projektekhez kapcsolati adatokra van szükség a forrás- és célpéldányokhoz, valamint a projekt részeként migrálni kívánt adatbázisok listájához.
Adatbázis-Csatlakozás ion info objektum létrehozása a forrás- és célkapcsolatokhoz
Adatbázis-Csatlakozás ion Info objektumot a New-AzDmsConnInfo
parancsmaggal hozhat létre, amely a következő paramétereket várja:
- ServerType. A kért adatbázis-kapcsolat típusa, például SQL, Oracle vagy MySQL. SQL használata AZ SQL Serverhez és az Azure SQL-hez.
- DataSource. Sql Server-példány vagy Azure SQL Database-példány neve vagy IP-címe.
- AuthType. A kapcsolat hitelesítési típusa, amely lehet SqlAuthentication vagy WindowsAuthentication.
- TrustServerCertificate. Ez a paraméter beállít egy értéket, amely jelzi, hogy a csatorna titkosítva van-e, miközben megkerüli a tanúsítványláncot a megbízhatóság ellenőrzéséhez. Az érték lehet
$true
vagy$false
.
Az alábbi példa létrehoz egy Csatlakozás ion Info objektumot egy MySourceSQLServer nevű forrás SQL Serverhez sql-hitelesítéssel:
$sourceConnInfo = New-AzDmsConnInfo -ServerType SQL `
-DataSource MySourceSQLServer `
-AuthType SqlAuthentication `
-TrustServerCertificate:$true
A következő példa a "targetmanagedinstance" nevű Felügyelt Azure SQL-példány Csatlakozás ion-adatainak létrehozását mutatja be:
$targetResourceId = (Get-AzSqlInstance -Name "targetmanagedinstance").Id
$targetConnInfo = New-AzDmsConnInfo -ServerType SQLMI -MiResourceId $targetResourceId
Adatbázisok megadása a migrálási projekthez
Hozzon létre egy listát azokról az AzDataMigrationDatabaseInfo
objektumokról, amelyek az Azure Database Migration Service-projekt részeként adják meg az adatbázisokat, amelyek paraméterként adhatók meg a projekt létrehozásához. A parancsmaggal létrehozhatja a parancsmagot New-AzDataMigrationDatabaseInfo
AzDataMigrationDatabaseInfo
.
Az alábbi példa létrehozza a AzDataMigrationDatabaseInfo
projektet az AdventureWorks2016-adatbázishoz , és hozzáadja a projekt létrehozásához paraméterként megadott listához.
$dbInfo1 = New-AzDataMigrationDatabaseInfo -SourceDatabaseName AdventureWorks
$dbList = @($dbInfo1)
Projektobjektum létrehozása
Végül létrehozhat egy Azure Database Migration Service-projektet az USA New-AzDataMigrationProject
keleti régiójában található MyDMSProject néven, és hozzáadhatja a korábban létrehozott forrás- és célkapcsolatokat, valamint a migrálni kívánt adatbázisok listáját.
$project = New-AzDataMigrationProject -ResourceGroupName myResourceGroup `
-ServiceName $service.Name `
-ProjectName MyDMSProject `
-Location EastUS `
-SourceType SQL `
-TargetType SQLMI `
-SourceConnection $sourceConnInfo `
-TargetConnection $targetConnInfo `
-DatabaseInfo $dbList
Migrálási feladat létrehozása és indítása
Ezután hozzon létre és indítsa el az Azure Database Migration Service-feladatot. Ehhez a feladathoz a forrás és a cél kapcsolati hitelesítő adataira, valamint az áttelepítendő adatbázistáblák listájára és a projekt előfeltételként létrehozott információira is szükség van.
Hitelesítő adatok paramétereinek létrehozása a forráshoz és a célhoz
Hozzon létre kapcsolatbiztonsági hitelesítő adatokat PSCredential objektumként.
Az alábbi példa a PSCredential objektumok létrehozását mutatja be a forrás- és a célkapcsolatokhoz, és sztringváltozóként adja meg a jelszavakat $sourcePassword és $targetPassword.
$secpasswd = ConvertTo-SecureString -String $sourcePassword -AsPlainText -Force
$sourceCred = New-Object System.Management.Automation.PSCredential ($sourceUserName, $secpasswd)
$secpasswd = ConvertTo-SecureString -String $targetPassword -AsPlainText -Force
$targetCred = New-Object System.Management.Automation.PSCredential ($targetUserName, $secpasswd)
Backup FileShare-objektum létrehozása
Most hozzon létre egy FileShare-objektumot, amely a helyi SMB hálózati megosztást jelöli, ahová az Azure Database Migration Service a parancsmag használatával készíthet biztonsági másolatot a New-AzDmsFileShare
forrásadatbázisról.
$backupPassword = ConvertTo-SecureString -String $password -AsPlainText -Force
$backupCred = New-Object System.Management.Automation.PSCredential ($backupUserName, $backupPassword)
$backupFileSharePath="\\10.0.0.76\SharedBackup"
$backupFileShare = New-AzDmsFileShare -Path $backupFileSharePath -Credential $backupCred
Kijelölt adatbázis-objektum létrehozása
A következő lépés a forrás- és céladatbázisok kiválasztása a New-AzDmsSelectedDB
parancsmag használatával.
Az alábbi példa egyetlen adatbázis sql serverről felügyelt Azure SQL-példányra való migrálására szolgál:
$selectedDbs = @()
$selectedDbs += New-AzDmsSelectedDB -MigrateSqlServerSqlDbMi `
-Name AdventureWorks2016 `
-TargetDatabaseName AdventureWorks2016 `
-BackupFileShare $backupFileShare `
Ha egy teljes SQL Server-példányt át kell emelni egy Felügyelt Azure SQL-példányba, akkor az alábbiakban egy hurkot biztosítunk, amely az összes adatbázist kiveheti a forrásból. Az alábbi példában $Server, $SourceUserName és $SourcePassword adja meg a forrás SQL Server adatait.
$Query = "(select name as Database_Name from master.sys.databases where Database_id>4)";
$Databases= (Invoke-Sqlcmd -ServerInstance "$Server" -Username $SourceUserName
-Password $SourcePassword -database master -Query $Query)
$selectedDbs=@()
foreach($DataBase in $Databases.Database_Name)
{
$SourceDB=$DataBase
$TargetDB=$DataBase
$selectedDbs += New-AzureRmDmsSelectedDB -MigrateSqlServerSqlDbMi `
-Name $SourceDB `
-TargetDatabaseName $TargetDB `
-BackupFileShare $backupFileShare
}
SAS URI az Azure Storage-tárolóhoz
Hozzon létre egy olyan változót, amely tartalmazza az SAS URI-t, amely hozzáférést biztosít az Azure Database Migration Service-nek ahhoz a tárfióktárolóhoz, amelyre a szolgáltatás feltölti a biztonsági mentési fájlokat.
$blobSasUri="https://mystorage.blob.core.windows.net/test?st=2018-07-13T18%3A10%3A33Z&se=2019-07-14T18%3A10%3A00Z&sp=rwdl&sv=2018-03-28&sr=c&sig=qKlSA512EVtest3xYjvUg139tYSDrasbftY%3D"
Feljegyzés
Az Azure Database Migration Service nem támogatja a fiókszintű SAS-jogkivonat használatát. A tárfiók tárolójához SAS URI-t kell használnia. Itt találja az arra vonatkozó tudnivalókat, hogyan kérheti le a blobtároló SAS URI-ját.
További konfigurációs követelmények
Néhány további követelményt is meg kell felelnie:
Válassza ki a bejelentkezéseket. Hozzon létre egy listát a migrálandó bejelentkezésekről az alábbi példában látható módon:
$selectedLogins = @("user1", "user2")
Fontos
Az Azure Database Migration Service jelenleg csak az SQL-bejelentkezések migrálását támogatja.
Válassza ki az ügynökfeladatokat. Hozza létre a migrálandó ügynökfeladatok listáját az alábbi példában látható módon:
$selectedAgentJobs = @("agentJob1", "agentJob2")
Fontos
Az Azure Database Migration Service jelenleg csak a T-SQL alrendszer feladatlépéseivel rendelkező feladatokat támogatja.
Az áttelepítési feladat létrehozása és indítása
New-AzDataMigrationTask
A parancsmaggal migrálási feladatot hozhat létre és indíthat el.
Paraméterek megadása
A New-AzDataMigrationTask
parancsmag a következő paramétereket várja:
- TaskType. Az SQL Server és az Azure SQL Managed Instance migrálási típusának MigrateSqlServerSqlDbMi típusú migrálási feladata várható.
- Erőforráscsoport neve. Annak az Azure-erőforráscsoportnak a neve, amelyben létre kívánja hozni a feladatot.
- ServiceName. Azure Database Migration Service-példány, amelyben a feladatot létre szeretné hozni.
- ProjectName. Annak az Azure Database Migration Service-projektnek a neve, amelyben létre szeretné hozni a feladatot.
- TaskName. A létrehozandó feladat neve.
- Forrás Csatlakozás ion. A forrás SQL Server-kapcsolatot képviselő AzDmsConnInfo objektum.
- Cél Csatlakozás. Az AzDmsConnInfo objektum, amely a felügyelt Azure SQL-példány célkapcsolatát képviseli.
- SourceCred. PSCredential objektum a forráskiszolgálóhoz való csatlakozáshoz.
- TargetCred. PSCredential objektum a célkiszolgálóhoz való csatlakozáshoz.
- SelectedDatabase. AzDataMigrationSelectedDB objektum, amely a forrás- és céladatbázis-leképezést jelöli.
- BackupFileShare. Az Azure Database Migration Service által a forrásadatbázis biztonsági mentéséhez használt helyi hálózati megosztást jelképező FileShare-objektum.
- BackupBlobSasUri. Az Sas URI, amely hozzáférést biztosít az Azure Database Migration Service-nek ahhoz a tárfiók-tárolóhoz, amelyre a szolgáltatás feltölti a biztonsági mentési fájlokat. Itt találja az arra vonatkozó tudnivalókat, hogyan kérheti le a blobtároló SAS URI-ját.
- SelectedLogins. A migrálni kívánt bejelentkezések listája.
- SelectedAgentJobs. A migrálni kívánt ügynökfeladatok listája.
- SelectedLogins. A migrálni kívánt bejelentkezések listája.
- SelectedAgentJobs. A migrálni kívánt ügynökfeladatok listája.
Migrálási feladat létrehozása és indítása
Az alábbi példa létrehoz és elindít egy myDMSTask nevű offline migrálási feladatot:
$migTask = New-AzDataMigrationTask -TaskType MigrateSqlServerSqlDbMi `
-ResourceGroupName myResourceGroup `
-ServiceName $service.Name `
-ProjectName $project.Name `
-TaskName myDMSTask `
-SourceConnection $sourceConnInfo `
-SourceCred $sourceCred `
-TargetConnection $targetConnInfo `
-TargetCred $targetCred `
-SelectedDatabase $selectedDbs `
-BackupFileShare $backupFileShare `
-BackupBlobSasUri $blobSasUri `
-SelectedLogins $selectedLogins `
-SelectedAgentJobs $selectedJobs `
A migrálás monitorozása
A migrálás figyeléséhez hajtsa végre a következő feladatokat.
Összesítse az összes migrálási adatot egy $CheckTask nevű változóba.
Az áttelepítés részleteinek, például a tulajdonságoknak, az állapotnak és az adatbázis-adatoknak az áttelepítéshez való kombinálásához használja a következő kódrészletet:
$CheckTask = Get-AzDataMigrationTask -ResourceGroupName myResourceGroup ` -ServiceName $service.Name ` -ProjectName $project.Name ` -Name myDMSTask ` -ResultType DatabaseLevelOutput ` -Expand Write-Host ‘$CheckTask.ProjectTask.Properties.Output’
A változóval
$CheckTask
lekérheti az áttelepítési feladat aktuális állapotát.Ha a
$CheckTask
változóval szeretné lekérni az áttelepítési tevékenység aktuális állapotát, a feladat állapottulajdonságának lekérdezésével figyelheti a futtatott migrálási feladatot, ahogyan az az alábbi példában látható:if (($CheckTask.ProjectTask.Properties.State -eq "Running") -or ($CheckTask.ProjectTask.Properties.State -eq "Queued")) { Write-Host "migration task running" } else if($CheckTask.ProjectTask.Properties.State -eq "Succeeded") { Write-Host "Migration task is completed Successfully" } else if($CheckTask.ProjectTask.Properties.State -eq "Failed" -or $CheckTask.ProjectTask.Properties.State -eq "FailedInputValidation" -or $CheckTask.ProjectTask.Properties.State -eq "Faulted") { Write-Host "Migration Task Failed" }
Az Azure Database Migration Service példányának törlése
A migrálás befejezése után törölheti az Azure Database Migration Service-példányt:
Remove-AzDms -ResourceGroupName myResourceGroup -ServiceName MyDMS
Következő lépések
Az Azure Database Migration Service-ről további információt a Mi az Azure Database Migration Service? című cikkben talál.
További migrálási forgatókönyvekről (forrás-/célpárok) a Microsoft Database migrálási útmutatójában olvashat.