Faire une sauvegarde d'une database SQL Server

Je travaille sur un logiciel qui a été développé pour supporter deux versions de SQL Server. Nous avons une version exécutée sur SQL Server 2000 et une autre sur 2005. Les deux sont installés sur des sites clients (deux clients différents) et je dois pouvoir get une sauvegarde des deux servers pour effectuer des tests de mise à niveau. Les sauvegardes seront ensuite utilisées pour effectuer un test final avant que les mises à niveau ne soient envoyées aux deux clients. En testant sur leurs données réelles, le résultat du test serait le plus fiable.

Mais le problème est que les deux clients ne nous donnent pas access à des outils SQL pour fonctionner sur ces servers. Tout ce que je reçois est une string de connection SQL à utiliser avec C # dans le cadre d'une application ASP.NET. J'ai donc besoin de faire quelque chose d'intelligent grâce à des instructions c # / SQL via cette connection. Je n'ai pas non plus de droits d'access au système de files sur le server, donc je ne peux même pas faire une sauvegarde dans un file sur le server, puis le download. Donc, d'autres alternatives?

Ce truc SMO ou SQL DMO semble prometteur. Il existe une section sur l'exécution d'une sauvegarde par programmation via une connection. Notez les conditions requirejses pour SMO, et je suis sûr qu'il y aura une dépendance sur la façon dont les permissions de l'user SQL Server sont configurées avec lesquelles vous vous connectez:

http://msdn.microsoft.com/en-us/magazine/cc163409.aspx

Peut-être que votre client peut faire la sauvegarde pour vous?

Si vous avez besoin de le gérer via une connection distante, votre premier défi consistera à garantir la cohérence de l'état de la database. Si vous exécutez SQL Enterprise, vous pouvez le faire en créant un snapshot DB.

Vous pouvez utiliser SMO (Server Management Objects) pour exécuter par programme tout ce que vous pouvez faire à partir de SSMS, notamment en créant des scripts pour créer les objects DB, en exécutant une sauvegarde traditionnelle, etc.

Si vous n'avez pas besoin de la structure DB, vous pouvez écrire un package SSIS pour récupérer toutes datatables distantes et les transférer dans une database locale. Ce serait probablement plus rapide que d'essayer de le coder vous-même.

En supposant que vous êtes administrateur SQL, vous avez (ou pouvez activer) l'access à xp_cmdshell. Après avoir pris la sauvegarde (et l'avoir stockée dans le directory sql data, auquel le count de service Sql Server doit avoir access), vous pouvez appeler xp_cmdshell pour faire ce que vous voulez avec ces files de sauvegarde (encore une fois, xp_cmdshell s'exécutera sous le context de Sql) Moteur du server, il aura donc access au directory de données).

soit faire ce que Paul dit et les get pour vous donner un access à distance à leur réseau et server, ou les faire get leurs gens pour vous envoyer une sauvegarde de la database. Je ne perdrais pas mon time à essayer de développer une solution de contournement. Parlez à votre patron de la raison pour laquelle il est important d'get ces sauvegardes et de voir si elles peuvent fournir un certain effet de levier.