12

私はSQLをあまりやったことがなく、まだこれにはかなり慣れていないので、おそらく基本的な質問であることをお許しください。

データベースをバックアップし、.baks を別のマシンに保存してから、それらを別のサーバーに復元するための SQL ジョブの作成を検討するよう依頼されました。私は少し調査を行ってSSMSで遊んでおり、共有を設定して共有の場所にバックアップジョブを実行することで、データベースを個人のマシンにバックアップしました。私は現在、.bakファイルを復元して(バックアップ元と同じサーバー上に)新しいデータベースを作成しようとしています(ただし、データベースに新しい名前を作成しようとしていますが、できません)バックアップしたときのように、共有から復元するように指定します/他のネットワークの場所を指定する方法が見つからず、ファイルを見つけようとするとサーバーのCドライブを参照しています.

今のところ、組み込みのウ​​ィザードを使用してこれを実現しようとしています (SSMS を開く -> サーバーに接続 -> データベースを右クリック -> データベースの復元を選択し、[デバイスから] を選択して参照してファイルを見つけます)。

これは最終プロセスではありません。これがどのように機能するかを理解しようとしているだけです。私が言ったように、アイデアは、最終的にサーバー1からDBを私の個人用マシンの.bakにバックアップし、それをサーバー2(別のネットワーク、別の都市)のDBに復元するスケジュールされたジョブを持つことです。 、毎回ウィザードを使用するのではなく、一連の SQL コマンドを使用します (最終的にバックアップが必要になる DB がいくつかあります)。

おそらく、非常に引き出された複雑な質問に対する私の謝罪-基本的に、私が知る必要があるのは、別のマシンの.bakからSSMSでDBを復元できる/どのように復元できるかだけです? どうもありがとう

4

1 に答える 1

31

次のスクリプトのようなものを使用できます。ファイルシステムからデータベースを復元し、既存のデータベースを「MyDB」という名前で上書きし、その過程で選択した新しい場所にファイルを移動します。

データベースの復元
    MyDB
ディスクから = '\\MyShare\MyBackup.bak'
と
    「DataFile」を「D:\myNewDBLocation\DataFile.mdf」に移動します。
    'LogFile' を 'E:\\myNewDBLocation\LogFile.ldf' に移動します。
、 交換

llogical ファイルの名前を見つけることができます (上記では、これらは呼び出さDataFileLogFile、次を実行することによって:

リストのみでファイルを復元
ディスクから = '\\MyShare\MyBackup.bak'

さまざまなオプションとパラメーターに関する追加情報:

復元 (Transact-SQL)

于 2012-11-15T11:01:08.963 に答える