SQL Server 2008データベースが運用環境にあり、新しいサーバーに移行しています。現在のデータベースには、単一の〜400GB .MDF
ファイルがあります。新しいサーバーではSQL Server 2012が実行され、ミラーリングされたIntel 910 SSDが実行されます。これらのドライブは、4x 200GBパーティションを提供します。
これを機能させるには、.MDF
を使用して、単一のDBCC SHRINKFILE with EMPTYFILE
を4つの小さいものに分割する必要があります。テストでこれを実行しましたが、それでもまだ3.5時間程度かかります。既存のデータベースはOLTPであり、365/24/7でこのプロセス中にブロッキングが発生することがわかっているため、最初に本番環境でそれを行うことはできません。
私の質問です。データベースを一時的な場所にある新しいサーバーにバックアップおよび復元する方法はありますか。新しいファイルを作成し、temp .MDF
を新しい場所に空にしてから、トランザクションログを適用しますか?そうすれば、現在の古い本番環境が稼働している間にデータを移動し、短時間のシャットダウンを実行して、ログを適用し、新しいDBを起動できますか?
または、サーバーAから1つのファイルを取得し、サーバーBから4つのファイルをさまざまなドライブに最小限のダウンタイムで取得する他のオプションはありますか?
つまり、いいえ。あなたはそれをライブで行わなければなりません。
やりたいことは、3つの新しいファイルを追加することです。次に、インデックスの再構築操作を開始します。デフラグを行わずに再構築を行っている限り、SQLはすべてのデータファイルにデータを分散し始めます。
SQL Enterprise Editionで実行していて、オンラインでインデックスを再構築できると想定しています。
この質問はかなり古いですが、移行中に同様の状況があったため、コメントする必要がありました。
あなたができることは
もちろん、これをUATまたは別の非製品環境で最初に実行します:)テストが完了すると、レプリケーション設定を分解し、データは新しいサーバーに残ります。
このようにデータをBCPするのではなく、この方法で移行を行うことの利点は、
監視する必要がある唯一の警告は、CDC用にセットアップされたテーブル、またはソースのtrun/loadテーブルです。