2

私はこのコードを実行しています:

RESTORE DATABASE [MyDB_2009May11] 
FROM  DISK = N'C:\DB Copy\MyDB_2009May11.bak' 
WITH  
MOVE N'Archive_Data' 
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.mdf',  
MOVE N'Data' 
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.mdf',  
MOVE N'Log' 
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.ldf',  
NOUNLOAD,  
STATS = 10
GO

このエラーが発生します:

メッセージ3176、レベル16、状態1、1行目のファイル'C:\ Program Files \ Microsoft SQL Server \ MSSQL10.SQL2008 \ MSSQL \ DATA \ MyDB_2009May11.mdf'は、'Archive_Data'(3)および'Data'(1 )。WITH MOVE句を使用して、1つ以上のファイルを再配置できます。メッセージ3013、レベル16、状態1、行1RESTOREDATABASEが異常終了しています。

バックアップファイルしか持っていないのに、SQL Server 2000から2008に移行するにはどうすればよいですか?

:)どんな助けでも大歓迎です。

4

3 に答える 3

3

Archive_DataとDataを同じファイルに移動しようとしています-ファイル名を変更すれば問題ありません:)

于 2009-06-18T01:02:48.713 に答える
1

sysaltfilesからselect*を実行し、正しいファイル名を確認してから、それに応じてパーツへの移動で名前を変更します

これにより、現在すべてのファイルグループの名前が表示されます

select filename from master..sysaltfiles
where name = 'MyDB_2009May11'

データベースのスクリプトをまだ作成していない場合は、最初にこれを実行してください。フォルダが存在することを確認してください。ファイルサイズも変更することをお勧めします

    CREATE DATABASE [MyDB_2009May11] ON (NAME = N'Data',
    FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.mdf'
     , SIZE = 12, FILEGROWTH = 10%),
     (NAME = N'Archive_Data',
    FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.ndf'
     , SIZE = 12, FILEGROWTH = 10%)
    LOG ON (NAME = N'Log', 
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.ldf'
     , SIZE = 21, FILEGROWTH = 10%)
     COLLATE SQL_Latin1_General_CP1_CI_AS

これで、復元はこれになります。アーカイブファイルグループのndf拡張子に注意してください。

RESTORE DATABASE [MyDB_2009May11] 
FROM  DISK = N'C:\DB Copy\MyDB_2009May11.bak' 
WITH  
MOVE N'Archive_Data' 
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.mdf',  
MOVE N'Data' 
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.ndf',  
MOVE N'Log' 
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.ldf',  
NOUNLOAD,  
STATS = 10
GO
于 2009-06-18T01:09:40.790 に答える
0

私もこの問題に遭遇しました。REPLACE復元先のデータベースがデータベースのバックアップとは異なるため、句を使用する必要がありました。

RESTORE DATABASE [MyDB_2009May11]  
FROM  DISK = N'C:\DB Copy\MyDB_2009May11.bak'  
WITH   
MOVE N'Archive_Data'  
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.mdf',   
MOVE N'Data'  
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.ndf',   
MOVE N'Log'  
    TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\MyDB_2009May11.ldf',   
**REPLACE**,
NOUNLOAD,   
STATS = 10 
GO 
于 2012-05-16T21:41:37.600 に答える