Bonjours je suis sous windows 2008 R2 web editin.
J'ai sql 2008 r2.
Et je voudrai savoir comment sauvegarder x temps la base de donnée...
Merci
Version imprimable
Bonjours je suis sous windows 2008 R2 web editin.
J'ai sql 2008 r2.
Et je voudrai savoir comment sauvegarder x temps la base de donnée...
Merci
Bonsoir,
Apparemment il me semble que vous ne faites aucun effort de recherche.
D'abord une petite question (juste pour tester votre motivation) : quel est le nom de la commande pour faire une sauvegarde sous SQL SERVER ?
1. dump ?
2. database dump ?
3. backup ?
A+
Contrairement a ce que vous pensez j'ai fais des recherche.
Je connais pas bien encore les commandes sql server.
Moi ce que je cherche c'est plus un script bat.
J'utilisais ce code qui marchait parfaitement sous windows server 2008 :
Hélas ce code ne marche plus sous windows server 2008 R2 64 bit.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 SET J=%date:~-10,2% SET A=%date:~-4% SET M=%date:~-7,2% SET H=%time:~0,2% SET MN=%time:~3,2% SET S=%time:~-5,2% IF "%time:~0,1%"==" " SET H=0%HEURE:~1,1% SET REPERTOIRE=C:\Repertoire_Sauvegarde\ SET FICHIER=%REPERTOIRE%\Nom_de_mon_fichier_%J%_%M%_%A%_A_%H%_%MN%_%S%.bak IF NOT exist "%REPERTOIRE%" md "%REPERTOIRE%" cd C:\Program Files\Microsoft SQL Server\90\Tools\Binn sqlcmd -S NOM_DU_SERVEUR\SQLEXPRESS -Q "BACKUP DATABASE NOM_DE_LA BASE TO DISK = N'%FICHIER%' WITH INIT, NAME = N'Sauvegarde automatique de la base de données', STATS = 1"
Il me semble que le chemin a spécifier dans votre fichier batch serait plutôt C:\Program Files\Microsoft SQL Server\100\Tools\Binn. C'est le cas chez moi en tout cas. Vérifiez dans votre explorateur.
L'édition web étant dotée de l'Agent SQL qui est un planificateur de tâche optimisé et dédié à MS SQL Server, il est très nettement préférable de passer par cet outil pour planifier vos sauvegardes...
A +
C'est bien de SQLCMD.exe qu'il a besoin ?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 SET J=%date:~-10,2% SET A=%date:~-4% SET M=%date:~-7,2% SET H=%time:~0,2% SET MN=%time:~3,2% SET S=%time:~-5,2% IF "%time:~0,1%"==" " SET H=0%HEURE:~1,1% SET REPERTOIRE=C:\Users\root\Desktop\save_db\ SET FICHIER=%REPERTOIRE%\account_%J%_%M%_%A%_A_%H%_%MN%_%S%.bak IF NOT exist "%REPERTOIRE%" md "%REPERTOIRE%" cd C:\Program Files\Microsoft SQL Server\100\Tools\Binn sqlcmd -S 127.0.0.1 -Q "BACKUP DATABASE account TO DISK = N'%FICHIER%' WITH INIT, NAME = N'Sauvegarde automatique de la base de données', STATS = 1"
Bon voila le script configurer.
Quand j'execute sa s'ouvre et sa referme en suivant....
Ajoutez pause a la fin de votre script et/ou redirigez les outputs de vos commandes vers un fichier de log... Ca peut aider pour debugger...
BTW, a l'installation de SQL Server sqlcmd est reference dans la variable d'environnement path du serveur (ou plutot le folder contenant sqlcmd pour etre precis). De ce fait pas besoin de se localiser dans le folder specifique... Sauf si vous voulez utiliser une version bien particuliere du programme bien entendu...
Pourriez vous me dire que rajouter afin que je vous envoie les logs ?
Et afin qu'on puisse debugguer.
Desolé je suis pas un expert en script bat.
Ecrivez:
A la fin de votre script et executez le manuellement.Code:
1
2 pause
Il vous demandera ensuite d'appuyer sur une touche pour continuer et donc l'ecran ne disparaitra pas tout de suite...
Sinon utilisez les redirections > <nomdefichier>
Par exemple:
Code:monscript.bat > monlog.txt
Aucun fichier n'ai generer.... sa me met access refuséCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 SET J=%date:~-10,2% SET A=%date:~-4% SET M=%date:~-7,2% SET H=%time:~0,2% SET MN=%time:~3,2% SET S=%time:~-5,2% IF "%time:~0,1%"==" " SET H=0%HEURE:~1,1% SET REPERTOIRE=C:\Users\root\Desktop\save_db\ SET FICHIER=%REPERTOIRE%\account_%J%_%M%_%A%_A_%H%_%MN%_%S%.bak IF NOT exist "%REPERTOIRE%" md "%REPERTOIRE%" cd C:\Program Files\Microsoft SQL Server\100\Tools\Binn sqlcmd -S 127.0.0.1 -Q "BACKUP DATABASE account TO DISK = N'%FICHIER%' WITH INIT, NAME = N'Sauvegarde automatique de la base de données', STATS = 1" save_account.bat > monlog.txt pause
Quel est le message d'erreur complet ?
Ok j'ai trouvé l'erreur.
Il est logique meme, mon sql n'est pas en mode mixte...Code:Echec de l'ouverture de session de l'utilisateur xxx/root
Sauriez vous corrogiez le script pour rajouter une authentification ?
j'ai trouvé un lien : http://msdn.microsoft.com/fr-fr/library/ms165702.aspx
Donc voici mon script modifié :
Donc l'erreur retourné,Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 SET J=%date:~-10,2% SET A=%date:~-4% SET M=%date:~-7,2% SET H=%time:~0,2% SET MN=%time:~3,2% SET S=%time:~-5,2% IF "%time:~0,1%"==" " SET H=0%HEURE:~1,1% SET REPERTOIRE=C:\Users\root\Desktop\save_db\ SET FICHIER=%REPERTOIRE%\account_%J%_%M%_%A%_A_%H%_%MN%_%S%.bak IF NOT exist "%REPERTOIRE%" md "%REPERTOIRE%" cd C:\Program Files\Microsoft SQL Server\100\Tools\Binn sqlcmd -U sa -P mon_pass -S 127.0.0.1 -Q "BACKUP DATABASE account TO DISK = N'%FICHIER%' WITH INIT, NAME = N'Sauvegarde automatique de la base de données', STATS = 1" pause
Code:
1
2 account...bak erreur 5 <acces refusé> du syteme d'exploitation
Il vous faut maintenant donner les droits de mofication a SQL Server sur le folder %REPERTOIRE%.
Vous pouvez faire cela en regadant quel est le nom du groupe SQL Server definit localement sur le serveur (i.e: SQLServerMSSQLUser$servername$instanceName) et donner les droits a ce groupe local.
NB: votre repertoire pointe sur un folder dedie au desktop d'un user (root).
Il serait recommande de placer vos backups a une endroit plus approprie (i.e: c:\backups meme si le C: est pas vraiment recommendable...)
J'ai pas trop compris se qu'il faut faire...
Lisez ceci.
Bonjour,
Il aurait quand même été de bon ton de considérer la remarque de SQLPro.
Il est extrêmement facile de créer un job, et de mettre l'instruction pour la sauvegarde dedans ...
D'autre part on a un historique, à la fois du job (mais aussi des backups) dans les deux cas.
@++ ;)