データベース スクリプトの展開をより適切に検証するために、Octopus 展開の最初のステップとして、運用データベースのミラー イメージを使用してステージング データベースを事前に初期化したいと考えています。SQL Azure と DACFX を使用しています。他の誰かがこれを試したかどうか、私は興味があります...
Start-AzureSqlDatabaseCopy
この操作に使用する適切な PS コマンドレットはありますか?- これは本番環境のパフォーマンスに影響しますか?
- 他に考慮すべきオプションはありますか?
アップデート
以下のスクリプトを開発しましたが、うまくいくようです。ただし、データベースのコピーが完了するまで、スクリプトの完了をブロックするのに問題があります。ある時点Get-AzureSqlDatabaseCopy
でエラーがスローされます (おそらく、Azure は負荷を処理できませんか?)。
Import-Module 'C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\ServiceManagement\Azure\Azure.psd1'
$serverName = "..."
$sourceDbName = "..."
$targetDbName = "..."
$testdb = Get-AzureSqlDatabase -ServerName $serverName -DatabaseName $targetDbName -ErrorAction SilentlyContinue
IF (!$testdb)
{
Write-Host "TestDB Not Found"
}
ELSE
{
Remove-AzureSqlDatabase -ServerName $serverName -Database $testdb -Force
}
$dbCopy = Start-AzureSqlDatabaseCopy -ServerName $serverName -DatabaseName $sourceDbName -PartnerDatabase $targetDbName
WHILE ($dbCopy)
{
Write-Progress -Activity "Copying Database" -PercentComplete [int]$dbCopy.PercentComplete
$dbCopy = Get-AzureSqlDatabaseCopy -ServerName $serverName -DatabaseCopy $dbCopy
# Sleep 10 seconds
[System.Threading.Thread]::Sleep(10000);
}
Write-Host "Complete"
これが正しい方法であるかどうかはまだ確信が持てず、Azure に多くの負荷がかかっているようです (何らかの理由で実行中にポータルにログインできませんでした)。任意の考えをいただければ幸いです...