2008-12-08 10 views
1

J'utilise un service d'hébergement qui me permet de sauvegarder ma base de données SQL 2008 et de télécharger le fichier BAK via une interface web uniquement - et j'ai accès à la base de données via Management Studio. Je peux exécuter la commande de sauvegarde à partir de Management Studio, mais je n'ai pas les droits sur le chemin où se trouvent les sauvegardes. Est-il possible via SQL ou script d'extraire une copie complète de la base de données? Puis-je générer le script requis pour recréer la base de données à l'aide du code? Ce n'est que quelques milliers de disques.Comment automatiser la sauvegarde SQL sur un serveur hébergé partagé?

Merci.

Répondre

2

Si vous avez accès via Management Studio, pourquoi ne copiez-vous pas la base de données hébergée sur votre machine locale (Tâches> Copier la base de données)? Une fois qu'il a été restauré sur le système local, vous pouvez faire ce que vous voulez.

1

Si un hôte ne fournit pas un moyen facile d'obtenir des sauvegardes hors site de votre base de données (automatisé - et vous dire comment le faire), vous devriez en trouver un autre.

0

une façon est de scénario, la structure db et générer des instructions d'insertion pour la base de données entière avec cette SSMS Addin http://www.ssmstoolspack.com/

2

gratuit SqlBackupAndFTP permet de faire des sauvegardes à distance en utilisant les scripts

2

Tout va quitter ce ici une réponse (Scripts votre base de données entière dans un fichier .sql (y compris les données), puis compresse avec winrar.)

J'ai créé cette solution à exécuter une fois par jour à partir du planificateur de tâches, ce qui explique pourquoi il ne un niveau quotidien. Si vous voulez exécuter plus (par exemple, une fois toutes les demi-heures), vous devrez modifier le "% date: ~ -4,4 %% date: ~ -7,2 %% date: ~ -10,2 % "des champs pour descendre à un niveau d'heure/minute/seconde, selon ce qui est nécessaire pour vous.

REMARQUE: Assistant de publication SQL & Winrar doivent être installés

begin.bat - wrapper pour conserver un enregistrement du fichier journal. Ceci est le fichier de traitement par lots à être appelé par le Planificateur de tâches

::Run dbbackup.bat and append all output to log.txt 

md C:\[directory]\%date:~-4,4%%date:~-7,2%%date:~-10,2% 

"dbbackup.bat" >> "C:\[Directory]\%date:~-4,4%%date:~-7,2%%date:~-10,2%\log.txt" 

dbbackup.bat - Sauvegarde de la base de données

echo off 
cls 
echo %date% %time% 
echo *************************************************************************** 
echo ** Script all objects in databases and save them in 'yyyymmdd' folder ** 
echo *************************************************************************** 
cd C:\[directory]\%date:~-4,4%%date:~-7,2%%date:~-10,2% 
"C:\Program Files\Microsoft SQL Server\90\Tools\Publishing\sqlpubwiz.exe" script -C "[ConnectionString]" [dbname]_%date:~-4,4%%date:~-7,2%%date:~-10,2%.sql 
echo *************************************************************************** 
echo ** RAR compress all .sql script files         ** 
echo *************************************************************************** 
"C:\Program Files\WinRAR\WinRAR.exe" -ibck a [dbname]_%date:~-4,4%%date:~-7,2%%date:~-10,2%.rar [dbname]_%date:~-4,4%%date:~-7,2%%date:~-10,2%.sql 
echo WinRAR has completed execution 
echo *************************************************************************** 
echo ** Delete all .sql script files           ** 
echo *************************************************************************** 
del *.sql 
echo .SQL files deleted 

Il suffit de créer une tâche planifiée pour exécuter begin.bat à exécuter à tout intervalle vous avez besoin, et une sauvegarde de base de données sera scriptée avec un fichier journal.

Questions connexes