forked from marcosfreccia/powershell-scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathremoving-databases-from-availability-groups
More file actions
28 lines (15 loc) · 1.09 KB
/
removing-databases-from-availability-groups
File metadata and controls
28 lines (15 loc) · 1.09 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
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SmoExtended") | Out-Null
$SQLInstance = "MyListener001"
$AgName = Get-DbaAvailabilityGroup -SqlInstance $SQLInstance | Select-Object -ExpandProperty AvailabilityGroup
$PrimaryReplica = Get-DbaAgReplica -SqlInstance $SQLInstance | Where-Object {$_.Role -eq "Primary" } | Select-Object -ExpandProperty Name
$SecondaryReplica = Get-DbaAgReplica -SqlInstance $SQLInstance | Where-Object {$_.Role -eq "Secondary" } | Select-Object -ExpandProperty Name
$Databases = ("Database01","Database02")
foreach ($database in $Databases) {
$IsOnAg = Get-DbaAgDatabase -SqlInstance $SQLInstance -Database $database | Select-Object -ExpandProperty Name
if ($IsOnAg) {
$AGPath = "SQLSERVER:\SQL\$PrimaryReplica\DEFAULT\AvailabilityGroups\$AgName\AvailabilityDatabases\$database"
Remove-SQLAvailabilityDatabase -Path $AGPath
Remove-DbaDatabase -SqlInstance $PrimaryReplica,$SecondaryReplica -Database $database -Confirm:$false
}
}