Проверьте, была ли база данных Azure SQL полностью удалена - PullRequest
1 голос
/ 04 февраля 2020

Я создаю простое приложение Azure logi c, которое использует функцию для:

  1. Удаление ведомой базы данных
  2. Восстановление копии базы данных master (с помощью то же имя, что и у удаленного ведомого)

Удалить базу данных

# Remove slave database
Remove-AzSqlDatabase `
    -DatabaseName $RestoreDatabaseName `
    -ServerName $ServerName `
    -ResourceGroupName $ResourceGroupName

Write-Host "Removed slave database"

Восстановить PIT Backup of Master

# Restore database
Restore-AzSqlDatabase `
      -FromPointInTimeBackup `
      -PointInTime (Get-Date).AddMinutes(-2) `
      -ResourceGroupName $ResourceGroupName `
      -ServerName $ServerName `
      -TargetDatabaseName $RestoreDatabaseName `
      -ResourceId $Database.ResourceID `
      -ElasticPoolName $ElasticPoolName

Проблема, с которой я столкнулся, заключается в том, что после удаления базы данных Azure по-прежнему видит базу данных на сервере, поэтому при восстановлении я получаю следующую ошибку:

Имя базы данных назначения ' Ведомый 'уже существует на сервере' адрес сервера '.

Я не могу найти какой-либо способ проверить, полностью ли он удален, перед запуском следующей функции. Любая помощь в достижении этого будет принята с благодарностью.

1 Ответ

2 голосов
/ 04 февраля 2020

Вы можете использовать Get-AzSqlDatabase , чтобы проверить, находится ли БД в игре.

Get-AzSqlDatabase -ResourceGroupName "ResourceGroup01" -ServerName "Server01" -DatabaseName "Database02"

Помещение этого в al oop во сне даст вам опрос, чтобы проверить, когда БД наконец-то ушла навсегда, и вы можете затем возобновить свою обработку.

Start-Sleep -s 15

Убедитесь, что в вашей логике есть автоматический выключатель c для предотвращения и бесконечный l oop в случае неудачного удаления.

Может быть проще восстановить вашу БД с новым именем, чтобы избежать задержки e.g. MyDb<yyyymmdd>

Или, в качестве альтернативы, используйте Azure REST API из SQL DB delete .

DELETE https://management.azure.com/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/Default-SQL-SouthEastAsia/providers/Microsoft.Sql/servers/testsvr/databases/testdb?api-version=2017-10-01-preview

и отслеживают реакцию местоположения 204 Принято , чтобы определить, когда база данных была полностью удалена. Azure Прочные функции дают вам отличный образец монитора, который вы можете использовать .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...