異なるサーバー上のデータベースを比較および同期して毎晩実行する SqlCompare を自動化するにはどうすればよいですか? これを処理するためのリンクまたは簡単な手順を教えていただけますか?
5 に答える
私はこの問題を自分で解決しました。私の場合、私には知られていないデータベースの周りに猿がいて、アプリを壊してしまう人がいます。残念ながら、データベースでの再生を停止させることができないため、C#で簡単なプログラムを作成しました。SQL Compareコマンドを実行し、応答文字列で「選択したオブジェクトは同一です」を探します。これが見つからない場合は、何かが起きていることを通知するメールが届きます。Windowsスケジューラを使用して、午前と午後のスケジュールを設定しました。
これは最も洗練されたソリューションではありませんが、機能します。
これは、スケジュールされたタスクとして .bat または .cmd ファイルから実行できます
タスク内で次のようにします。
cd "C:\Program Files\Red Gate\SQL Compare 7"
SQLCompare /db1:<dbname>
/db2:<dbname>
/synchronize
これにより、同期が実行されます。あるいは、CI システム経由でこれを行い、msbuild 経由で同じタイプのコマンドを呼び出すこともできます
それは仕事に適したツールではないかもしれません SQLCompare はスキーマのみに関係しているため、データに不幸な影響を与える可能性があります。列を変更すると、RedGate は次のいずれかになります。
- 仕事(サイズか何かを成長させるとき)、
- 列を削除する (データ型を変更する場合) または
- 失敗します(通常は何をすべきか)。
必要なのは、データとスキーマを保持する夜間レプリケーション スキームのようです。
これを実現するために CI サーバーを使用したい場合は、新しくリリースされた CI コマンド ラインを使用してこれを実行し、http://www.red-gate.com/ciで入手可能なスクリプト サンプル ファイルを構築できます。
TeamCity ユーザーには、カスタム プラグインがあります。
これらは無料でダウンロードできますが、試用期間を超えてこれを使用するには、適切な Red Gate ライセンスが必要になることに注意してください。
自動化ソフトウェアを試して、スケジューラーまたはトリガーのいずれかを使用して毎晩それを開始することができます。AutomationAnywhereはこれに適しています。詳細情報が必要な場合、または単にグーグルで検索する場合は、お知らせください。-トム