Azure Automation を使用してデータベースのコピーを自動化する PowerShell スクリプトを作成しました。数か月間は正常に機能していましたが、Get-AzureSqlDatabaseCopy コマンドに関連する奇妙な動作がいくつかありました。プロセスの次のステップに進む前に、Get-AzureSqlDatabaseCopy を使用して、データベースのコピーが完了したかどうかを確認していました。データベースのコピーが時間内に完了しない場合、エラーが発生します。
$SqlServer = 'servername.database.windows.net'
$DatabaseSource = 'Database1'
$DatabaseDestination = 'Database2'
Write-Output "Starting database copy - $DatabaseDestination"
Start-AzureSqlDatabaseCopy -ServerName $SqlServer -DatabaseName $DatabaseSource -PartnerServer $SqlServer -PartnerDatabase $DatabaseDestination
$i = 0
$secs = 0
do
{
$check = Get-AzureSqlDatabaseCopy -ServerName $SqlServer -DatabaseName $DatabaseDestination
$i = $check.PercentComplete
Write-Output "Database Copy ($DatabaseDestination) not complete in $secs seconds"
$secs += 10
Start-Sleep -s 10
}
while($i -ne $null -and $secs -lt 600)
このコードはこれまで正常に機能しており、データベースのコピーは通常 30 ~ 40 秒で完了します。に問題があるようです
$check = Get-AzureSqlDatabaseCopy -ServerName $SqlServer -DatabaseName $DatabaseDestination
$check は何かに設定されているようには見えないため、$i は null であり、ループは機能しません。これは先週から始まったことです。いくつかのジョブ レコードを確認したところ、木曜日まで問題なく動作していました。今日、いくつかのテスト データベース コピーを実行しましたが、$check が一貫して設定されていません。
この動作の変化の理由を知っている人はいますか? Azure Automation で PowerShell を使用してデータベース コピーを監視するより良い方法はありますか?