Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:Azure SQL Database-
In dit Azure PowerShell-voorbeeldscript wordt een kopie gemaakt van een bestaande database in Azure SQL Database op een nieuwe logische server.
Als u geen Azure-abonnement hebt, maakt u een gratis Azure-account voordat u begint.
Notitie
In dit artikel wordt de Azure Az PowerShell-module gebruikt. Dit is de aanbevolen PowerShell-module voor interactie met Azure. Zie Azure PowerShell-installeren om aan de slag te gaan met de Az PowerShell-module. Zie Azure PowerShell migreren van AzureRM naar Azvoor meer informatie over het migreren naar de Az PowerShell-module.
Azure Cloud Shell gebruiken
Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell met Cloud Shell gebruiken om te werken met Azure-services. U kunt de vooraf geïnstalleerde Opdrachten van Cloud Shell gebruiken om de code in dit artikel uit te voeren, zonder dat u iets hoeft te installeren in uw lokale omgeving.
Azure Cloud Shell starten:
| Optie | Voorbeeld/koppeling |
|---|---|
| Selecteer Probeer het in de rechterbovenhoek van een codeblok. Als u Try It selecteert, wordt de code niet automatisch gekopieerd naar Cloud Shell. |
|
| Ga naar https://shell.azure.comof selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. |
|
| Selecteer de knop Cloud Shell in de menubalk rechtsboven in de Azure Portal. |
|
De code uitvoeren in dit artikel in Azure Cloud Shell:
Start Cloud Shell.
Selecteer de knop Kopiëren op een codeblok om de code te kopiëren.
Plak de code in de Cloud Shell-sessie door Ctrl+Shift+V- in Windows en Linux te selecteren of door Cmd+Shift+V- in macOS te selecteren.
Selecteer Voer in om de code uit te voeren.
Als u PowerShell lokaal wilt installeren en gebruiken, is voor deze zelfstudie Az PowerShell 1.4.0 of hoger vereist. Zie Azure PowerShell-module installerenals u een upgrade wilt uitvoeren. Als u PowerShell lokaal uitvoert, moet u ook Connect-AzAccount uitvoeren om een verbinding met Azure te maken.
Een database kopiëren naar een nieuwe logische server
# Connect-AzAccount
# The SubscriptionId in which to create these objects
$subscriptionId = "<Subscription-ID>"
# Set the resource group name and location for your source server
$sourceResourceGroupName = "mySourceResourceGroup-$(Get-Random)"
$sourceResourceGroupLocation = "westus2"
# Set the resource group name and location for your target server
$targetResourceGroupName = "myTargetResourceGroup-$(Get-Random)"
$targetResourceGroupLocation = "eastus"
# Set an admin login and password for your server
$adminSqlLogin = "<admin>"
$password = "<password>"
# The logical server names have to be unique in the system
$sourceServerName = "source-server-$(Get-Random)"
$targetServerName = "target-server-$(Get-Random)"
# The sample database name
$sourceDatabaseName = "mySampleDatabase"
$targetDatabaseName = "CopyOfMySampleDatabase"
# The IP address range that you want to allow to access your servers
$sourceStartIp = "0.0.0.0"
$sourceEndIp = "0.0.0.0"
$targetStartIp = "0.0.0.0"
$targetEndIp = "0.0.0.0"
# Set subscription
Set-AzContext -SubscriptionId $subscriptionId
# Create two new resource groups
$sourceResourceGroup = New-AzResourceGroup -Name $sourceResourceGroupName -Location $sourceResourceGroupLocation
$targetResourceGroup = New-AzResourceGroup -Name $targetResourceGroupName -Location $targetResourceGroupLocation
# Build the SQL administrator credential reused for both servers
$adminCredential = New-Object -TypeName System.Management.Automation.PSCredential `
-ArgumentList $adminSqlLogin, (ConvertTo-SecureString -String $password -AsPlainText -Force)
# Create a server with a system-wide unique server name
$sourceServerParams = @{
ResourceGroupName = $sourceResourceGroupName
ServerName = $sourceServerName
Location = $sourceResourceGroupLocation
SqlAdministratorCredentials = $adminCredential
}
$sourceResourceGroup = New-AzSqlServer @sourceServerParams
$targetServerParams = @{
ResourceGroupName = $targetResourceGroupName
ServerName = $targetServerName
Location = $targetResourceGroupLocation
SqlAdministratorCredentials = $adminCredential
}
$targetResourceGroup = New-AzSqlServer @targetServerParams
# Create a server firewall rule that allows access from the specified IP range
$sourceFirewallParams = @{
ResourceGroupName = $sourceResourceGroupName
ServerName = $sourceServerName
FirewallRuleName = "AllowedIPs"
StartIpAddress = $sourceStartIp
EndIpAddress = $sourceEndIp
}
$sourceServerFirewallRule = New-AzSqlServerFirewallRule @sourceFirewallParams
$targetFirewallParams = @{
ResourceGroupName = $targetResourceGroupName
ServerName = $targetServerName
FirewallRuleName = "AllowedIPs"
StartIpAddress = $targetStartIp
EndIpAddress = $targetEndIp
}
$targetServerFirewallRule = New-AzSqlServerFirewallRule @targetFirewallParams
# Create a blank database in the source-server with an S0 performance level
$sourceDatabaseParams = @{
ResourceGroupName = $sourceResourceGroupName
ServerName = $sourceServerName
DatabaseName = $sourceDatabaseName
RequestedServiceObjectiveName = "S0"
}
$sourceDatabase = New-AzSqlDatabase @sourceDatabaseParams
# Copy source database to the target server
$databaseCopyParams = @{
ResourceGroupName = $sourceResourceGroupName
ServerName = $sourceServerName
DatabaseName = $sourceDatabaseName
CopyResourceGroupName = $targetResourceGroupName
CopyServerName = $targetServerName
CopyDatabaseName = $targetDatabaseName
}
$databaseCopy = New-AzSqlDatabaseCopy @databaseCopyParams
# Clean up deployment
# Remove-AzResourceGroup -ResourceGroupName $sourceResourceGroupName
# Remove-AzResourceGroup -ResourceGroupName $targetResourceGroupName
Uitrol opschonen
Gebruik de volgende opdracht om de resourcegroep en alle bijbehorende resources te verwijderen.
Remove-AzResourceGroup -ResourceGroupName $sourceresourcegroupname
Remove-AzResourceGroup -ResourceGroupName $targetresourcegroupname
Uitleg van script
In dit script worden de volgende opdrachten gebruikt. Elke opdracht in de tabel bevat koppelingen naar opdrachtspecifieke documentatie.
| Bevelen | Notities |
|---|---|
| New-AzResourceGroup | Hiermee maakt u een resourcegroep waarin alle resources worden opgeslagen. |
| New-AzSqlServer | Hiermee maakt u een nieuwe logische server die als host fungeert voor databases en elastische pools. |
| New-AzSqlDatabase | Hiermee maak je een database of elastische pool. |
| New-AzSqlDatabaseCopy- | Hiermee maakt u een kopie van een database die gebruikmaakt van de momentopname op het huidige moment. |
| Remove-AzResourceGroup | Hiermee verwijdert u een resourcegroep, inclusief alle geneste resources. |