Comment dupliquer la base de données MSSQL sur le même ou un autre serveur?

15

J'essaie d'accomplir ce qui suit:

  1. Prendre un instantané de la base de données d'origine, créer et effectuer une copie sur un autre serveur?
  2. Prenez un instantané de la base de données d'origine, créez un doublon sur le même serveur sous un nom de base de données différent

Cependant, je ne peux pas en raison d'une expérience très limitée avec MSSQL. Aucune suggestion?

Information additionnelle:

Serveur de base de données d'origine: SQL Server 2000

Serveur de base de données de destination: SQL Server 2005

Alex N
la source

Réponses:

17
  1. sauvegarder la base de données
  2. restaurer la base de données sous un nouveau nom et / ou sur un autre serveur

Ces deux opérations peuvent être effectuées à partir d'Enterprise Manager (SQL2000) ou de son remplaçant SQL Management Studio (SQL2005 +), ou des commandes TSQL BACKUP et RESTORE .

Remarque: vous pouvez restaurer une base de données sauvegardée à partir de SQL2000 sur SQL2005 sans problèmes dans la plupart des cas, mais pas l'inverse.

David Spillett
la source
1
Merci David. Comment puis-je restaurer DB sous un nouveau nom sur un autre serveur?
Alex N
La sauvegarde de la base de données produit un fichier de sauvegarde (ou étend un fichier existant). Transférez ce fichier sur l'autre serveur, puis utilisez Management Studio (ou une commande RESTORE émise d'une autre manière) pour restaurer une base de données à partir de ce fichier. Le processus de restauration vous offre la possibilité de dicter un nom pour la base de données une fois qu'elle est restaurée.
David Spillett
7

Ajoutant cela alors que je suis tombé dessus tout en suivant les étapes ci-dessus.
Dans SQL Server 2008 R2 au moins, vous pouvez ignorer une étape pour obtenir une sauvegarde locale sur le serveur.

  1. Bases de données avec clic droit
  2. Cliquez sur Restaurer la base de données.
  3. Définissez l'option From database sur la base de données que vous copiez
  4. Définissez l'option To database dans le nouveau nom
  5. Cliquez sur OK
Chris
la source
5

C'est probablement la meilleure solution:

1) Sur le serveur DB source - Créer une sauvegarde dans un fichier local

DECLARE @fileName nvarchar(400);
DECLARE @DB_Name nvarchar(50);

SET @DB_Name = 'NameOfSourceDatabase'
SET @fileName = 'c:\Test\original.bak'

BACKUP DATABASE @DB_Name TO DISK = @fileName

2) Copiez le fichier source sur le serveur de destination.
Si les deux serveurs sont sur la même machine, vous souhaiterez peut-être créer une copie de ce fichier:

EXEC master.dbo.xp_cmdshell 'COPY c:\Test\original.bak   c:\Test\clone.bak'

3) Sur le serveur DB de destination : restaurez la base de données à partir du fichier de sauvegarde

RESTORE DATABASE CloneDB

FROM DISK='c:\Test\clone.bak'
Stefano Rosati
la source
0

en utilisant MS SQLServer 2012, vous devez d'abord effectuer 3 étapes de base, générer un fichier .sql contenant uniquement la structure de la base de données source => cliquer avec le bouton droit sur la base de données source, puis Tâches puis générer des scripts => suivre l'assistant et vous pouvez enregistrer le Fichier .sql localement Deuxièmement, remplacez dans le fichier .sql la base de données source par celle de destination => cliquez avec le bouton droit sur le fichier de destination et appuyez sur Nouvelle requête et Ctrl-H ou (éditer - rechercher et remplacer - Quack replce) enfin, remplir avec des données => cliquez avec le bouton droit sur la base de données de détection, puis sur Tâches, puis sur Importer les données => Donner la source de données définie sur ".net framework data procider for sql server" + définir le champ de texte de la chaîne de connexion sous DATA ex: Data Source = Mehdi \ SQLEXPRESS; Catalogue initial = db_test; ID utilisateur = sa; Mot de passe = sqlrpwrd15 => Même chose à faire avec la destination =>cochez la table que vous souhaitez transférer ou cochez la case "source: ....." pour les cocher toutes

vous avez terminé.

Mehdi Benkirane
la source