Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:Azure SQL Database
Ez az Azure PowerShell-példaszkript az Azure SQL Database-ben készletezett adatbázisok aktív georeplikálását konfigurálja, és az adatbázis másodlagos replikájára irányítja át.
Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.
Megjegyzés:
Ez a cikk az Azure Az PowerShell-modult használja, amely az Azure-ral való interakcióhoz ajánlott PowerShell-modul. Az Az PowerShell-modul használatának megkezdéséhez tekintse meg Az Azure PowerShell-telepítése című témakört. Az Az PowerShell-modulba való migrálásról további információt az Azure PowerShell migrálása az AzureRM-ből az Az-be című témakörben talál.
Az Azure Cloud Shell használata
Az Azure üzemelteti az Azure Cloud Shell-t, egy interaktív héjkörnyezetet, amelyet a böngésződön keresztül használhatsz. A Bash vagy a PowerShell segítségével is használhatja a Cloud Shellt az Azure-szolgáltatásokhoz. Felhasználhatja a Cloud Shell előre telepített parancsait a cikkben szereplő kód futtatására anélkül, hogy bármit telepítenie kellene a helyi környezetében.
Azure Cloud Shell elindítása:
| Lehetőség | Példa/hivatkozás |
|---|---|
| Kattintson a Kipróbálás elemre egy kódblokk jobb felső sarkában. A Kipróbálás kiválasztása nem másolja automatikusan a kódot a Cloud Shellbe. |
|
| Lépjen a https://shell.azure.com webhelyre, vagy válassza ki a Cloud Shell indítása gombot a Cloud Shell megnyitásához a böngészőjében. |
|
| Az Azure Portal jobb felső sarkában található menüben kattintson a Cloud Shell gombra. |
|
A jelen cikkben szereplő kód futtatása az Azure Cloud Shellben:
Indítsa el a Cloud Shell alkalmazást.
A kód másolásához kattintson a kódblokk Másolás gombjára.
Illessze be a kódot a Cloud Shell -munkamenetbe a Windows és Linux rendszeren a Ctrl+Shift+V billentyűkombinációval, illetve a Cmd+Shift+V választásával macOS rendszeren.
A kód futtatásához válassza az Enter lehetőséget.
Ha a PowerShell helyi telepítése és használata mellett dönt, ehhez az oktatóanyaghoz az Az PowerShell 1.4.0-s vagy újabb verziójára van szükség. Ha frissíteni szeretne, olvassa el az Azure PowerShell-modul telepítését ismertető cikket. Ha helyileg futtatja a PowerShellt, akkor emellett a Connect-AzAccount futtatásával kapcsolatot kell teremtenie az Azure-ral.
Példaszkriptek
# Connect-AzAccount
$subscriptionId = "<Subscription-ID>"
# Set the resource group name and location for your server
$primaryResourceGroupName = "myPrimaryResourceGroup-$(Get-Random)"
$secondaryResourceGroupName = "mySecondaryResourceGroup-$(Get-Random)"
$primaryLocation = "westus2"
$secondaryLocation = "eastus"
# The logical server names have to be unique in the system
$primaryServerName = "primary-server-$(Get-Random)"
$secondaryServerName = "secondary-server-$(Get-Random)"
# Set an admin login and password for your servers
$adminSqlLogin = "<admin>"
$password = "<password>"
# The sample database name
$databaseName = "mySampleDatabase"
# The IP address ranges that you want to allow to access your servers
$primaryStartIp = "0.0.0.0"
$primaryEndIp = "0.0.0.0"
$secondaryStartIp = "0.0.0.0"
$secondaryEndIp = "0.0.0.0"
# The elastic pool names
$primaryPoolName = "PrimaryPool"
$secondaryPoolName = "SecondaryPool"
# Set subscription
Set-AzContext -SubscriptionId $subscriptionId
# Create two new resource groups
$primaryResourceGroup = New-AzResourceGroup -Name $primaryResourceGroupName -Location $primaryLocation
$secondaryResourceGroup = New-AzResourceGroup -Name $secondaryResourceGroupName -Location $secondaryLocation
# Create two new logical servers with a system-wide unique server name
$adminCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $adminSqlLogin, $(ConvertTo-SecureString -String $password -AsPlainText -Force)
$primaryServerParams = @{
ResourceGroupName = $primaryResourceGroupName
ServerName = $primaryServerName
Location = $primaryLocation
SqlAdministratorCredentials = $adminCredential
}
$primaryServer = New-AzSqlServer @primaryServerParams
$secondaryServerParams = @{
ResourceGroupName = $secondaryResourceGroupName
ServerName = $secondaryServerName
Location = $secondaryLocation
SqlAdministratorCredentials = $adminCredential
}
$secondaryServer = New-AzSqlServer @secondaryServerParams
# Create a server firewall rule for each server that allows access from the specified IP range
$primaryFirewallParams = @{
ResourceGroupName = $primaryResourceGroupName
ServerName = $primaryServerName
FirewallRuleName = "AllowedIPs"
StartIpAddress = $primaryStartIp
EndIpAddress = $primaryEndIp
}
$primaryServerFirewallRule = New-AzSqlServerFirewallRule @primaryFirewallParams
$secondaryFirewallParams = @{
ResourceGroupName = $secondaryResourceGroupName
ServerName = $secondaryServerName
FirewallRuleName = "AllowedIPs"
StartIpAddress = $secondaryStartIp
EndIpAddress = $secondaryEndIp
}
$secondaryServerFirewallRule = New-AzSqlServerFirewallRule @secondaryFirewallParams
# Create a pool in each of the servers
$primaryPoolParams = @{
ResourceGroupName = $primaryResourceGroupName
ServerName = $primaryServerName
ElasticPoolName = $primaryPoolName
Edition = "Standard"
Dtu = 50
DatabaseDtuMin = 10
DatabaseDtuMax = 50
}
$primaryPool = New-AzSqlElasticPool @primaryPoolParams
$secondaryPoolParams = @{
ResourceGroupName = $secondaryResourceGroupName
ServerName = $secondaryServerName
ElasticPoolName = $secondaryPoolName
Edition = "Standard"
Dtu = 50
DatabaseDtuMin = 10
DatabaseDtuMax = 50
}
$secondaryPool = New-AzSqlElasticPool @secondaryPoolParams
# Create a blank database in the pool on the primary server
$databaseParams = @{
ResourceGroupName = $primaryResourceGroupName
ServerName = $primaryServerName
DatabaseName = $databaseName
ElasticPoolName = $primaryPoolName
}
$database = New-AzSqlDatabase @databaseParams
# Establish Active Geo-Replication
$primaryDatabaseParams = @{
ResourceGroupName = $primaryResourceGroupName
ServerName = $primaryServerName
DatabaseName = $databaseName
}
$database = Get-AzSqlDatabase @primaryDatabaseParams
$secondaryParams = @{
PartnerResourceGroupName = $secondaryResourceGroupName
PartnerServerName = $secondaryServerName
SecondaryElasticPoolName = $secondaryPoolName
AllowConnections = "All"
}
$database | New-AzSqlDatabaseSecondary @secondaryParams
# Initiate a planned failover
$secondaryDatabaseParams = @{
ResourceGroupName = $secondaryResourceGroupName
ServerName = $secondaryServerName
DatabaseName = $databaseName
}
$database = Get-AzSqlDatabase @secondaryDatabaseParams
$database | Set-AzSqlDatabaseSecondary -PartnerResourceGroupName $primaryResourceGroupName -Failover
# Monitor Geo-Replication config and health after failover
$database = Get-AzSqlDatabase @secondaryDatabaseParams
$replicationLinkParams = @{
PartnerResourceGroupName = $primaryResourceGroupName
PartnerServerName = $primaryServerName
}
$database | Get-AzSqlDatabaseReplicationLink @replicationLinkParams
# Clean up deployment
# Remove-AzResourceGroup -ResourceGroupName $primaryResourceGroupName
# Remove-AzResourceGroup -ResourceGroupName $secondaryResourceGroupName
A telepítés végső simítása
Az alábbi paranccsal távolítsa el az erőforráscsoportot és a hozzá társított összes erőforrást.
Remove-AzResourceGroup -ResourceGroupName $primaryresourcegroupname
Remove-AzResourceGroup -ResourceGroupName $secondaryresourcegroupname
Szkript ismertetése
Ez a szkript a következő parancsokat használja. A táblázatban lévő összes parancs a hozzá tartozó dokumentációra hivatkozik.
| Parancs | Jegyzetek |
|---|---|
| New-AzResourceGroup | Létrehoz egy erőforráscsoportot, amely az összes erőforrást tárolja. |
| New-AzSqlServer | Adatbázisokat és rugalmas készleteket üzemeltető kiszolgálót hoz létre. |
| New-AzSqlElasticPool | Rugalmas készletet létrehoz. |
| New-AzSqlDatabase | Egy adatbázist hoz létre a szerveren. |
| Set-AzSqlDatabase | Az adatbázis tulajdonságait frissíti, vagy a rugalmas készletekbe, onnan ki, illetve azok között helyezi át az adatbázist. |
| New-AzSqlDatabaseSecondary | Létrehoz egy másodlagos adatbázist egy meglévő adatbázishoz, és elindítja az adatreplikálást. |
| Get-AzSqlDatabase | Lekér egy vagy több adatbázist. |
| Set-AzSqlDatabaseSecondary | Egy másodlagos adatbázist elsődlegessé tesz, hogy feladatátvételt kezdeményezzen. |
| Get-AzSqlDatabaseReplicationLink | Lekéri az Azure SQL Database és egy erőforráscsoport vagy logikai SQL-kiszolgáló közötti georeplikációs kapcsolatokat. |
| Remove-AzResourceGroup | Törli az összes beágyazott erőforrást tartalmazó erőforráscsoportot. |