実稼働環境から開発環境インスタンスに500 GBのSQL Serverデータベースをコピーする


12

PRODUCTIONサーバーからDEVサーバーに500 GBのデータベースをコピーする必要があります。5時間しかありません。

これを達成する最も簡単な方法は何でしょうか?


7
1.「5時間の窓」とはどういう意味ですか?生産は5時間ダウンしますか?2.本番データベースの絶対最新バージョンが必要ですか、それとも最新のバックアップで十分ですか?3.本番データベースはどのリカバリモードにありますか?
ニックチャマス

回答:


15

実稼働環境にダウンタイムを引き起こさない2つのオプションがあります。

1)データベース構造自体のみを取得する場合(データは必要ありません)、本番データベースを単純にスクリプト化できます。次に、開発サーバーでそれを実行してデータベースを作成します。

2)データベースとデータが必要な場合は、単にそのデータベースの最新のバックアップを取得して、それを開発サーバーに復元します。これは、開発サーバーを運用データに一致させるために使用される最も一般的な方法であることがわかります。


9

あなたが持っている場合

  • バックアップ圧縮オン?
  • 高速なサーバー間ネットワーク(エントリポイントは1 GB)

...それをコピーして復元します。これは、powershell、perl、cmd.exeなどでスクリプト化できます。

あなたが「ウィンドウ」と言うとき、私はあなたが生産で5時間のウィンドウを意味すると仮定します。開発をロードすることはそれほど重要ではありません。


5

ローカルに接続されたハードディスクにコピーします。

なぜウィンドウが限られているのですか?コピーしない-バックアップをdevにロードします。


同意した。バックアップを復元するだけで十分な場合は、切り離す必要はありません(ダウンタイムが必要です)。
p.campbell

2
次にバックアップのコピーを行います。どこにでもコピーするために本番データベースを停止する必要はありません。特定の時点が必要な場合は、copy_onlyバックアップ(SQL 2005+)を作成するか、一部のtranログバックアップもコピーします。
ベンThul

2

私の答えはあなたのユースケースに合わないかもしれませんが、あなたの開発サーバーで、ログシッピングなどの技術を使用してスタンバイデータベースをセットアップすることを考えましたか?事前に、このコピーを製品と同期させてください...

この助けを願っています


0

バックアップシーケンスファイルを作成します。バックアップサイズ全体が500 GBであるとします。必要に応じて分割し、それぞれサイズが50 GBの10個のバックアップファイルで構成される10個のシーケンスバックアップを作成してから、バックアップファイルを1つずつ復元または移動してみてください。ネットワークトラフィックを削減し、時間を復元します。


3
Subirこんにちは、DBA.SEへようこそ。わかりやすくするため、またガイドラインの下部にある署名を削除するために、回答を編集しました。ご回答ありがとうございます。
ニックチャマス

ファイルを10個の個別のファイルに分割すると、それらのファイルをネットワーク経由で転送するのに必要な時間がどのように変わるかわかりません。
マックスヴァーノン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.