データベースコピーウィザードの使用中にタイムアウトでエラーが発生しました


8

マイクロソフトは、SQL Server 2012データベースコピーウィザードがSQL Server 2000データベースをSQL Server 2012にコピーする最も最適な方法であると私に信じさせました。数時間苦労した後、いくつかの問題を乗り越えることができ、中規模のSQL Server 2000データベースからSQL Server 2012へ。

ただし、30GBデータベースの場合、ウィザードは次のエラーで常に失敗します。

メッセージ:データの転送中にエラーが発生しました。詳細については、内部の例外を参照してください。
StackTrace:Microsoft.SqlServer.Management.Smo.Transfer.TransferData()
at Microsoft.SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask.TransferDatabasesUsingSMOTransfer()
InnerException->タイムアウト。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。
CREATE DATABASEが失敗しました。リストされている一部のファイル名を作成できませんでした。関連するエラーを確認してください。
StackTrace:
System.Data.SqlClient.SqlConnection.OnError(SqlException exception、Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior、SqlCommand cmdHandler、SqlDataReader dataStream、BulkCopySimpleResultSet bulkCopyHandler、TdsParserStateObject stateObj)で

私は再確認しましたが、ファイルパス、権限、またはディスク容量の問題ではありません。このCREATE DATABASEステップには2分ほどかかると思います。ウィザードは操作がタイムアウトしたと想定します。SQLを使用して同じファイルパスとファイルサイズで空のデータベースを手動で作成しましたが、うまくいきました。興味深いことに、1GBのデータベースコピーは同じエラーで失敗し、2回目の試行で成功しました。

助けてください。


アーロンズの回答をご覧ください。これは、データベースにとってはるかに効率的な方法です
Ali Razeghi

回答:


7

そのウィザードをいじるよりもはるかに効率的な方法は次のとおりです。

  1. 2000データベースの完全バックアップを取ります。
  2. これをSQL 2005、2008、または2008 R2インスタンスに復元します。これらすべてが2000データベースをサポートしています。該当するインスタンスがない場合は、2008 R2の評価版をこちらから入手できます。Expressは、バージョンによっては4GB / 10GBのデータファイル制限があるため、機能しないことに注意してください。
  3. を使用して、互換性レベルを80を超える値(2005または2008/2008 R2を使用したかどうかに応じて90または100)に変更しALTER DATABASEます。
  4. このデータベースが80互換モードでなくなったら、このデータベースの完全バックアップを作成します。
  5. この新しいバックアップをSQL Server 2012インスタンスに復元します。
  6. 互換性レベルを110に変更し、統計を更新します。
  7. テスト

SQL 2012をインストールしていますが、SQL 2008 R2を同じマシンにインストールしても問題ありませんか?インストールの順序は重要ですか?
Salman A

はい、同じマシンに2008 R2をインストールできますが、簡単にするために、データベースエンジンをインストールし、クライアントツールはインストールしないでください。あなたが2000年のオフにすべてのあなたの2000のデータベースを移動した後、あなたは2008 R2のインスタンスをアンインストールすることができます
アーロン・ベルトラン

1
プロダクションマシンに不要なバージョンをインストールしないことをお勧めしますが、干渉しませんが、共有コンポーネントに関する警告が表示される場合があります。ただし、原則として、本番環境で不要なものを本番環境にインストールしないでください。攻撃に対するセキュリティの表面積を増やし、バグを導入し、管理を強化します。
Ali Razeghi

1
@アリサルマンが話している機械が生産機械であることをどうやって知っていますか?それともそれが利用可能な唯一のマシンではないのですか?
アーロンバートランド

だから、「やらない」ではなく「製品版」を指定して、「でも干渉しない」と答えました。利用可能なマシンだけでさえ、これらをデスクトップにインストールでき、彼のデータベースは前述のように30GBです。30GBの無料ストレージを備えたコンピューターはかなり一般的ですが、これも単なるアドバイスであり、「これが唯一の答え」ではありません。私は彼のブログを見て、彼は非常に開発に焦点を当てています。つまり、彼はopsの人ほどにはopsのベストプラクティスに関与していない可能性が高いということです。私はそれは良いアドバイスだと思います、彼らがそうする必要がないときに何人の人が製品を開発するのか驚いています。
Ali Razeghi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.