6

私は大規模なサーバー移行を行っている最中です。そのため、50以上のSQL2005データベースを新しいSQL2008サーバーインストールに移動する必要があります。

DBの担当者からは、各データベースのバックアップしか提供されていないため、復元する必要のあるディレクトリ(c:\ db)に約50個の.bakファイルが格納されているディレクトリがあります。

各データベースを新しいサーバーに復元する必要があります。

これはManagementStudioで個別に実行できますが、時間がかかります。この問題を解決するためのより効率的な方法はありますか?

だから私の質問は:

これらすべてのデータベースを復元する最も効率的な方法は何ですか。

マシンの背景:サーバーはWin 2k8で、SQL 2008 Workgroup Editionがあり、Powershell2とともに.net4がインストールされています。

前もって感謝します。

4

2 に答える 2

6

コメント後に編集: 次のように復元をスクリプト化できます。

restore database DatabaseName
from disk = N'c:\dir\BackupFileName.bak'
with file = 1,  
move N'DatabaseName' to N'c:\dir\DatabaseName.mdf',  
move N'DatabaseName_log' to N'c:\dir\DatabaseName.ldf',  
stats = 10, 
recovery 

この 2move行は、ファイルを新しいサーバー上の場所に移動します。通常、名前は DatabaseName と DatabaseName_log ですが、異なる場合があります。

recovery手段: 追加のログの復元を待たずにデータベースをオンラインにします。

このようなスクリプトを生成するには、[データベースの復元] ウィザード ウィンドウで [スクリプト] ボタン (左上) をクリックし、[ ] をクリックしますScript action to...

于 2010-08-26T11:34:54.350 に答える
0

カスタム アプリケーション/スクリプトを作成しますか? SSMS を拡張するか、SQL サーバー ツールを使用して、これらのファイルを読み取ってデータベースに復元するだけのアプリケーションを作成できます。.netで可能であることは知っていますが、powershellスクリプトを使用しても可能かもしれません。

これは、本番環境の移行中にこのタスクを短時間で実行する場合に効率的です。そうでない場合、アプリを作成するオーバーヘッドは、手動で 50 回の復元を行うよりも多くなります! しかし、あなたが開発者であり、手動で選択した場合は、恥ずかしいことです! :)。

于 2010-08-26T12:40:02.373 に答える