Skip to content

Instantly share code, notes, and snippets.

@taddison
Created January 4, 2018 14:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save taddison/6db423a92b21994c17d019fc5a89baae to your computer and use it in GitHub Desktop.
Save taddison/6db423a92b21994c17d019fc5a89baae to your computer and use it in GitHub Desktop.
Import-Module C:\src\tsqlScheduler\src\Modules\tsqlScheduler -Verbose -Force
$pathToTaskToDelete = "C:\src\DBTasks\AGName\AGName-DBName-JobToDelete.json"
$ag = "AGName"
$db = "SchedulerDBName"
$domain = "foo.corp"
$serverInstance = "$ag.$domain"
$task = (Get-Content -Raw $pathToTaskToDelete | ConvertFrom-Json)
if(-not $task.IsDeleted)
{
Write-Host Marking task as deleted
$task.IsDeleted = $true
$task | ConvertTo-Json | Set-Content $pathToTaskToDelete
}
$identifier = $task.Identifier
$replicaQuery = @"
select ar.replica_server_name
from sys.dm_hadr_availability_replica_states as ars
join sys.availability_groups as ag
on ag.group_id = ars.group_id
join sys.availability_replicas as ar
on ar.replica_id = ars.replica_id
where ag.name = '$ag'
and ars.role_desc <> 'Primary'
"@
$replicas = Invoke-Sqlcmd -Query $replicaQuery -ServerInstance $serverInstance
# Update primary
Publish-TaskFromConfig -server $serverInstance -database $db -config $pathToTaskToDelete -action "INSERT" -Verbose
# Force upsert
$upsertQuery = "exec $db.scheduler.RemoveJobFromTask @identifier = N'$identifier'"
Invoke-Sqlcmd -Query $upsertQuery -ServerInstance $serverInstance
foreach($replica in $replicas)
{
$replicaInstance = $replica.replica_server_name
Write-Host Deleting from $replicaInstance
Invoke-Sqlcmd -Query $upsertQuery -ServerInstance $serverInstance
}
# Delete the data
$deleteQuery = "delete from $db.scheduler.Task where Identifier = '$identifier'"
Invoke-Sqlcmd -Query $deleteQuery -ServerInstance $serverInstance
Remove-Item $pathToTaskToDelete
git add .
git commit -m "Deleted task $identifier"
git push
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment