VSTSで私の複製プロセスを構成しようとしていますbuldをステージングに展開する前に、ステージング環境にライブデータベースをインストールします。ここでは、以下のガイドライン...VSTSでSQL Azure DBを複製する方法 - サーバー 'sql01'のサーバー 'sql01'のデータベース 'A'とサーバー 'sql01'の 'B'は既に複製関係にあります
、ここで...
私は、コマンドを実行すると、私は次のエラーを取得するのに、それは主に取り組んで持っている...
CREATE DATABASE [Staging] AS COPY OF [Operational]
データベース '運用' サーバーに 'SQL01' と「Staginサーバー 'sql01'のg 'はすでにレプリケーション関係にあります。
これは、私は関係なく、継続してビルドサーバーを構成することができますが、私はまだ上がってくる厄介な黄色の警告を取得...
DROP DATABASE IF EXISTS [Staging]
が付け加えています。私は回避策としてこれを何らかの方法で抑止するか、最初にエラーが発生するのを止めるために必要なことをするかのどちらかを探しています。最終結果は必要に応じて、SQLデータベースは正常にコピーされます。
私は、その後にリリースプロセスを強制的にこれを行う上で、単に工程の後に元のデータベース(存在する場合!)
を落とすよりも、事前に他の私が行う必要があるいくつかのその他のクリーンアップがありますように感じる「待ちます'データベースが準備完了するまで...
DECLARE @COPY_DATA int
SET @COPY_DATA = SELECT COUNT(*) FROM sys.dm_database_copies
WHILE (@COPY_DATA > 0)
BEGIN
WAITFOR DELAY '00:00:10'
SET @COPY_DATA = SELECT COUNT(*) FROM sys.dm_database_copies
END
...時間がかかることがあります。これで、エラーはまったくなくなります。
時間がたつにつれ、私は各段階で一貫して完了を保証することができず、誤った失敗につながりました。 DROPが終了しないことがあります。それがマスターに存在することを確認すれば、それはなくなってしまいますが、まだそこにあるので、Createは転倒します。
これ以降の説明では、次のように私が解決した解決策が最も信頼できるものでした。
NOTES - PowerShellはSqlCommandオブジェクト よりも信頼性が高い - 紺碧のAPIと基盤となるデータベースは時々に私の生産のクローンを作成するために、2つの
間の競合状態につながるしばらくOSの同期を出しますステージング私は次のようでした...
ステップ1:AzureのPowerShellのタスク(クリアステージング)
Remove-AzureRmSqlDatabase -ResourceGroupName "Production" -ServerName "sql01" -DatabaseName "Staging" -ErrorAction SilentlyContinue
Sステップ2:Azure SQLタスク(データベースを削除) - 確かに!
DROP DATABASE IF EXISTS [Staging]
ステップ3:AzureのPowerShellのタスク(ライブからステージング再作成)
New-AzureRmSqlDatabaseCopy -ResourceGroupName "Production" -ServerName "sql01" -DatabaseName "Operational" -CopyResourceGroupName "Production" -CopyServerName "sql01" -CopyDatabaseName "Staging"
ステップ4:AzureのSQLタスク(待つ同期) - 念のため!
DECLARE @COPY_DATA int
SET @COPY_DATA = SELECT COUNT(*) FROM sys.dm_database_copies
WHILE (@COPY_DATA > 0)
BEGIN
WAITFOR DELAY '00:00:10'
SET @COPY_DATA = SELECT COUNT(*) FROM sys.dm_database_copies
END
ステップ5:AzureのPowerShellのタスク(生成BACPAC) (それは全体他のトピックだと私はここにいるにつもりはありません)。
リリースがプロダクションに移行すると、もう一度クリア・プロセスが呼び出され、ステージングは一時的なものに過ぎません。
どうやってNew-Azure Rm Sql Database PowerShellコマンドをコピーしますか? https://docs.microsoft.com/en-us/azure/sql-database/scripts/sql-database-copy-database-to-new-server-powershell –
AzureRmでデータベースを削除するためのコマンドレットはありますか?私は古典的なバージョンを試して、DROPコマンドより信頼性がなく、はるかに書くのが難しいことを発見しました! –
私はこのための作業チェーンを得ることができる場合は、私はそれをすべて投稿します。 –