2
ネットワーク上でダウンタイムの少ない巨大なSQL Serverデータベースを移行する最良の方法
問題定義 データベースサーバーを他のデータセンターに転送する必要があります。Microsoft SQL Server 2012 Enterprise(64ビット)で実行され、約2TBと1TBの2つのデータベースが含まれています。 ダウンタイムがほとんどないか、まったくないことが理想的です。 仕事量 これらのデータベースは.NET Webサイトに使用され、常に更新されています。 ただし、週末に利用できなくても問題ありません。現在使用中のDBは、新しいDBに切り替えるまで使用中の唯一のDBのままです。 この切り替えは、理想的には、DBが更新されていないことを確認しながら、新しいDBサーバーを指すようにDNSエントリを変更するだけで行われます。 また、1つのサーバーから別のサーバーへの切り替え(ダウンタイム)が低く抑えられている限り、この操作にかかる時間は実際には重要ではありません。 考慮されるアプローチ バックアップと復元 これは過去に行われたことがありますが、内部ネットワークを介して行われたにもかかわらず、インターネットよりも効率的にダウンタイムが長くなりました ログ配布 私の知る限り、このアプローチは、マスター/スレーブを構成し、マスターDBの正確なコピーを読み取り専用のスレーブに転送することにより、ダウンタイムを最小限に抑えます。上記のように、スレーブへのアクセスは不要であり、データ破損なしでマスターDBのレプリカを保持する方法が必要です。 また、リソース使用率の面でも非常に効率的であるようで、マスターのパフォーマンスにはほとんど影響しません。 私はこのアプローチについて間違っているかもしれませんので、私を修正してください。 データベースミラーリング 私はそのアプローチをあまり認識していませんが、有効なオプションのようです。リアルタイムで同期する必要はなく、マスターのパフォーマンスは非常に重要であるため、このアプローチを選択する場合は非同期が最適です。 別のオプション? このサーバーはベアメタルハードウェア上で直接実行されるため、残念ながら低レベルのソリューションはオプションではありません。たぶんこれを達成するためのより良い方法がありますか? 制約 説明したように、これらのデータベースは維持するのが難しいほど大きなものですが、それは別の問題です。 SQL Serverのバージョンは同じです(Microsoft SQL Server 2012 Enterprise 64ビット)。 2つのデータセンター間のネットワーク経由で転送する必要があるため、おそらくインターネット経由で転送する必要があります。最初の同期のために、あるサイトから別のサイトにディスクを送信することは、残念ながらオプションではありません。転送に何らかのセキュリティを持たせることが理想的ですが、この状況を最大限に活用します。 これにより、このタスクに対する私たちのニーズの非常に良い概要が得られるはずです。