E-mail-értesítések az automatikus finomhangoláshoz
A következőre vonatkozik: Azure SQL DatabaseFelügyelt Azure SQL-példány
Az Azure SQL Database finomhangolási javaslatait az Azure SQL Database automatikus hangolása hozza létre. Ez a megoldás folyamatosan figyeli és elemzi az adatbázisok számítási feladatait, és testre szabott hangolási javaslatokat nyújt az egyes adatbázisokhoz az indexek létrehozásával, az indexek törlésével és a lekérdezés-végrehajtási tervek optimalizálásával kapcsolatban.
Az Azure SQL Database automatikus hangolási javaslatai megtekinthetők az Azure Portalon, REST API-hívásokkalvagy T-SQL- és PowerShell-parancsokkal kérhetők le. Ez a cikk egy PowerShell-szkript használatával kéri le az automatikus finomhangolási javaslatokat.
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 lásd az Azure PowerShell telepítését ismertető szakaszt. To learn how to migrate to the Az PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.
Fontos
A PowerShell Azure Resource Manager modult továbbra is támogatja az Azure SQL Database, de minden jövőbeli fejlesztés az Az.Sql modulhoz tartozik. Ezekhez a parancsmagokhoz lásd: AzureRM.Sql. Az Az modulban és az AzureRm-modulokban található parancsok argumentumai lényegében azonosak.
Automatikus finomhangolási javaslatok e-mail-értesítéseinek automatizálása
Az alábbi megoldás automatizálja az automatikus hangolási javaslatokat tartalmazó e-mail-értesítések küldését. A leírt megoldás egy PowerShell-szkript végrehajtásának automatizálását tartalmazza a hangolási javaslatok Azure Automation használatával történő lekéréséhez, valamint az e-mail-kézbesítési feladatok Microsoft Power Automate használatával történő ütemezésének automatizálását.
Azure Automation-fiók létrehozása
Az Azure Automation használatához először létre kell hoznia egy automation-fiókot, és konfigurálnia kell azt Azure-erőforrásokkal a PowerShell-szkript végrehajtásához. Az Azure Automationről és képességeiről az Azure Automation használatának első lépései című témakörben olvashat bővebben.
Kövesse az alábbi lépéseket egy Azure Automation-fiók létrehozásához az Automation-alkalmazások Azure Marketplace-ről való kiválasztásának és konfigurálásának módszerével:
Log into the Azure portal.
Kattintson a bal felső sarokban található "+ Erőforrás létrehozása" elemre.
Keressen rá az "Automation" kifejezésre (nyomja le az Enter billentyűt).
Kattintson az Automation alkalmazásra a keresési eredmények között.
Az "Automation-fiók létrehozása" panelen kattintson a "Létrehozás" gombra.
Töltse ki a szükséges információkat: adja meg az automation-fiók nevét, válassza ki az Azure-előfizetés azonosítóját és a PowerShell-szkript végrehajtásához használandó Azure-erőforrásokat.
Az "Azure Futtató fiók létrehozása" beállításnál válassza az Igen lehetőséget annak a fióktípusnak a konfigurálásához, amely alatt a PowerShell-szkript fut az Azure Automation segítségével. A fióktípusokról további információt a futtató fiók című témakörben talál.
Zárja be az automation-fiók létrehozását a Létrehozás gombra kattintva.
Tipp.
Rögzítse az Azure Automation-fiók nevét, előfizetés-azonosítóját és erőforrásait (például a jegyzettömbbe való másolást) pontosan úgy, ahogyan az Automation-alkalmazás létrehozásakor be van írva. Később szüksége lesz ezekre az információkra.
Ha több Olyan Azure-előfizetése van, amelyhez ugyanazt az automatizálást szeretné létrehozni, akkor ezt a folyamatot meg kell ismételnie a többi előfizetés esetében.
Azure Automation-modulok frissítése
Az automatikus hangolási javaslat lekéréséhez használt PowerShell-szkript a Get-AzResource és a Get-AzSqlDatabaseRecommendedAction parancsokat használja, amelyekhez az Azure-modul 4-es vagy újabb verziójára van szükség.
- Ha az Azure-modulok frissítésre szorulnak, tekintse meg az Az modultámogatást az Azure Automationben.
Azure Automation-runbook létrehozása
A következő lépés egy Runbook létrehozása az Azure Automationben, amelyben a hangolási javaslatok lekérésére szolgáló PowerShell-szkript található.
Kövesse az alábbi lépéseket egy új Azure Automation-runbook létrehozásához:
Az előző lépésben létrehozott Azure Automation-fiók elérése.
Az Automation-fiók panelen kattintson a bal oldali "Runbookok" menüelemre egy új Azure Automation-runbook PowerShell-szkripttel való létrehozásához. Az automatizálási runbookok létrehozásával kapcsolatos további információkért lásd : Új runbook létrehozása.
Új runbook hozzáadásához kattintson a "+Runbook hozzáadása" menüpontra, majd a "Gyors létrehozás – Új runbook létrehozása" elemre.
A Runbook panelen írja be a runbook nevét (ebben a példában az "AutomaticTuningEmailAutomation" kifejezést használja), válassza ki a runbook típusát PowerShell-ként, és írja le ennek a runbooknak a leírását a céljának leírásához.
Kattintson a Létrehozás gombra az új runbook létrehozásához.
Az alábbi lépéseket követve betölthet egy PowerShell-szkriptet a létrehozott runbookba:
- A "PowerShell-runbook szerkesztése" panelen válassza a "RUNBOOKS" elemet a menüfán, és bontsa ki a nézetet, amíg meg nem jelenik a runbook neve (ebben a példában az "AutomaticTuningEmailAutomation"). Válassza ki ezt a runbookot.
- A "PowerShell-runbook szerkesztése" első sorában (az 1-es számtól kezdve) másolja be a következő PowerShell-szkriptkódot. Ez a PowerShell-szkript az első lépésekhez érhető el. Módosítsa a szkriptet az igényeinek megfelelően.
A megadott PowerShell-szkript fejlécében le kell cserélnie <SUBSCRIPTION_ID_WITH_DATABASES>
az Azure-előfizetés azonosítóját. Az Azure-előfizetés azonosítóinak lekéréséről további információt az Azure-előfizetés GUID-azonosítóinak lekérése című témakörben talál.
Több előfizetés esetén vesszővel tagoltként is hozzáadhatja őket a szkript fejlécében található "$subscriptions" tulajdonsághoz.
# PowerShell script to retrieve Azure SQL Database automatic tuning recommendations.
#
# Provided "as-is" with no implied warranties or support.
# The script is released to the public domain.
#
# Replace <SUBSCRIPTION_ID_WITH_DATABASES> in the header with your Azure subscription ID.
#
# Microsoft Azure SQL Database team, 2018-01-22.
# Set subscriptions : IMPORTANT – REPLACE <SUBSCRIPTION_ID_WITH_DATABASES> WITH YOUR SUBSCRIPTION ID
$subscriptions = ("<SUBSCRIPTION_ID_WITH_DATABASES>", "<SECOND_SUBSCRIPTION_ID_WITH_DATABASES>", "<THIRD_SUBSCRIPTION_ID_WITH_DATABASES>")
# Get credentials
$Conn = Get-AutomationConnection -Name AzureRunAsConnection
Connect-AzAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint
# Define the resource types
$resourceTypes = ("Microsoft.Sql/servers/databases")
$advisors = ("CreateIndex", "DropIndex");
$results = @()
# Loop through all subscriptions
foreach($subscriptionId in $subscriptions) {
Select-AzSubscription -SubscriptionId $subscriptionId
$rgs = Get-AzResourceGroup
# Loop through all resource groups
foreach($rg in $rgs) {
$rgname = $rg.ResourceGroupName;
# Loop through all resource types
foreach($resourceType in $resourceTypes) {
$resources = Get-AzResource -ResourceGroupName $rgname -ResourceType $resourceType
# Loop through all databases
# Extract resource groups, servers and databases
foreach ($resource in $resources) {
$resourceId = $resource.ResourceId
if ($resourceId -match ".*RESOURCEGROUPS/(?<content>.*)/PROVIDERS.*") {
$ResourceGroupName = $matches['content']
} else {
continue
}
if ($resourceId -match ".*SERVERS/(?<content>.*)/DATABASES.*") {
$ServerName = $matches['content']
} else {
continue
}
if ($resourceId -match ".*/DATABASES/(?<content>.*)") {
$DatabaseName = $matches['content']
} else {
continue
}
# Skip if master
if ($DatabaseName -eq "master") {
continue
}
# Loop through all automatic tuning recommendation types
foreach ($advisor in $advisors) {
$recs = Get-AzSqlDatabaseRecommendedAction -ResourceGroupName $ResourceGroupName -ServerName $ServerName -DatabaseName $DatabaseName -AdvisorName $advisor
foreach ($r in $recs) {
if ($r.State.CurrentValue -eq "Active") {
$object = New-Object -TypeName PSObject
$object | Add-Member -Name 'SubscriptionId' -MemberType Noteproperty -Value $subscriptionId
$object | Add-Member -Name 'ResourceGroupName' -MemberType Noteproperty -Value $r.ResourceGroupName
$object | Add-Member -Name 'ServerName' -MemberType Noteproperty -Value $r.ServerName
$object | Add-Member -Name 'DatabaseName' -MemberType Noteproperty -Value $r.DatabaseName
$object | Add-Member -Name 'Script' -MemberType Noteproperty -Value $r.ImplementationDetails.Script
$results += $object
}
}
}
}
}
}
}
# Format and output results for the email
$table = $results | Format-List
Write-Output $table
A szkript mentéséhez kattintson a jobb felső sarokban található "Mentés" gombra. Ha elégedett a szkripttel, kattintson a "Közzététel" gombra a runbook közzétételéhez.
A fő runbook panelen a "Start" gombra kattintva tesztelheti a szkriptet. Kattintson a "Kimenet" gombra a végrehajtott szkript eredményeinek megtekintéséhez. Ez a kimenet lesz az e-mail tartalma. A szkript mintakimenete az alábbi képernyőképen tekinthető meg.
Győződjön meg arról, hogy a PowerShell-szkript igényeinek megfelelően testre szabja a tartalmat.
A fenti lépésekkel az automatikus hangolási javaslatok lekéréséhez szükséges PowerShell-szkript betöltődik az Azure Automationbe. A következő lépés az e-mail-kézbesítési feladat automatizálása és ütemezése.
Az e-mail-feladatok automatizálása a Microsoft Power Automate-lel
A megoldás befejezéséhez az utolsó lépésként hozzon létre egy automatizálási folyamatot a Microsoft Power Automate-ben, amely három műveletből (feladatból) áll:
- "Azure Automation – Feladat létrehozása" – a PowerShell-szkript végrehajtására szolgál az Azure Automation-runbook automatikus finomhangolási javaslatainak lekéréséhez.
- "Azure Automation – Feladatkimenet lekérése" – a kimenet lekérésére szolgál a végrehajtott PowerShell-szkriptből.
- "Office 365 Outlook – E-mail küldése" – e-mailek küldésére szolgál. A rendszer az e-maileket a folyamatot létrehozó személy munkahelyi vagy iskolai fiókjával küldi el.
A Microsoft Power Automate képességeiről a Microsoft Power Automate használatának első lépései című témakörben olvashat bővebben.
Ennek a lépésnek az előfeltétele, hogy regisztráljon egy Microsoft Power Automate-fiókra , és jelentkezzen be. Ha a megoldáson belül van, kövesse az alábbi lépéseket egy új folyamat beállításához:
- Hozzáférés a "Saját folyamatok" menüponthoz.
- A Saját folyamatok területen válassza a lap tetején található "+Létrehozás üresből" hivatkozást.
- Kattintson a lap alján található "Több száz összekötő és eseményindító keresése" hivatkozásra.
- A keresőmezőbe írja be az "ismétlődés" kifejezést, majd a keresési eredmények közül válassza az "Ütemezés – Ismétlődés" lehetőséget az e-mail-kézbesítési feladat futtatásának ütemezéséhez.
- A Gyakoriság mező Ismétlődés paneljén válassza ki a végrehajtáshoz szükséges ütemezési gyakoriságot, például automatikus e-mail küldése percenként, óránként, nappal, héten stb.
A következő lépés három feladat hozzáadása (létrehozás, kimenet lekérése és e-mail küldése) az újonnan létrehozott ismétlődő folyamathoz. A szükséges feladatok folyamathoz való hozzáadásához kövesse az alábbi lépéseket:
PowerShell-szkript végrehajtására irányuló művelet létrehozása hangolási javaslatok lekéréséhez
- Válassza a "+Új lépés", majd a "Művelet hozzáadása" lehetőséget az Ismétlődés folyamat panelen.
- A keresőmezőbe írja be az "automation" kifejezést, és válassza az "Azure Automation – Feladat létrehozása" lehetőséget a keresési eredmények közül.
- A Feladat létrehozása panelen konfigurálja a feladat tulajdonságait. Ehhez a konfigurációhoz szüksége lesz az Azure-előfizetés azonosítójára, az erőforráscsoportra és az Automation-fiókra korábban az Automation-fiók panelen rögzített adataira. Az ebben a szakaszban elérhető lehetőségekről az Azure Automation – Feladat létrehozása című témakörben olvashat bővebben.
- A művelet létrehozásához kattintson a "Folyamat mentése" gombra.
Művelet létrehozása a kimenet lekéréséhez a végrehajtott PowerShell-szkriptből
- Válassza a "+Új lépés", majd a "Művelet hozzáadása" lehetőséget az Ismétlődés folyamat panelen
- A keresőmezőbe írja be az "automation" kifejezést, és válassza az "Azure Automation – Feladat kimenetének lekérése" lehetőséget a keresési eredmények közül. Az ebben a szakaszban elérhető lehetőségekről az Azure Automation – Feladat kimenetének lekérése című témakörben olvashat bővebben.
- Töltse ki a szükséges mezőket (hasonlóan az előző feladat létrehozásához) – töltse ki az Azure-előfizetés azonosítóját, az erőforráscsoportot és az Automation-fiókot (az Automation-fiók panelen megadott módon).
- Kattintson a "Dinamikus tartalom" menü "Feladatazonosító" mezőjébe a megjelenítéshez. Ebben a menüben válassza a "Feladatazonosító" lehetőséget.
- A művelet létrehozásához kattintson a "Folyamat mentése" gombra.
Művelet létrehozása e-mailek küldésére az Office 365-integrációval
- Válassza a "+Új lépés", majd a "Művelet hozzáadása" lehetőséget az Ismétlődés folyamat panelen.
- A keresőmezőbe írja be az "e-mail küldése" kifejezést, és válassza az "Office 365 Outlook – E-mail küldése" lehetőséget a keresési eredmények közül.
- A "Címzett" mezőbe írja be azt az e-mail-címet, amelyre az értesítési e-mailt el kell küldenie.
- A "Tárgy" mezőbe írja be az e-mail tárgyát, például "Javaslatok automatikus finomhangolása e-mail értesítés".
- Kattintson a "Dinamikus tartalom" menü "Törzs" mezőjébe a megjelenítéshez. A menü "Feladat kimenetének lekérése" területén válassza a "Tartalom" lehetőséget.
- A művelet létrehozásához kattintson a "Folyamat mentése" gombra.
Tipp.
Ha automatikus e-maileket szeretne küldeni a különböző címzetteknek, hozzon létre külön folyamatokat. Ezekben a további folyamatokban módosítsa a címzett e-mail-címét a "Címzett" mezőben, és az e-mail tárgysorát a "Tárgy" mezőben. Új runbookok létrehozása az Azure Automationben testre szabott PowerShell-szkriptekkel (például az Azure-előfizetés azonosítójának módosításával) lehetővé teszi az automatikus forgatókönyvek további testreszabását, például a különálló címzettek e-mailezését a különálló előfizetésekre vonatkozó automatikus hangolási javaslatokról.
A fentiek az e-mail-kézbesítési feladat munkafolyamatának konfigurálásához szükséges lépéseket ismertetik. A három létrehozott műveletből álló teljes folyamat az alábbi képen látható.
A folyamat teszteléséhez kattintson a folyamatpanel jobb felső sarkában található "Futtatás most" elemre.
Az automatizált feladatok futtatásának statisztikái, amelyek az elküldött e-mail-értesítések sikerességét mutatják, a Flow analytics panelen tekinthetők meg.
A Flow Analytics panel a feladatok végrehajtásának sikerességét figyeli, és ha szükséges a hibaelhárításhoz. Hibaelhárítás esetén érdemes lehet megvizsgálni az Azure Automation alkalmazáson keresztül elérhető PowerShell-szkript végrehajtási naplóját is.
Az automatizált e-mail végső kimenete a megoldás létrehozása és futtatása után kapott alábbi e-mailhez hasonlóan néz ki:
A PowerShell-szkript módosításával igény szerint módosíthatja az automatizált e-mail kimenetét és formázását.
A megoldást úgy is testre szabhatja, hogy e-mail-értesítéseket készítsen egy adott hangolási esemény alapján, illetve több címzettnek több előfizetéshez vagy adatbázishoz, az egyéni forgatókönyveknek megfelelően.
További lépések
- További információ arról, hogy az automatikus hangolás hogyan segíthet az adatbázis teljesítményének javításában, lásd : Automatikus hangolás az Azure SQL Database-ben.
- Ha engedélyezni szeretné az automatikus hangolást az Azure SQL Database-ben a számítási feladat kezeléséhez, olvassa el az Automatikus hangolás engedélyezése című témakört.
- Az automatikus hangolási javaslatok manuális áttekintéséhez és alkalmazásához lásd: Teljesítményjavaslatok keresése és alkalmazása.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: