Question

Exécuter un serveur SQL 2005 je base de données R. Je suis en train de restaurer une sauvegarde de A à base de données B. Je veux conserver la base de données A et créer une nouvelle base de données de test B à partir d'un ensemble de données précédente.

J'ai essayé de créer B et restaurer à partir de la base de données et de restauration .bak à B du studio de gestion.

L'erreur est ...

  

TITRE: Microsoft SQL Server Management

     

Studio

     

Échec de la restauration pour le serveur   '195448-APP2.   (Microsoft.SqlServer.Smo)

     

Pour de l'aide, cliquez sur:    http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.1399.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Restore+Server&LinkId=20476

     

------------------------------ INFORMATIONS:

     

System.Data.SqlClient.SqlError: La   jeu de sauvegarde contient une sauvegarde d'un   base de données autres que les « B » existant   base de données. (Microsoft.SqlServer.Smo)

     

Pour de l'aide, cliquez sur:    http://go.microsoft.com/fwlink ? ProdName = Microsoft + SQL + serveur & ProdVer = 9.00.1399.00 & LinkId = 20476

     

------------------------------ BOUTONS:

     

OK

J'ai trouvé cet extrait que je suis hésitant à utiliser et que vous voulez demander si cela résoudrait mon problème de changer l'emplacement du mdf et LDF pendant le processus de restauration de la base de données ou ne remplace la base de données A éléments de tout à fait.

ALTER DATABASE AdventureWorks
SET SINGLE_USER WITH
ROLLBACK IMMEDIATE
RESTORE DATABASE AdventureWorks
FROM DISK = 'C\:BackupAdventureworks.bak'
WITH MOVE 'AdventureWorks_Data' TO 'C:\Data\datafile.mdf',
MOVE 'AdventureWorks_Log' TO 'C:\Data\logfile.ldf',
REPLACE

[ http://blog.sqlauthority.com/2007/04/30/sql-server-fix-error -msg-3159-level-16-state-1-line-1-msg-3013-level-16-state-1-line-1 /] [1]

et pour moi, je le ferais ...

RESTORE DATABASE B
FROM DISK = 'C:\backupofA.bak'
WITH    
MOVE 'B' TO 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\B.mdf',
MOVE 'B_log' to 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\B_log.ldf',
REPLACE

Ce que je ne sais pas si elle est aura une incidence sur la base de données A tout. J'espère que le remplacement des fichiers associés à B fait référence.

ou si elle doit être

RESTORE DATABASE B
FROM DISK = 'C:\backupofA.bak'
WITH    
MOVE 'A' TO 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\B.mdf',
MOVE 'A_log' to 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\B_log.ldf',
REPLACE

Si quelqu'un pouvait me aider avec l'erreur et / ou confirmer ce correctif je serais très reconnaissant que ce n'est pas ma base de données que je joue avec.

Merci.

Était-ce utile?

La solution

Vous pouvez simplement utiliser le Copie Assistant de base de données. Si vous voulez faire comme les pros et utiliser T-SQL RESTORE .. ... DEPLACER REMPLACER faire ce que vous attendiez: déplacer les deux fichiers aux endroits que vous souhaitez et remplacer la base de données B avec le contenu de la sauvegarde. A ne sera pas touché.

Autres conseils

Je voudrais utiliser l'assistant si je vous étais: Dans SQL Server Management Studio clic droit sur « bases de données » et sélectionnez « Restaurer la base de données ... ». Cette boîte de dialogue / Assistant va faire exactement ce que vous demandez - il suffit de sélectionner le fichier .bak source (s) / base de données que vous souhaitez restaurer, entrez le nom de la base de données que vous souhaitez restaurer et cliquez sur « Ok »

Quelques notes - si vous entrez le nom d'une base de données qui ne marche pas encore existe (il semble que c'est ce que vous voulez faire), il va créer cette base de données pour vous. Si vous entrez le nom d'une base de données existante, il tentera de restaurer cette base de données. Si vous essayez de restaurer une base de données existante à partir d'une sauvegarde effectuée d'une autre base de données, il échouera, mais vous pouvez forcer le Sql Server pour remplacer la base de données existante en allant dans « Options » et cochez la case « Ecraser la base de données existante ».

En outre, si vous restaurez une sauvegarde d'une base de données existante pour créer une nouvelle deuxième copie de cette base de données, vous pouvez constater que l'assistant ne parvient pas comme tentative de création d'une base de données en utilisant les mêmes chemins de fichiers de base de données que celles actuellement utilisées par la base de données source. Pour corriger cela, vous devez cliquer sur « Options » et changer tous les « Restaurer en tant que » chemins de fichiers à des fichiers qui n'avez pas encore existent.

Vous pouvez également obtenir cet assistant pour générer un script SQL au lieu d'exécuter effectivement la restauration réelle (cliquez sur le bouton « script » en haut), ce qui est pratique si vous voulez apprendre à faire ce genre de chose en première SQL à la place.

Il est possible de restaurer une base de données à partir du serveur SQL 7, SQL Server 2000 vers le serveur SQL 2005. Il peut être réalisé en utilisant la restauration et avec commande de remplacement

use master 

restore database mydatabase from disk ='c:\mybackup.bak' with replace 

Il est facile de faire une sauvegarde dans le serveur SQL en utilisant ce script sans outils externes.

Consultez Restauration avec l'exemple .

base de données goutte b premier. alors ne la restauration.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top