-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlistMySQLFlexibleServerWithoutConnections.ps1
More file actions
31 lines (23 loc) · 1.3 KB
/
listMySQLFlexibleServerWithoutConnections.ps1
File metadata and controls
31 lines (23 loc) · 1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#TODO: Probably need to add a check for the server status to ensure it is running before checking for connections
# Login to Azure
Connect-AzAccount
# Get all Azure Database for MySQL Flexible Server instances
$mysqlFlexibleServers = Get-AzMySqlFlexibleServer
# Initialize an array to store unused MySQL Flexible Server instances
$unusedMySqlFlexibleInstances = @()
# Check each MySQL Flexible Server instance for active connections and recent queries
foreach ($server in $mysqlFlexibleServers) {
$resourceGroupName = $server.ResourceGroupName
$serverName = $server.Name
# Get the query performance insights
$queryPerformance = Get-AzMySqlFlexibleServerQueryPerformanceInsight -ResourceGroupName $resourceGroupName -ServerName $serverName -StartTime (Get-Date).AddDays(-30) -EndTime (Get-Date)
# Check for active connections
$activeConnections = Get-AzMySqlFlexibleServerConnection -ResourceGroupName $resourceGroupName -ServerName $serverName
if ($queryPerformance.Count -eq 0 -and $activeConnections.Count -eq 0) {
$unusedMySqlFlexibleInstances += $server
}
}
# Display the unused MySQL Flexible Server instances
$unusedMySqlFlexibleInstances | ForEach-Object {
Write-Output "Azure Database for MySQL Flexible Server: $($_.Name) - Resource Group: $($_.ResourceGroupName)"
}