복원을 통해 SQL 2000에서 SQL 2008으로 마이그레이션하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1010279

  •  06-07-2019
  •  | 
  •  

문제

이 코드를 실행하고 있습니다.

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

이 오류가 발생합니다.

MSG 3176, Level 16, State 1, Line 1 File 'C : Program Files Microsoft SQL Server MSSQL10.SQL2008 MSSQL DATA MYDB_2009MAY11.MDF'는 'Archive_Data'(3) 및 'Data'(1 ). With Move 절을 사용하여 하나 이상의 파일을 재배치 할 수 있습니다. MSG 3013, 레벨 16, 상태 1, 라인 1 복원 데이터베이스가 비정상적으로 종료됩니다.

내가 가진 모든 것이 백업 파일 일 때 SQL Server 2000에서 2008에서 2008 년까지 어떻게 마이그레이션됩니까?

:) 모든 도움에 감사드립니다.

도움이 되었습니까?

해결책

sysaltfiles에서 선택 *을 수행하고 올바른 파일 이름을보고 이동중인 이름을 그에 따라 부품으로 변경하십시오.

이것은 현재 모든 파일 그룹의 이름을 줄 것입니다.

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

Databse 스크립트가 없다면 먼저이 작업을 수행하십시오. 폴더가 존재하는지 확인하고 파일 크기를 변경할 수도 있습니다.

    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

다른 팁

Archive_Data와 데이터를 동일한 파일로 이동하려고합니다. 파일 이름을 변경하면 괜찮을 것입니다 :)

나는 또한이 문제를 해결했고, 약간의 추가로 나는 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 
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top