Y a-t-il des meilleures pratiques pour la configuration d'un plan de maintenance dans SQL Server 2008? Actuellement, je supprime les sauvegardes de base de données et les journaux de transaction de plus de 40 heures, puis la sauvegarde. Problème que j'ai vu est que le journal des transactions est encore très grand. Devrais-je inclure une tâche de plan de bases de données de rétraction?
Si votre fichier journal augmente ce grand, alors vous faites au moins une de ces choses qui ne va pas:
BEGIN TRANSACTION
, verrouillé leur poste de travail et je suis allé en vacances.Beaucoup plus de détails à ce sujet peuvent être vus dans cette question:
Afin de réduire le journal pour le moment, si vous êtes dans un modèle de récupération complète et que vous souhaitez rester de cette façon, vous devez effectuer ces étapes et redémarrer votre chaîne de journal pour être en sécurité:
USE [master];
GO
ALTER DATABASE db_name SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
-- if you are already in simple, remove this line:
ALTER DATABASE db_name SET RECOVERY SIMPLE;
GO
CHECKPOINT;
GO
-- if you're already in simple, or want to stay that way, remove this line:
ALTER DATABASE db_name SET RECOVERY FULL;
GO
BACKUP DATABASE db_name TO DISK = 'path' WITH INIT, COMPRESSION;
GO
USE db_name;
GO
DBCC SHRINKFILE(N'db_name_log', 30); -- pick some size that makes sense
GO
USE [master];
GO
-- if recovery is full, re-init log chain, otherwise remove this line:
BACKUP LOG db_name TO DISK = 'path' WITH INIT, COMPRESSION;
GO
ALTER DATABASE db_name SET MULTI_USER;
GO
J'ai commenté des lignes qui doivent être supprimées si vous êtes déjà simple (très improbable) ou si vous souhaitez passer à simple.
Vous ne voulez certainement pas de rétrécissement de fichier programmé, sinon vous vous retrouverez avec une fragmentation horrible du disque. Faites-le manuellement au cas par cas, et seulement lorsque vous êtes sûr que la croissance excessive était une fluke, par exemple en raison de la transmission des sauvegardes qui ne sont pas exécutées, ou un ETL massif qui ne devrait pas se produire régulièrement.
Faites des sauvegardes assez souvent (et gardez-les assez longtemps) pour répondre aux exigences de conservation de votre entreprise/application. Considérez également que vous devriez également créer des sauvegardes de journal suffisamment pour conserver le journal des transactions dans une taille acceptable. Dans mon cas, je courais des sauvegardes de journal toutes les heures en semaine, mais il y a beaucoup de place pour ajuster le calendrier à vos besoins. Exécutez-les plus souvent pour réduire le gonflement de la bûche, et moins souvent pour rétablir la séquence du journal moins de douleur.
Votre journal de transaction est toujours très important probablement en raison de la quantité d'activité. Si vous souhaitez pouvoir restaurer sur le point de pointe (mode de récupération complète) et contrôler le journal des transactions, les sauvegardes de journal de transaction plus fréquentes sont la réponse.
Nous avons un 300 gb =OLTP Database avec un espace de journal alloué de 30 Go. J'ai un travail en place pour prendre des sauvegardes de journal toutes les 30 minutes et conserve bien le fichier journal sous l'espace alloué (même pendant L'index mensuel reconstruit. La taille de la sauvegarde des journaux pendant les reconstitutions sera grande, cependant).
Rétrécissement n'est pas une bonne pratique du tout.
tilisez le plan de maintenance pour planifier des sauvegardes DB dans SQL Server.
Pour la récupération de point à temps, créez complet Sauvegarde de la base de données programmée quotidiennement (à minuit) et les sauvegardes de journal de transaction planifiées toutes les 4 heures.
Pour aucune récupération de temps à temps, modifiez le modèle de récupération DB comme SIMPLE avec la sauvegarde de la base de données programmée quotidiennement (à minuit).
Vous pouvez également vérifier les transactions ouvertes à l'aide de DBCC Opentran puis tuez cette transaction à l'aide de Kill Spid
Utilisez DBCC SQLPERF (logspace) Pour obtenir l'état de la taille de votre fichier journal et de l'espace réel utilisé dans ce fichier journal. Si l'espace libre est beaucoup plus que de réduire le fichier journal de la base de données.
Même les plans de maintien de la maintenance offrent des avantages, tels que l'interface graphique et le soutien à des emplois indigènes, certains inconvénients que vous devriez être au courant. Vous devez conserver à la fois des plans de sauvegarde de maintenance et des emplois de l'agent afin de maintenir la cohérence et d'éviter les collisions de processus. De plus, il n'y a pas de détection de collision et vos tâches peuvent échouer si des tâches simultanées sont planifiées sur la même base de données. Donc, un test détaillé doit être effectué à chaque fois que vous définissez des plans de maintenance