francoissql
Messages postés12Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention11 mai 2011
-
22 juin 2009 à 13:55
francoissql
Messages postés12Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention11 mai 2011
-
20 août 2009 à 13:36
Par ailleurs, comment dois-je procéder pour
ne sauvegarder que les bases d'une certaine instance ou que les bases
commençant par exemple par sl ?
De plus, que risque-t-on lorsque l'on fait
une sauvegarde par une simple copie des fichiers MDF/LDF ou du répertoire Data
? Que cela change-t-il par rapport à un agent de sauvegarde d'un logiciel
spécifique ?
cs_ferservadou
Messages postés5Date d'inscriptionmercredi 7 novembre 2007StatutMembreDernière intervention29 juillet 2009 28 juil. 2009 à 08:49
Après de nombreuses tentatives infructueuses, nos spécialistes TINA - avec le concours de Atempo - m'ont dit que ce n'était pas possible sur cette version.
Le Pb, c'est que je ne maîtrise pas du tout la version, dans la mesure où cette BD est "embedded" et fournie comme support à une appli commerciale : Il n'y a que le moteur, mais aucun outil et aucune info... : Ça a été une galère pour trouver comment créer un compte TINA et lui donner les droits d'administration !
Mais ton idée de script me paraît séduisante... As-tu un lien à me donner pour que je trouve le B-A-BA de la méthode ? (comment fait-on une sauvegarde avec un script, quels sont les fichiers produits et comment fait-on pour restaurer la BD avec ces fichiers-là ?)
nivsql
Messages postés159Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention14 décembre 20101 28 juil. 2009 à 12:45
B-A-BA :
Avec un utilisateur administrateur local de la machine voici l'exemple dans une boite DOS :
C:\>osql -S BASE -H BASE -E
1> use master;
2> go
1> select name from sysdatabases where name like 'm%';
2> go
name
-----------------------------------------------------------------------------------
master
model
msdb
(3 lignes affectées)
1> backup database msdb to disk = N'C:\Temp\msdb.bak';
2> go
Processed 1584 pages for database 'msdb', file 'MSDBData' on file 2.
Processed 1 pages for database 'msdb', file 'MSDBLog' on file 2.
BACKUP DATABASE successfully processed 1585 pages in 1.051 seconds (12.347 MB/sec).
1> quit
C:\>
Comme tu as un client SQL 2000 j'utilise OSQL mais sache que tu peux faire ca depuis n'importe quelle autre machine (du meme domaine avec un utilisateur admin du domaine si tu veux l'option -E sinon tu y vas avec le compte SA et son mot de passe, pour plus d'information OSQL /? pour avoir l'aide ^^) sur laquelle tu as installer un client SQL 2005 et l'utilitaire SQLCMD, tu peux lancer ton back a distance c'est le pied ;)
nivsql
Messages postés159Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention14 décembre 20101 28 juil. 2009 à 12:47
J'ajoute qu'en etant vicieux tu dois pouvoir installer le client natif SQL 2005 sur ton serveur et faire croire a TINA qu'il a affaire a un serveur SQL 2005 ... de toute facon c'est un ordre Backup qui est passer derriere ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_ferservadou
Messages postés5Date d'inscriptionmercredi 7 novembre 2007StatutMembreDernière intervention29 juillet 2009 29 juil. 2009 à 16:42
À quoi sert la première partie, sinon à afficher les 3 noms ?
Chez moi, ça donne exactement le même résultat. J'ai donc sauvegardé msdb :
1> backup database msdb to disk = N'C:\sav\msdb.bak';
2> go
Processed 312 pages for database 'msdb', file 'MSDBData' on file 1.
Processed 1 pages for database 'msdb', file 'MSDBLog' on file 1.
BACKUP DATABASE successfully processed 313 pages in 0.175 seconds (14.616 MB/sec).
Ça marche super bien et ce n'est pas long !
Et maintenant, encore 2 questions :
1)- Comment faut-il faire pour restaurer la BD en cas de besoin ? Je pense qu'il faut lancer la commande
1> restore database msdb from disk = N'C:\sav\msdb.bak';
mais peut-être faut-il arrêter la BD auparavant ???
2)- Pour automatiser tout ça, je le mettrais bien dans une crontab (ou ce qui en tient lieu chez MS). Est-ce que je peux condenser en une seule ligne, du genre:
osql -S LANDESKCTL\LDMSDATA -U sa -P xxxx -Q "backup database msdb to disk = 'C:\sav\msdb.bak';"
nivsql
Messages postés159Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention14 décembre 20101 29 juil. 2009 à 17:35
La premiere partie est juste la pour agrémenter le tout ^^ ca affiche les bases de données présente sur l'instance dont le nom commence par "m" (choisi expret pour n'avoir que les bases systeme microsoft).
Il vas de soit que pour restaurer il faudra via TINA redescendre les fichiers bak sur le disque du serveur et passer la commande restore (Qui comme la commande backup possede un certain nombre de parametres, dans mon exemple les sauvegarde successive s'accumule dans msdb.bak au lieu de se remplacer, ce qui fait que si tu repasse le script ton fichier bak vas doubler de volume, je t'invite donc a regarder les options de la commande backup, de meme pour la commande restore un certain nombre d'option sont disponibles que je t'invite a consulter)
Tu peux utiliser l'option -Q d'OSQL pour passer une requete unitaire, ou l'option -i <nom de fichier> pour passer un fichier de commande SQL.
Pour sauvegarder ton instance tu dois sauvegarder toutes les bases dont master (surtout master).
Par ailleur, mettre ca en CRONTAB n'est peut etre pas la meilleur solution, en effet il se peut que TINA sauvegarde le repertoire de destination avant ou pendant le backup des bases, ce qui fait que tu n'aura rien d'exploitable coté TINA. En revanche TINA sait lancer des script tu peux donc faire executer ta commande par TINA directement.
nivsql
Messages postés159Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention14 décembre 20101 29 juil. 2009 à 18:15
Model peut etre interressant oui, dans le sens ou elle peut avoir été modifier pour que les nouvelles bases créées sur l'instances aient une configuration particuliere.
Par contre tu dois exclure TempDB qui n'est de toute facon pas sauvegardable.
Pour ce qui est de l'ordre de restauration tu dois commencer par master mais c'est une manoeuvre un peu particuliere car tu dois démarrer l'instance en mode monoutilisateur (flag particulier dans les parametres de démarrage sur service) et restaurer master dans ce mode particulier.
Ensuite tu restaure model et msdb, puis enfin tes bases utilisateurs.
Sinon pour ce qui est de la sauvegarde je te dirais d'utiliser la procédure stockée de francoissql (voir page 1 de ce sujet de discussion) avec les quelques corrections que j'ai pu lui donner en l'épurant de ce qui ne t'interresse pas (genre la compression des fichier bak en cab, le backup des logs etc). Tu n'a plus qu'a lancer la proc via OSQL ce qui vas te généré dynamiquement tous les fichiers bak de chacune de tes bases que tu n'aura plus qu'a sauvegarder avec TINA.
francoissql
Messages postés12Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention11 mai 2011 19 août 2009 à 16:03
Je reviens sur mes premiers message concernant la sauvegarde de mes bases
Tout se sauvegarde correctement, il n'y a aucun problème
Par contre, j'ai constaté que le volume de mes fichiers .BAK ne cessait d'augmenter. Je pensais que ce fichier BAK contenait uniquement la dernière sauvegarde et que les précédentes étaient écrasées. Or, ce n'est pas le cas, le fichier BAK contient toutes les sauvegardes ce qui pose un gros problème de place au fil des semaines.
Comment corriger ce problème afin que le BAK ne contienne que la dernière sauvegarde ?