복원을 통해 SQL 2000에서 SQL 2008으로 마이그레이션하는 방법은 무엇입니까?
-
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
제휴하지 않습니다 StackOverflow