J'ai besoin de transférer la base de données (dans son ensemble) vers un autre serveur, pour créer une base de données en double pour configurer un autre environnement de test.
J'ai deux choix:
- Faire une sauvegarde complète sur le serveur source / restaurer sur le serveur de destination;
- Détacher sur le serveur source / attacher sur le serveur de destination.
Quels sont les avantages et les inconvénients des deux solutions selon mes besoins?
J'utilise SQL Server 2008 Enterprise.
la source
Si vous décidez de sauvegarder / restaurer, utilisez l'option WITH COPY_ONLY pendant la sauvegarde pour vous assurer que la chaîne de sauvegarde d'un plan de maintenance existant n'est pas interrompue.
Un fichier .bak se comprime bien, donc si vous décidez de faire une sauvegarde, la compression de la sauvegarde avant de la déplacer peut économiser du temps de transfert.
la source
J'irais pour la sauvegarde / restauration car elle laisse la base de données d'origine dans un état opérationnel.
Surtout si vous effectuez une conversion `` production à tester '', il est important que la base de données de production reste en ligne.
La sauvegarde / restauration est également une option plus sûre : que se passe-t-il si le fichier est corrompu quelque part entre le début du détachement, la copie, la pièce jointe, etc.? Au moins, si vous effectuez une sauvegarde et que le fichier est corrompu, vous pouvez recommencer. Si cela se produit avec un détachement, votre base de données a disparu.
De plus, pour moi (bien que ce soit plus un sentiment qu'autre chose), la sauvegarde / restauration est un "travail quotidien" alors que le détachement / attachement est quelque chose que vous faites dans des circonstances exceptionnelles. Ne me demandez pas où j'ai eu cette idée ;-)
la source
J'ai toujours eu des problèmes avec la partie "restaurer" de la sauvegarde / restauration. Je ne peux pas citer de détails car j'ai finalement abandonné et je détache / copie / attache depuis.
La seule chose à propos de la déconnexion est que vous devez avoir pour vous assurer que le SGBD ne supprimera pas également la base de données. Cela s'est produit, et ce n'est pas une jolie vue.
la source
Je recommande une
copy_only
sauvegarde en utilisant cette méthode à partir d'un shell DOS (afin de ne pas interrompre les journaux de transactions) :Exécuter à partir du
C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup
répertoire:Où
backup.bat
contient (saut de ligne ajouté pour plus de lisibilité) :la source