2017-09-05 5 views
1

何らかの理由でSQL Serverスナップショットを復元できません。SQL Serverスナップショットを復元できません

私はデータベースDB01とスナップショットDB01_SSを持っています。

次のクエリでスナップショットを復元しようとすると:

USE master 
GO 

ALTER DATABASE DB01 SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
GO 

RESTORE DATABASE DB01 FROM DATABASE_SNAPSHOT = 'DB01_SS'; 
GO 

ALTER DATABASE DB01 SET MULTI_USER 
GO 

私は、このエラーメッセージが表示されます:

Msg 3137, Level 16, State 1, Line 5
Database cannot be reverted. Either the primary or the snapshot names are improperly specified, all other snapshots have not been dropped, or there are missing files.
Msg 3013, Level 16, State 1, Line 5
RESTORE DATABASE is terminating abnormally.

私は名前が正しく指定され、確認されています。サーバー上で利用可能な他のスナップショットはありません。私が遭遇した奇妙なことは、スナップショットファイルを検索するためにSQL Serverにログオンしたときだけでした。そしてそれはSSMS GUIの中で別の名前を持っていました。それはDB_SS_2017.SSと命名されました。その名前で復元しようとすると、私は次のエラーを取得する:

Msg 911, Level 16, State 4, Line 5
Database DB_SS_2017.SS does not exist. Make sure that the name is entered correctly.
Msg 3013, Level 16, State 1, Line 5
RESTORE DATABASE is terminating abnormally.

そして最後にではなく、少なくとも、SSMSで再び、スナップショットのプロパティをチェックしようとします。プロパティボタンはグレー表示されています! SQL Serverスナップショットを復元するにはどうすればよいですか?

+0

:あなたはDATABASE_SNAPSHOT =「DB01_SS.SS'' FROM 'しようとしたことがあり、不気味という名前のファイルので、はい、私が試してみました... – RealCheeseLord

+0

を終了することを持っていました。 msg 911エラーが発生したため、SSは存在しません。 – MrPowerUser

答えて

0

あなたの情報に基づいて、このはず作業(データベースがDB01と呼ばれますが、スナップショットがDB_SS_2017.SSと呼ばれているので):

USE master 
GO 

ALTER DATABASE DB01 SET SINGLE_USER WITH ROLLBACK IMMEDIATE 
GO 

-- restore database "DB01" from the snapshot called "DB_SS_2017.SS" 
RESTORE DATABASE DB01 FROM DATABASE_SNAPSHOT = 'DB_SS_2017.SS'; 
GO 

ALTER DATABASE DB01 SET MULTI_USER 
GO 
+0

動作しません。 'Msg 911、Level 16、State 4、Line 8を取得しました 'DB_SS_2017.SS'データベースが存在しません。名前が正しく入力されていることを確認してください。 – MrPowerUser

+0

@doenoe:その場合、あなたのスナップショットはあなたの 'DB01'データベースからではなく、*他のデータベースから*エラーメッセージに言及されています。 –

1

あなたは、以下の例1にあってもよい。

  1. あなたが定義された複数のスナップショットを持って、あなたはより多くのスナップショットを持っているかどうかを確認するためにSSMSでスナップショットフォルダをリフレッシュしてみてくださいまたは select * from sys.databases where source_database_id IS NOT NULLを実行します。スナップショットは「書き込み時にコピー」されているため、1つのデータベースに複数のスナップショットがある場合は復元できません。

  2. スナップショットの論理名を正しく指定していません。 select * from sys.databases where source_database_id IS NOT NULLを実行して、スナップショットの論理名を確認します。その後、その名前を使用してリストアを再実行します。

  3. スナップショットファイルはスナップショットとリンクされていません(何らかの形でスナップショットが破損しています)。以下のステートメントは、スナップショットファイルのページを照会します。それを実行し、エラーがあるかどうかを確認してください。ちょうどあなたのポスト、復元とは実際の経験から select db_name(database_id) [<database name>], database_id, count(*) from sys.dm_os_buffer_descriptors where database_id= (select top 1 database_id from sys.databases where source_database_id IS NOT NULL) group by database_id

関連する問題