AlwaysOn rendelkezésre állási csoport konfigurálása Azure-beli virtuális gépen a PowerShell használatával
Mielőtt hozzákezd, fontolja meg, hogy most már befejezheti ezt a feladatot az Azure Resource Manager-modellben. Az új üzemelő példányok esetében az Azure Resource Manager-modellt javasoljuk. Lásd SQL Server Always On rendelkezésre állási csoportok Azure-beli virtuális gépeken való használatával.
Fontos
Javasoljuk, hogy a legtöbb új üzemelő példány a Resource Manager használja. Az Azure két különböző üzembe helyezési modellel rendelkezik az erőforrások létrehozásához és Resource Manager létrehozásához. Ez a cikk a klasszikus üzembehelyezési modellt ismerteti.
Az Azure-beli virtuális gépek (VM-ek) segítségével az adatbázisgazdák csökkenthetik a magas rendelkezésre állású SQL Server költségeit. Ez az oktatóanyag bemutatja, hogyan valósíthat meg egy rendelkezésre állási csoportot az SQL Server Always On végpontok között azure-környezetben való használatával. Az oktatóanyag végén a SQL Server Always On megoldás az Azure-ban a következő elemekből áll:
- Több alhálózatot, köztük egy előtér- és egy háttér-alhálózatot tartalmazó virtuális hálózat.
- Tartományvezérlő egy Active Directory tartománnyal.
- Két SQL Server virtuális gép, amelyek a háttér-alhálózatra vannak telepítve, és csatlakoznak a Active Directory tartományhoz.
- Egy három csomópontból Windows csomóponttöbbség kvórummodellel.
- Rendelkezésre állási csoport egy rendelkezésre állási adatbázis két szinkron véglegesítési replikával.
Ez a forgatókönyv jó választás az Egyszerűség kedvéért az Azure-ban, nem pedig költséghatékonysága vagy egyéb tényezők miatt. Egy két replika rendelkezésre állási csoport virtuális gépei minimálisra csökkenthetők, így megtakarítható az Azure-beli számítási órák száma, ha a tartományvezérlőt használja tanúsító kvórumfájl-megosztásként egy kétcsomópontos feladatátvevő fürtben. Ez a módszer 1-rel csökkenti a virtuális gépek számát a fenti konfigurációból.
Ez az oktatóanyag bemutatja a fenti megoldás beállításához szükséges lépéseket anélkül, hogy részletezné az egyes lépéseket. Ezért a grafikus felhasználói felület konfigurációs lépései helyett PowerShell-szkriptek használatával gyorsan végigveszi az egyes lépéseket. Ez az oktatóanyag a következőket feltételezi:
- Már rendelkezik egy Azure-fiókkal a virtuális gép előfizetésével.
- Telepítette a Azure PowerShell parancsmagokat.
- Már jól érti a helyszíni megoldások Always On rendelkezésre állási csoportjait. További információ: Always On rendelkezésre állási csoportok (SQL Server).
Csatlakozás azure-előfizetéshez, és hozza létre a virtuális hálózatot
A helyi számítógépen egy PowerShell-ablakban importálja az Azure-modult, töltse le a közzétételi beállítások fájlját a gépre, és csatlakoztassa a PowerShell-munkamenetet az Azure-előfizetéséhez a letöltött közzétételi beállítások importálása segítségével.
Import-Module "C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\Azure\Azure.psd1" Get-AzurePublishSettingsFile Import-AzurePublishSettingsFile <publishsettingsfilepath>
A Get-AzurePublishSettingsFile parancs automatikusan létrehoz egy felügyeleti tanúsítványt az Azure-ral, és letölti a gépre. A böngésző automatikusan megnyílik, és a rendszer felkéri, hogy adja meg Microsoft-fiók Azure-előfizetéséhez szükséges hitelesítő adatokat. A letöltött .publishsettings fájl tartalmazza az Azure-előfizetés kezeléséhez szükséges összes információt. Miután mentette ezt a fájlt egy helyi könyvtárba, importálja az Import-AzurePublishSettingsFile paranccsal .
Megjegyzés
A .publishsettings fájl tartalmazza az Azure-előfizetések és -szolgáltatások felügyeletéhez használt hitelesítő adatokat (nem kódolva). A fájl biztonsági okokból ajánlott ideiglenesen a forráskönyvtárakon kívül (például a Libraries\Documents mappában) tárolni, majd az importálás befejezése után törölni. Egy rosszindulatú felhasználó, aki hozzáférést kap a .publishsettings fájlhoz, szerkesztheti, létrehozhatja és törölheti az Azure-szolgáltatásokat.
Definiálhat változókat, amelyek segítségével létrehozhatja a felhőalapú it-infrastruktúrát.
$location = "West US" $affinityGroupName = "ContosoAG" $affinityGroupDescription = "Contoso SQL HADR Affinity Group" $affinityGroupLabel = "IaaS BI Affinity Group" $networkConfigPath = "C:\scripts\Network.netcfg" $virtualNetworkName = "ContosoNET" $storageAccountName = "<uniquestorageaccountname>" $storageAccountLabel = "Contoso SQL HADR Storage Account" $storageAccountContainer = "https://" + $storageAccountName + ".blob.core.windows.net/vhds/" $winImageName = (Get-AzureVMImage | where {$_.Label -like "Windows Server 2008 R2 SP1*"} | sort PublishedDate -Descending)[0].ImageName $sqlImageName = (Get-AzureVMImage | where {$_.Label -like "SQL Server 2012 SP1 Enterprise*"} | sort PublishedDate -Descending)[0].ImageName $dcServerName = "ContosoDC" $dcServiceName = "<uniqueservicename>" $availabilitySetName = "SQLHADR" $vmAdminUser = "AzureAdmin" $vmAdminPassword = "Contoso!000" $workingDir = "c:\scripts\"
Ügyeljen a következőkre, hogy a parancsok később sikeresek legyenek:
- A $storageAccountName és$dcServiceName egyedinek kell lennie, mert a felhőbeli tárfiók és a felhőkiszolgáló azonosítására szolgálnak az interneten.
- A változókhoz megadott $affinityGroupName és $virtualNetworkName a később használni kívánt virtuális hálózati konfigurációs dokumentumban vannak konfigurálva.
- $sqlImageName a 2012 1. szervizcsomaggal SQL Server virtuálisgép-rendszerkép frissített nevét Enterprise kiadás.
- Az egyszerűség kedvéért a Contoso!000 ugyanaz a jelszó, mint a teljes oktatóanyagban.
Hozzon létre egy affinitáscsoportot.
New-AzureAffinityGroup ` -Name $affinityGroupName ` -Location $location ` -Description $affinityGroupDescription ` -Label $affinityGroupLabel
Hozzon létre egy virtuális hálózatot egy konfigurációs fájl importálása segítségével.
Set-AzureVNetConfig ` -ConfigurationPath $networkConfigPath
A konfigurációs fájl a következő XML-dokumentumot tartalmazza. Röviden, megad egy ContosoNET nevű virtuális hálózatot a ContosoAG nevű affinitáscsoportban. A címtere 10.10.0.0/16 , valamint két alhálózata van: 10.10.1.0/24 és 10.10.2.0/24, amelyek az előtér- és a háttér-alhálózatok. Az előtér-alhálózaton ügyfélalkalmazásokat, például Microsoft-alkalmazásokat SharePoint. A háttér-alhálózatba fogja a virtuális gépeket SQL Server helyezze. Ha korábban módosítja a $affinityGroupName és $virtualNetworkName , akkor az alábbi megfelelő neveket is módosítania kell.
<NetworkConfiguration xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns="https://schemas.microsoft.com/ServiceHosting/2011/07/NetworkConfiguration"> <VirtualNetworkConfiguration> <Dns /> <VirtualNetworkSites> <VirtualNetworkSite name="ContosoNET" AffinityGroup="ContosoAG"> <AddressSpace> <AddressPrefix>10.10.0.0/16</AddressPrefix> </AddressSpace> <Subnets> <Subnet name="Front"> <AddressPrefix>10.10.1.0/24</AddressPrefix> </Subnet> <Subnet name="Back"> <AddressPrefix>10.10.2.0/24</AddressPrefix> </Subnet> </Subnets> </VirtualNetworkSite> </VirtualNetworkSites> </VirtualNetworkConfiguration> </NetworkConfiguration> ```xml
Hozzon létre egy tárfiókot, amely a létrehozott affinitáscsoporthoz van társítva, és állítsa be aktuális tárfiókként az előfizetésében.
New-AzureStorageAccount ` -StorageAccountName $storageAccountName ` -Label $storageAccountLabel ` -AffinityGroup $affinityGroupName Set-AzureSubscription ` -SubscriptionName (Get-AzureSubscription).SubscriptionName ` -CurrentStorageAccount $storageAccountName
Hozza létre a tartományvezérlő kiszolgálót az új felhőszolgáltatásban és rendelkezésre állási csoportban.
New-AzureVMConfig ` -Name $dcServerName ` -InstanceSize Medium ` -ImageName $winImageName ` -MediaLocation "$storageAccountContainer$dcServerName.vhd" ` -DiskLabel "OS" | Add-AzureProvisioningConfig ` -Windows ` -DisableAutomaticUpdates ` -AdminUserName $vmAdminUser ` -Password $vmAdminPassword | New-AzureVM ` -ServiceName $dcServiceName ` –AffinityGroup $affinityGroupName ` -VNetName $virtualNetworkName
Ezek az átkért parancsok a következőket tehetünk:
- A New-AzureVMConfig létrehoz egy virtuálisgép-konfigurációt.
- Az Add-AzureProvisioningConfig egy önálló kiszolgáló konfigurációs paramétereit Windows biztosítja.
- Az Add-AzureDataDisk hozzáadja az adatlemezt, amely a Active Directory tárolására fog használni, és a gyorsítótárazás beállítása Nincs.
- A New-AzureVM létrehoz egy új felhőszolgáltatást, és létrehozza az új Azure-beli virtuális gépet az új felhőszolgáltatásban.
Várja meg, amíg az új virtuális gép teljesen ki lesz építve, és töltse le a távoli asztali fájlt a munkakönyvtárba. Mivel az új Azure-beli virtuális gép kiépítése hosszú időt vesz igénybe,
while
a hurok továbbra is lekérdezi az új virtuális gépet, amíg az készen nem áll a használatra.$VMStatus = Get-AzureVM -ServiceName $dcServiceName -Name $dcServerName While ($VMStatus.InstanceStatus -ne "ReadyRole") { write-host "Waiting for " $VMStatus.Name "... Current Status = " $VMStatus.InstanceStatus Start-Sleep -Seconds 15 $VMStatus = Get-AzureVM -ServiceName $dcServiceName -Name $dcServerName } Get-AzureRemoteDesktopFile ` -ServiceName $dcServiceName ` -Name $dcServerName ` -LocalPath "$workingDir$dcServerName.rdp"
A tartományvezérlő kiszolgálója sikeresen ki lett építve. Ezután konfigurálja a Active Directory ezen a tartományvezérlő kiszolgálón. Hagyja megnyitva a PowerShell-ablakot a helyi számítógépen. Később ismét használni fogja a két virtuális gép SQL Server létrehozásához.
A tartományvezérlő konfigurálása
Csatlakozás a távoli asztali fájl elindításával a tartományvezérlő kiszolgálóra. Használja a gép rendszergazdájának AzureAdmin felhasználónevét és a Contoso!000 jelszót, amelyet az új virtuális gép létrehozásakor adott meg.
Nyisson meg egy PowerShell-ablakot rendszergazdai módban.
Futtassa a DCPROMO.EXE parancsot a corp.contoso.com tartomány beállítására az M meghajtón található adat-könyvtárakkal.
dcpromo.exe ` /unattend ` /ReplicaOrNewDomain:Domain ` /NewDomain:Forest ` /NewDomainDNSName:corp.contoso.com ` /ForestLevel:4 ` /DomainNetbiosName:CORP ` /DomainLevel:4 ` /InstallDNS:Yes ` /ConfirmGc:Yes ` /CreateDNSDelegation:No ` /DatabasePath:"C:\Windows\NTDS" ` /LogPath:"C:\Windows\NTDS" ` /SYSVOLPath:"C:\Windows\SYSVOL" ` /SafeModeAdminPassword:"Contoso!000"
A parancs befejeződés után a virtuális gép automatikusan újraindul.
Csatlakozás a távoli asztali fájl elindításával indítsa el újra a tartományvezérlő kiszolgálót. Ezúttal jelentkezzen be CORP\Rendszergazda felhasználóként.
Nyisson meg egy PowerShell-ablakot rendszergazdai módban, és importálja Active Directory PowerShell-modult a következő paranccsal:
Import-Module ActiveDirectory
Az alábbi parancsok futtatásával adjon hozzá három felhasználót a tartományhoz.
$pwd = ConvertTo-SecureString "Contoso!000" -AsPlainText -Force New-ADUser ` -Name 'Install' ` -AccountPassword $pwd ` -PasswordNeverExpires $true ` -ChangePasswordAtLogon $false ` -Enabled $true New-ADUser ` -Name 'SQLSvc1' ` -AccountPassword $pwd ` -PasswordNeverExpires $true ` -ChangePasswordAtLogon $false ` -Enabled $true New-ADUser ` -Name 'SQLSvc2' ` -AccountPassword $pwd ` -PasswordNeverExpires $true ` -ChangePasswordAtLogon $false ` -Enabled $true
A CORP\Install a SQL Server szolgáltatáspéldányokhoz, a feladatátvevő fürthöz és a rendelkezésre állási csoporthoz kapcsolódó összes beállítás konfigurálható. A két virtuális gép SQL Server szolgáltatásfiókja a CORP\SQLSvc1 SQL Server és a CORP\SQLSvc2.
Ezután futtassa a következő parancsokat, hogy a CORP\Install engedélyt adjon a számítógép-objektumok létrehozására a tartományban.
Cd ad: $sid = new-object System.Security.Principal.SecurityIdentifier (Get-ADUser "Install").SID $guid = new-object Guid bf967a86-0de6-11d0-a285-00aa003049e2 $ace1 = new-object System.DirectoryServices.ActiveDirectoryAccessRule $sid,"CreateChild","Allow",$guid,"All" $corp = Get-ADObject -Identity "DC=corp,DC=contoso,DC=com" $acl = Get-Acl $corp $acl.AddAccessRule($ace1) Set-Acl -Path "DC=corp,DC=contoso,DC=com" -AclObject $acl
A fent megadott GUID a számítógép objektumtípusának GUID-ja. A CORP\Install fióknak szüksége van az Összes tulajdonság olvasása és a Számítógép-objektumok létrehozása engedélyre a feladatátvevő fürt aktív közvetlen objektumának létrehozásához. Az Összes tulajdonság olvasása engedély alapértelmezés szerint már meg van adva a CORP\Install számára, így nem kell explicit módon engedélyeznie. A feladatátvevő fürt létrehozásához szükséges engedélyekkel kapcsolatos további információkért lásd: Feladatátvevő fürt részletes útmutatója: Fiókok konfigurálása a Active Directory.
Most, hogy befejezte az Active Directory és a felhasználói objektumok konfigurálását, két virtuális SQL Server fog létrehozni, és ehhez a tartományhoz fogja őket illeszteni.
A virtuális SQL Server létrehozása
Használja tovább a helyi számítógépen megnyitott PowerShell-ablakot. Adja meg a következő további változókat:
$domainName= "corp" $FQDN = "corp.contoso.com" $subnetName = "Back" $sqlServiceName = "<uniqueservicename>" $quorumServerName = "ContosoQuorum" $sql1ServerName = "ContosoSQL1" $sql2ServerName = "ContosoSQL2" $availabilitySetName = "SQLHADR" $dataDiskSize = 100 $dnsSettings = New-AzureDns -Name "ContosoBackDNS" -IPAddress "10.10.0.4"
A 10.10.0.4 IP-cím általában az Azure-beli virtuális hálózat 10.10.0.0/16 alhálózatán létrehozott első virtuális géphez van rendelve. Az IPCONFIG futtatásával ellenőrizze, hogy ez-e a tartományvezérlő kiszolgálójának címe.
Futtassa a következő parancsokat a feladatátvevő fürt első virtuális gépének létrehozásához ContosoQuorum névvel:
New-AzureVMConfig ` -Name $quorumServerName ` -InstanceSize Medium ` -ImageName $winImageName ` -MediaLocation "$storageAccountContainer$quorumServerName.vhd" ` -AvailabilitySetName $availabilitySetName ` -DiskLabel "OS" | Add-AzureProvisioningConfig ` -WindowsDomain ` -AdminUserName $vmAdminUser ` -Password $vmAdminPassword ` -DisableAutomaticUpdates ` -Domain $domainName ` -JoinDomain $FQDN ` -DomainUserName $vmAdminUser ` -DomainPassword $vmAdminPassword | Set-AzureSubnet ` -SubnetNames $subnetName | New-AzureVM ` -ServiceName $sqlServiceName ` –AffinityGroup $affinityGroupName ` -VNetName $virtualNetworkName ` -DnsSettings $dnsSettings
Figyelje meg a következőt a fenti paranccsal kapcsolatban:
- A New-AzureVMConfig létrehoz egy virtuálisgép-konfigurációt a kívánt rendelkezésre állási készlet nevével. Az ezt követő virtuális gépek ugyanazokkal a rendelkezésre állásihalmaz-névvel lesznek létrehozva, hogy ugyanathoz a rendelkezésre állási készlethez csatlakoznak.
- Az Add-AzureProvisioningConfig a létrehozott Active Directory csatlakozik a virtuális géphez.
- A Set-AzureSubnet a háttérbeli alhálózatba elhelyezi a virtuális gépet.
- A New-AzureVM létrehoz egy új felhőszolgáltatást, és létrehozza az új Azure-beli virtuális gépet az új felhőszolgáltatásban. A DnsSettings paraméter megadja, hogy az új felhőszolgáltatás kiszolgálóinak DNS-kiszolgálója a 10.10.0.4 IP-címmel rendelkezik. Ez a tartományvezérlő kiszolgálójának IP-címe. Erre a paraméterre azért van szükség, hogy a felhőszolgáltatás új virtuális gépei sikeresen csatlakozzanak a Active Directory tartományhoz. E paraméter nélkül manuálisan kell beállítania az IPv4-beállításokat a virtuális gépen, hogy a tartományvezérlő kiszolgálót használja elsődleges DNS-kiszolgálóként a virtuális gép kiépítése után, majd csatlakozzon a virtuális géphez a Active Directory tartományhoz.
Futtassa a következő parancsokat a ContosoSQL1 és a ContosoSQL2 nevű SQL Server létrehozásához.
# Create ContosoSQL1... New-AzureVMConfig ` -Name $sql1ServerName ` -InstanceSize Large ` -ImageName $sqlImageName ` -MediaLocation "$storageAccountContainer$sql1ServerName.vhd" ` -AvailabilitySetName $availabilitySetName ` -HostCaching "ReadOnly" ` -DiskLabel "OS" | Add-AzureProvisioningConfig ` -WindowsDomain ` -AdminUserName $vmAdminUser ` -Password $vmAdminPassword ` -DisableAutomaticUpdates ` -Domain $domainName ` -JoinDomain $FQDN ` -DomainUserName $vmAdminUser ` -DomainPassword $vmAdminPassword | Set-AzureSubnet ` -SubnetNames $subnetName | Add-AzureEndpoint ` -Name "SQL" ` -Protocol "tcp" ` -PublicPort 1 ` -LocalPort 1433 | New-AzureVM ` -ServiceName $sqlServiceName # Create ContosoSQL2... New-AzureVMConfig ` -Name $sql2ServerName ` -InstanceSize Large ` -ImageName $sqlImageName ` -MediaLocation "$storageAccountContainer$sql2ServerName.vhd" ` -AvailabilitySetName $availabilitySetName ` -HostCaching "ReadOnly" ` -DiskLabel "OS" | Add-AzureProvisioningConfig ` -WindowsDomain ` -AdminUserName $vmAdminUser ` -Password $vmAdminPassword ` -DisableAutomaticUpdates ` -Domain $domainName ` -JoinDomain $FQDN ` -DomainUserName $vmAdminUser ` -DomainPassword $vmAdminPassword | Set-AzureSubnet ` -SubnetNames $subnetName | Add-AzureEndpoint ` -Name "SQL" ` -Protocol "tcp" ` -PublicPort 2 ` -LocalPort 1433 | New-AzureVM ` -ServiceName $sqlServiceName
A fenti parancsokkal kapcsolatban vegye figyelembe a következőket:
- A New-AzureVMConfig ugyanazt a rendelkezésre állási csoportnevet használja, mint a tartományvezérlő kiszolgálója, és a SQL Server 2012 Service Pack 1 Enterprise kiadás rendszerképet használja a virtuálisgép-katalógusban. Emellett az operációsrendszer-lemezt írási/olvasási gyorsítótárazásra állítja (írási gyorsítótárazás nélkül). Javasoljuk, hogy az adatbázisfájlokat a virtuális géphez csatolva egy külön adatlemezre miháljon, és konfigurálja olvasási vagy írási gyorsítótárazás nélkül. A következő legjobb megoldás azonban az írási gyorsítótárazás eltávolítása az operációsrendszer-lemezről, mert az operációsrendszer-lemezen nem távolítható el az olvasási gyorsítótárazás.
- Az Add-AzureProvisioningConfig a létrehozott Active Directory csatlakozik a virtuális géphez.
- A Set-AzureSubnet a háttérbeli alhálózatba elhelyezi a virtuális gépet.
- Az Add-AzureEndpoint hozzáférési végpontokat ad hozzá, így az ügyfélalkalmazások hozzáférhetnek ezekhez SQL Server szolgáltatáspéldányokhoz az interneten. A ContosoSQL1 és a ContosoSQL2 különböző portokat kap.
- A New-AzureVM létrehozza az SQL Server virtuális gépet ugyanabban a felhőszolgáltatásban, mint a ContosoQuorum. A virtuális gépeket ugyanabban a felhőszolgáltatásban kell eltennie, ha azt szeretné, hogy ugyanabban a rendelkezésre állási készletben legyen.
Várja meg, amíg az egyes virtuális gépek teljesen ki lesznek építve, és minden virtuális gép letölti a távoli asztali fájlját a munkakönyvtárba. A
for
hurok végigjárást végez a három új virtuális gépen, és mindegyikhez végrehajtja a parancsokat a felső szintű gólyos zárójelben.Foreach ($VM in $VMs = Get-AzureVM -ServiceName $sqlServiceName) { write-host "Waiting for " $VM.Name "..." # Loop until the VM status is "ReadyRole" While ($VM.InstanceStatus -ne "ReadyRole") { write-host " Current Status = " $VM.InstanceStatus Start-Sleep -Seconds 15 $VM = Get-AzureVM -ServiceName $VM.ServiceName -Name $VM.InstanceName } write-host " Current Status = " $VM.InstanceStatus # Download remote desktop file Get-AzureRemoteDesktopFile -ServiceName $VM.ServiceName -Name $VM.InstanceName -LocalPath "$workingDir$($VM.InstanceName).rdp" }
A SQL Server virtuális gépek ki vannak építve és futnak, de az alapértelmezett beállításokkal SQL Server vannak telepítve.
A feladatátvevő fürt virtuális gépének inicializálása
Ebben a szakaszban módosítania kell a feladatátvevő fürtben használt három kiszolgálót, valamint a SQL Server használni. Ezek konkrétan a következők:
Minden kiszolgáló: Telepítenie kell a Feladatátvételi fürtszolgáltatást .
Minden kiszolgáló: A CORP\Install adatokat kell hozzáadnia a számítógép rendszergazdájaként.
Csak a ContosoSQL1 és a ContosoSQL2 esetén: Az alapértelmezett adatbázisban rendszergazdai szerepkörként kell hozzáadnia a CORP\Install szerepkört.
Csak a ContosoSQL1 és a ContosoSQL2 esetében: Az NT AUTHORITY\System adatokat a következő engedélyekkel kell hozzáadnia bejelentkezésként:
- Bármely rendelkezésre állási csoport megváltoztatása
- Csatlakozás SQL
- Kiszolgáló állapotának megtekintése
Csak a ContosoSQL1 és a ContosoSQL2 esetében: A TCP protokoll már engedélyezve van az SQL Server virtuális gépen. A tűzfalat azonban továbbra is meg kell nyitnia a távoli SQL Server.
Most már készen áll a kezdésre. A ContosoQuorumtól kezdve kövesse az alábbi lépéseket:
Csatlakozás a ContosoQuorumhoz a távoli asztali fájlok elindításával. Használja a gép rendszergazdájának AzureAdmin felhasználónevét és a Contoso!000 jelszót, amelyet a virtuális gépek létrehozásakor adott meg.
Ellenőrizze, hogy a számítógépek sikeresen csatlakoztak-e a corp.contoso.com.
A folytatás előtt várja SQL Server, amíg a telepítés befejezi az automatizált inicializálási feladatok futtatását.
Nyisson meg egy PowerShell-ablakot rendszergazdai módban.
Telepítse a Windows Feladatátvételi fürtszolgáltatást.
Import-Module ServerManager Add-WindowsFeature Failover-Clustering
Adja hozzá a CORP\Install parancsot helyi rendszergazdaként.
net localgroup administrators "CORP\Install" /Add
Jelentkezzen ki a ContosoQuorumból. Ezzel a kiszolgálóval már végzett.
logoff.exe
Ezután inicializálja a ContosoSQL1 ésa ContosoSQL2 adatbázist. Kövesse az alábbi lépéseket, amelyek mindkét virtuális gép SQL Server azonosak.
Csatlakozás virtuális géphez SQL Server a távoli asztali fájlok elindításával. Használja a gép rendszergazdájának AzureAdmin felhasználónevét és a Contoso!000 jelszót, amelyet a virtuális gépek létrehozásakor adott meg.
Ellenőrizze, hogy a számítógépek sikeresen csatlakoztak-e a corp.contoso.com.
A folytatás előtt várja SQL Server, amíg a telepítés befejezi az automatizált inicializálási feladatok futtatását.
Nyisson meg egy PowerShell-ablakot rendszergazdai módban.
Telepítse a Windows Feladatátvételi fürtszolgáltatást.
Import-Module ServerManager Add-WindowsFeature Failover-Clustering
Adja hozzá a CORP\Install parancsot helyi rendszergazdaként.
net localgroup administrators "CORP\Install" /Add
Importálja a SQL Server PowerShell-szolgáltatót.
Set-ExecutionPolicy -Execution RemoteSigned -Force Import-Module -Name "sqlps" -DisableNameChecking
Adja hozzá a CORP\Install szerepkört rendszergazdai szerepkörként az alapértelmezett SQL Server példányhoz.
net localgroup administrators "CORP\Install" /Add Invoke-SqlCmd -Query "EXEC sp_addsrvrolemember 'CORP\Install', 'sysadmin'" -ServerInstance "."
Adja hozzá az NT AUTHORITY\System et bejelentkezésként a fent leírt három engedéllyel.
Invoke-SqlCmd -Query "CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS" -ServerInstance "." Invoke-SqlCmd -Query "GRANT ALTER ANY AVAILABILITY GROUP TO [NT AUTHORITY\SYSTEM] AS SA" -ServerInstance "." Invoke-SqlCmd -Query "GRANT CONNECT SQL TO [NT AUTHORITY\SYSTEM] AS SA" -ServerInstance "." Invoke-SqlCmd -Query "GRANT VIEW SERVER STATE TO [NT AUTHORITY\SYSTEM] AS SA" -ServerInstance "."
Nyissa meg a tűzfalat a SQL Server.
netsh advfirewall firewall add rule name='SQL Server (TCP-In)' program='C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn\sqlservr.exe' dir=in action=allow protocol=TCP
Jelentkezzen ki mindkét virtuális gépről.
logoff.exe
Végül készen áll a rendelkezésre állási csoport konfigurálásra. Az összes feladatot a SQL Server PowerShell-szolgáltatóval végezheti el a ContosoSQL1-ben.
A rendelkezésre állási csoport konfigurálása
Csatlakozás a ContosoSQL1-hez a távoli asztali fájlok elindításával. A számítógépfiókkal való bejelentkezés helyett jelentkezzen be a CORP\Install használatával.
Nyisson meg egy PowerShell-ablakot rendszergazdai módban.
Adja meg a következő változókat:
$server1 = "ContosoSQL1" $server2 = "ContosoSQL2" $serverQuorum = "ContosoQuorum" $acct1 = "CORP\SQLSvc1" $acct2 = "CORP\SQLSvc2" $password = "Contoso!000" $clusterName = "Cluster1" $timeout = New-Object System.TimeSpan -ArgumentList 0, 0, 30 $db = "MyDB1" $backupShare = "\\$server1\backup" $quorumShare = "\\$server1\quorum" $ag = "AG1"
Importálja a SQL Server PowerShell-szolgáltatót.
Set-ExecutionPolicy RemoteSigned -Force Import-Module "sqlps" -DisableNameChecking
Módosítsa a ContosoSQL1 SQL Server-szolgáltatásfiókját a következőre: CORP\SQLSvc1.
$wmi1 = new-object ("Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer") $server1 $wmi1.services | where {$_.Type -eq 'SqlServer'} | foreach{$_.SetServiceAccount($acct1,$password)} $svc1 = Get-Service -ComputerName $server1 -Name 'MSSQLSERVER' $svc1.Stop() $svc1.WaitForStatus([System.ServiceProcess.ServiceControllerStatus]::Stopped,$timeout) $svc1.Start(); $svc1.WaitForStatus([System.ServiceProcess.ServiceControllerStatus]::Running,$timeout)
Módosítsa a ContosoSQL2 SQL Server-szolgáltatásfiókját a következőre: CORP\SQLSvc2.
$wmi2 = new-object ("Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer") $server2 $wmi2.services | where {$_.Type -eq 'SqlServer'} | foreach{$_.SetServiceAccount($acct2,$password)} $svc2 = Get-Service -ComputerName $server2 -Name 'MSSQLSERVER' $svc2.Stop() $svc2.WaitForStatus([System.ServiceProcess.ServiceControllerStatus]::Stopped,$timeout) $svc2.Start(); $svc2.WaitForStatus([System.ServiceProcess.ServiceControllerStatus]::Running,$timeout)
Töltse CreateAzureFailoverCluster.ps1 azure-beli virtuális gépen található Always On rendelkezésre állási csoportok feladatátvevő fürt létrehozásacímtárból a helyi munkakönyvtárba. Ezt a szkriptet fogja használni egy működő feladatátvevő fürt létrehozásához. A feladatátvételi fürtszolgáltatás és az Azure-hálózat Windows kapcsolatos fontos információkért lásd: Magas rendelkezésre állás és vészhelyreállítás SQL Server Azure Virtual Machines.
Váltsa át a munkakönyvtárat, és hozza létre a feladatátvevő fürtöt a letöltött szkript használatával.
Set-ExecutionPolicy Unrestricted -Force .\CreateAzureFailoverCluster.ps1 -ClusterName "$clusterName" -ClusterNode "$server1","$server2","$serverQuorum"
Engedélyezze az Always On rendelkezésre állási csoportokat az alapértelmezett SQL Server a ContosoSQL1 ésa ContosoSQL2 szolgáltatásban.
Enable-SqlAlwaysOn ` -Path SQLSERVER:\SQL\$server1\Default ` -Force Enable-SqlAlwaysOn ` -Path SQLSERVER:\SQL\$server2\Default ` -NoServiceRestart $svc2.Stop() $svc2.WaitForStatus([System.ServiceProcess.ServiceControllerStatus]::Stopped,$timeout) $svc2.Start(); $svc2.WaitForStatus([System.ServiceProcess.ServiceControllerStatus]::Running,$timeout)
Hozzon létre egy biztonsági mentési könyvtárat, és adjon engedélyeket a SQL Server-szolgáltatásfiókok számára. Ezzel a címtárval fogja előkészíteni a rendelkezésre állási adatbázist a másodlagos replikán.
$backup = "C:\backup" New-Item $backup -ItemType directory net share backup=$backup "/grant:$acct1,FULL" "/grant:$acct2,FULL" icacls.exe "$backup" /grant:r ("$acct1" + ":(OI)(CI)F") ("$acct2" + ":(OI)(CI)F")
Hozzon létre egy MyDB1 nevű adatbázist a ContosoSQL1-ben, készítsen teljes biztonsági mentést és naplómentéseket, és állítsa vissza őket a ContosoSQL2-n a WITH NORECOVERY beállítással.
Invoke-SqlCmd -Query "CREATE database $db" Backup-SqlDatabase -Database $db -BackupFile "$backupShare\db.bak" -ServerInstance $server1 Backup-SqlDatabase -Database $db -BackupFile "$backupShare\db.log" -ServerInstance $server1 -BackupAction Log Restore-SqlDatabase -Database $db -BackupFile "$backupShare\db.bak" -ServerInstance $server2 -NoRecovery Restore-SqlDatabase -Database $db -BackupFile "$backupShare\db.log" -ServerInstance $server2 -RestoreAction Log -NoRecovery
Hozza létre a rendelkezésre állási csoport végpontját a SQL Server virtuális gépeken, és állítsa be a megfelelő engedélyeket a végpontokra.
$endpoint = New-SqlHadrEndpoint MyMirroringEndpoint ` -Port 5022 ` -Path "SQLSERVER:\SQL\$server1\Default" Set-SqlHadrEndpoint ` -InputObject $endpoint ` -State "Started" $endpoint = New-SqlHadrEndpoint MyMirroringEndpoint ` -Port 5022 ` -Path "SQLSERVER:\SQL\$server2\Default" Set-SqlHadrEndpoint ` -InputObject $endpoint ` -State "Started" Invoke-SqlCmd -Query "CREATE LOGIN [$acct2] FROM WINDOWS" -ServerInstance $server1 Invoke-SqlCmd -Query "GRANT CONNECT ON ENDPOINT::[MyMirroringEndpoint] TO [$acct2]" -ServerInstance $server1 Invoke-SqlCmd -Query "CREATE LOGIN [$acct1] FROM WINDOWS" -ServerInstance $server2 Invoke-SqlCmd -Query "GRANT CONNECT ON ENDPOINT::[MyMirroringEndpoint] TO [$acct1]" -ServerInstance $server2
Hozza létre a rendelkezésre állási replikákat.
$primaryReplica = New-SqlAvailabilityReplica ` -Name $server1 ` -EndpointURL "TCP://$server1.corp.contoso.com:5022" ` -AvailabilityMode "SynchronousCommit" ` -FailoverMode "Automatic" ` -Version 11 ` -AsTemplate $secondaryReplica = New-SqlAvailabilityReplica ` -Name $server2 ` -EndpointURL "TCP://$server2.corp.contoso.com:5022" ` -AvailabilityMode "SynchronousCommit" ` -FailoverMode "Automatic" ` -Version 11 ` -AsTemplate
Végül hozza létre a rendelkezésre állási csoportot, és csatlakozzon a másodlagos replikához a rendelkezésre állási csoporthoz.
New-SqlAvailabilityGroup ` -Name $ag ` -Path "SQLSERVER:\SQL\$server1\Default" ` -AvailabilityReplica @($primaryReplica,$secondaryReplica) ` -Database $db Join-SqlAvailabilityGroup ` -Path "SQLSERVER:\SQL\$server2\Default" ` -Name $ag Add-SqlAvailabilityDatabase ` -Path "SQLSERVER:\SQL\$server2\Default\AvailabilityGroups\$ag" ` -Database $db
Következő lépések
Sikeresen megvalósította az Always On SQL Server egy rendelkezésre állási csoport létrehozásával az Azure-ban. A rendelkezésre állási csoport figyelőinek konfigurálásról lásd: ILB-figyelő konfigurálása Always On rendelkezésre állási csoportokhoz az Azure-ban.
Az Azure-beli virtuális gépek SQL Server további információkért lásd: SQL Server Azure-beli virtuális gépeken.