2010-07-27 4 views
2

Je viens de migrer une base de données SQL Server 2008 pendant que le personnel de vente allait déjeuner. J'ai effectué une sauvegarde complète puis copié la sauvegarde sur le nouveau serveur où je l'ai restaurée à la nouvelle installation de SQL Server.Pourquoi la base de données de mon serveur SQL "sauvegarde complète" ne contient-elle pas de données récentes?

Le personnel est revenu du déjeuner et m'a dit que quelques-unes des offres récentes qu'ils ont mises juste avant le déjeuner ne sont plus apparues dans le système. Après enquête, il semble que la sauvegarde complète n'incluait pas certaines des données les plus récentes qui ont été ajoutées à la base de données avant la sauvegarde.

Je soupçonne qu'il ya quelque chose que je ne comptabilise pas qui se rapporte au journal des transactions, mais n'étant pas un spécialiste de la MSSQL, je ne suis pas sûr de ce que je fais mal. Quelqu'un peut-il m'indiquer la bonne direction?

+0

Je vous recommande de lire cet article pour bien comprendre le fonctionnement des sauvegardes SQL. http://technet.microsoft.com/fr-fr/magazine/2009.07.sqlbackup.aspx –

Répondre

2

Avez-vous sauvegardé uniquement la base de données ou les journaux de transactions? Je suppose que vous n'avez pas sauvegardé les journaux de transactions, qui contiendront des transactions récentes qui n'ont pas encore été vidées dans le fichier mdb.

+0

Ils pourraient également avoir ajouté les données après la sauvegarde a été effectuée. – HLGEM

+0

Personne n'a ajouté de données après l'exécution de la sauvegarde. –

+0

J'ai fait une "sauvegarde complète" - je n'ai trouvé aucune option activée pour inclure ou exclure le journal des transactions, je devais donc supposer que c'était tout compris. –

0

C'est pourquoi vous ne faites jamais ces choses pendant une journée de travail! La prochaine fois, faites-le pendant le week-end et fermez la base de données aux utilisateurs en la mettant en mode mono-utilisateur. Ils pourraient avoir ajouté les données après votre sauvegarde ou pendant celle-ci si vous ne les avez pas verrouillées en premier.

+0

Non, ils ne l'ont pas fait. Il y en a juste quelques-uns et je leur ai dit à tous d'aller déjeuner. –

+0

S'il a été ajouté pendant la sauvegarde, il sera également inclus dans la sauvegarde complète. Les sauvegardes de base de données représentent l'ensemble de la base de données au moment où la sauvegarde est terminée. –

0

Les données peuvent avoir été saisies dans une transaction ouverte. Étant donné que la sauvegarde doit respecter le modèle ACID, si une transaction a été démarrée avant le début de la sauvegarde et n'a pas été validée au moment où la sauvegarde est terminée, la transaction sera restaurée lors de la restauration de la base de données.

+0

Je suis revenu environ une heure plus tard et j'ai essayé de faire une autre sauvegarde complète de la base de données originale, après avoir confirmé que les données "manquantes" étaient là, et la sauvegarde complète produisait toujours une version qui manquait les dernières lignes de données été ajouté dans la base de données. –

Questions connexes