106 votes

Qu'est ce qu'un simple programme en ligne de commande ou d'un script de sauvegarde de bases de données SQL server?

J'ai été trop laxiste avec l'exécution DB sauvegardes sur nos serveurs internes.

Est-il un simple programme en ligne de commande que je peux utiliser pour la sauvegarde de certaines bases de données dans SQL Server 2005? Ou est-il un simple VBScript?

120voto

Craig Trader Points 8924

Pour sauvegarder une base de données unique à partir de la ligne de commande, utilisez osql ou sqlcmd.

"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\osql.exe" 
    -E -Q "BACKUP DATABASE mydatabase TO DISK='C:\tmp\db.bak' WITH FORMAT"

Vous aurez également besoin de lire la documentation sur la SAUVEGARDE et de la RESTAURATION et des procédures générales.

8voto

Martin Meixger Points 914

J'ai de l'utilisateur ExpressMaint.

Pour la sauvegarde de toutes les bases de données utilisateur-je faire:

C:>ExpressMaint.exe -S (local)\sqlexpress -D ALL_USER -T DB -BU HEURES -BV 1 -B c:\backupdir\ -DS

7voto

GateKiller Points 19113

Calendrier de la suite de la sauvegarde de toutes les Bases de données:

Use Master

Declare @ToExecute VarChar(8000)

Select @ToExecute = Coalesce(@ToExecute + 'Backup Database ' + [Name] + ' To Disk =     ''D:\Backups\Databases\' + [Name]   + '.bak'' With Format;' + char(13),'')
From
Master..Sysdatabases
Where
[Name] Not In ('tempdb')
and databasepropertyex ([Name],'Status') = 'online'

Execute(@ToExecute)

Il y a également plus de détails sur mon blog: comment faire pour Automatiser SQL Server Express Sauvegardes.

6voto

Big Worm Points 78

J'ai trouvé ceci sur une page de Support de Microsoft http://support.microsoft.com/kb/2019698.

Il fonctionne très bien! Et depuis l'entrée de Microsoft, j'ai l'impression que c'est assez légitime.

Fondamentalement, il existe deux étapes.

  1. Créer une procédure stockée dans la base de db. Voir msft lien ou si c'est cassé essayer ici: http://pastebin.com/svRLkqnq
  2. Planifier la sauvegarde à partir de votre planificateur de tâches. Vous pourriez mettre dans un .bat ou .fichier cmd en premier et ensuite calendrier ce fichier.

    sqlcmd -S YOUR_SERVER_NAME\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='C:\SQL_Backup\', @backupType='F'"  1>c:\SQL_Backup\backup.log            
    

Évidemment remplacer YOUR_SERVER_NAME avec le nom de votre ordinateur ou éventuellement essayer .\SQLEXPRESS et assurez-vous que le dossier de sauvegarde existe. Dans ce cas, c'est en essayant de le mettre en c:\SQL_Backup

5voto

Ira C Points 21

Je suis en utilisant tsql sur un Linux/UNIX infrastructures d'accès à des bases de données MSSQL. Voici un simple script shell pour vider une table dans un fichier:

#!/usr/bin/ksh
#
#.....
(
tsql -S {database} -U {user} -P {password} <<EOF
select * from {table}
go
quit
EOF
) >{output_file.dump}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X