restauration de base de données à défaut avec le déménagement
je suis en train de restaurer une sauvegarde de base de données, mais se l'erreur:
échec de la restauration pour le serveur 'ASIF-VAIO'. (Microsoft.SqlServer.SmoExtended)
INFORMATION SUPPLÉMENTAIRE:
Système.Données.SqlClient.SqlError: fichier "C:Program fichiersMicrosoft SQL ServeurMSSQL10_50.MSSQLSERVERMSSQLDATAuwa.mdf ' est réclamé par "Aston_Fresh_log" (2) et "Aston_Fresh" (1). La clause de mouvement peut être utilisé pour déplacer un ou plus de fichiers. (Microsoft.SqlServer.Smo)
5 réponses
Lors de la restauration, vous devez être sûr de
- choisissez un nouveau nom de base de données qui n'existe pas encore (à moins que vous ne vouliez écraser cette base de données préexistante)
- vous cochez la case
Overwrite
optionOptions
onglet page et définir valide et les nouveaux noms de fichiers pour les.mdf
et.ldf
fichier pour ne pas écraser accidentellement une autre base de données sur votre système:
Ce post a d'excellentes réponses, mais je ne crois pas que ma solution était couvert ici, ou je n'ai pas compris la réponse/commentaire.
cependant, quand j'ai rencontré cette erreur, je restaurais une base de données avec 2 index (primaire et Index). La question était que lors de la restauration il avait créé deux .fichiers ndf, un pour chaque index, mais les avait nommés la même chose.
donc essentiellement j'ai eu deux "restaurer comme" Fichiers restaurer à "D:\MSSQLDATA\DatabaseName.NDF.
pour surmonter cela j'ai dû changer un des noms de fichier, donc par exemple j'ai changé
Index | D:\MSSQLDATA\DatabaseName.ndf
Primary | D:\MSSQLDATA\DatabaseName1.ndf
avoir des noms de fichiers uniques a corrigé ceci pour moi.
cela a fonctionné pour moi: donner un nom différent à chaque fichier MDF et LDF dans la section script.
MOVE N'R_Data'
TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Build51_Testing_db1.mdf',
MOVE N'R_audit'
TO N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\Build51_Testing_db2.mdf',
etc...
Initialement suggéré par Alberto Morillo
je sais que c'est long depuis la dernière réponse, mais je me trouve à chercher dans google la solution pour ce problème. Ce qui a fait ça pour moi, c'était de scripter la restauration (changer le nom du fichier n'a pas fait l'affaire) et de changer manuellement les noms de fichiers en code
RESTORE DATABASE [DB_NAME]
FILE = N'[name]',
FILE = N'[name1]',
FILE = N'[name2]'
FROM DISK = N'[file_path]'
WITH FILE = 1m
MOVE N'[name]' TO N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\[name].mdf',
MOVE N'[name1]' TO N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\[name1].mdf',
MOVE N'[name2]' TO N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\[name2].mdf',
MOVE N'[logname]' TO N'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\[logname].ldf'
NOUNLOAD,
REPLACE,
STATS = 10
GO
Cordialement
si vous avez ce problème et que ce n'est pas le cas, essayez sous les Options de restauration > fichiers, cochez la case Relocate all files to folder.