Accueil > > > SQL SERVER - PROCÉDURE STOCKÉE QUI TRONQUE LES JOURNAUX DE LOGS
SQL SERVER - PROCÉDURE STOCKÉE QUI TRONQUE LES JOURNAUX DE LOGS
Information sur la source
Description
Voici une procédure stockée qui permet de maintenir la taille de tous les journaux de logs des bases utilisateurs d'un serveur à une taille maximum. Cela évitera de voir vos disques dur se remplir trop rapidement. Il est entendu que cette procédure stockée doit être lancée après la sauvegarde de toute vos bdd utilisateurs. La taille d'origine initialisée dans le code est de 128 MB, mais rien ne vous empêche de la modifier (SET @Size_Journal_Logs_Max = 128) Il suffit de créer cette procédure stockée dans votre base "master" par exemple et de l'exécuter pour que tous vos fichiers de logs soient vérifiés et tronqués, si besoin.
Source
- -- Procédure stockée permettant de tronquer le journal de logs de toutes les Bdd utilisateurs
- CREATE PROCEDURE SHRINKLOGS AS
- DECLARE
- @Name_DB varchar(100),
- @Name_Journal_Logs varchar(100),
- @Size_Journal_Logs integer,
- @Size_Journal_Logs_Max integer,
- @SQL varchar(500)
-
- -- Initialisation de la taille du journal de logs
- -- Si un journal de logs dépasse cette taille (en MB)
- -- il sera réduit à cette taille.
- SET @Size_Journal_Logs_Max = 128
-
- DECLARE CUR CURSOR FOR
- -- Recherche le nom des Bdd utilisateurs.
- SELECT name AS Name_DB
- FROM master.dbo.sysdatabases
- WHERE name NOT IN('master','msdb','model','tempdb','pubs')
- OPEN CUR
- FETCH CUR INTO @Name_DB
-
- WHILE (@@fetch_status=0)
- BEGIN
- -- Recherche le nom du journal de logs pour une Bdd.
- SET @Name_DB = RTRIM(@Name_DB)
- SET @SQL = 'SELECT name FROM '
- SET @SQL = @SQL + '[' + @Name_DB + ']'
- SET @SQL = @SQL + '.dbo.sysfiles WHERE status & CAST(0x40 AS INT) = CAST(0x40 AS INT)'
- --PRINT @SQL
- EXEC('DECLARE CUR2 CURSOR FOR '+ @SQL)
- OPEN CUR2
- FETCH NEXT FROM CUR2 INTO @Name_Journal_Logs
- SET @Name_Journal_Logs = RTRIM(@Name_Journal_Logs)
- --PRINT @Name_Journal_Logs
- CLOSE CUR2
- DEALLOCATE CUR2
-
- -- Recherche la taille du journal de logs (en MB)
- SET @SQL = 'SELECT SUM(size * 8)/1024 FROM '
- SET @SQL = @SQL + '[' + @Name_DB + ']'
- SET @SQL = @SQL + '.dbo.sysfiles WHERE name = ''' + @Name_Journal_Logs + ''''
- --PRINT @SQL
- EXEC('DECLARE CUR3 CURSOR FOR '+ @SQL)
- OPEN CUR3
- FETCH NEXT FROM CUR3 INTO @Size_Journal_Logs
- --PRINT @Size_Journal_Logs
- CLOSE CUR3
- DEALLOCATE CUR3
-
- -- Si la taille du journal de logs est supérieure à la taille max
- -- initialisée plus haut (@Size_Journal_Logs_Max) alors le journal de logs est tronqué.
- IF (@Size_Journal_Logs > @Size_Journal_Logs_Max)
- BEGIN
- --PRINT @Name_DB + ' => ' + @Name_Journal_Logs + ' : ' + CAST(@Size_Journal_Logs AS VARCHAR) + ' MB tronqué'
- EXEC ('BACKUP LOG [' + @Name_DB + '] WITH TRUNCATE_ONLY')
- EXEC ('USE [' + @Name_DB + '] DBCC SHRINKFILE ([' + @Name_Journal_Logs + '], ' + @Size_Journal_Logs_Max + ')')
- END
-
- FETCH CUR INTO @Name_DB
- END
- CLOSE CUR
- DEALLOCATE CUR
- GO
-- Procédure stockée permettant de tronquer le journal de logs de toutes les Bdd utilisateurs
CREATE PROCEDURE SHRINKLOGS AS
DECLARE
@Name_DB varchar(100),
@Name_Journal_Logs varchar(100),
@Size_Journal_Logs integer,
@Size_Journal_Logs_Max integer,
@SQL varchar(500)
-- Initialisation de la taille du journal de logs
-- Si un journal de logs dépasse cette taille (en MB)
-- il sera réduit à cette taille.
SET @Size_Journal_Logs_Max = 128
DECLARE CUR CURSOR FOR
-- Recherche le nom des Bdd utilisateurs.
SELECT name AS Name_DB
FROM master.dbo.sysdatabases
WHERE name NOT IN('master','msdb','model','tempdb','pubs')
OPEN CUR
FETCH CUR INTO @Name_DB
WHILE (@@fetch_status=0)
BEGIN
-- Recherche le nom du journal de logs pour une Bdd.
SET @Name_DB = RTRIM(@Name_DB)
SET @SQL = 'SELECT name FROM '
SET @SQL = @SQL + '[' + @Name_DB + ']'
SET @SQL = @SQL + '.dbo.sysfiles WHERE status & CAST(0x40 AS INT) = CAST(0x40 AS INT)'
--PRINT @SQL
EXEC('DECLARE CUR2 CURSOR FOR '+ @SQL)
OPEN CUR2
FETCH NEXT FROM CUR2 INTO @Name_Journal_Logs
SET @Name_Journal_Logs = RTRIM(@Name_Journal_Logs)
--PRINT @Name_Journal_Logs
CLOSE CUR2
DEALLOCATE CUR2
-- Recherche la taille du journal de logs (en MB)
SET @SQL = 'SELECT SUM(size * 8)/1024 FROM '
SET @SQL = @SQL + '[' + @Name_DB + ']'
SET @SQL = @SQL + '.dbo.sysfiles WHERE name = ''' + @Name_Journal_Logs + ''''
--PRINT @SQL
EXEC('DECLARE CUR3 CURSOR FOR '+ @SQL)
OPEN CUR3
FETCH NEXT FROM CUR3 INTO @Size_Journal_Logs
--PRINT @Size_Journal_Logs
CLOSE CUR3
DEALLOCATE CUR3
-- Si la taille du journal de logs est supérieure à la taille max
-- initialisée plus haut (@Size_Journal_Logs_Max) alors le journal de logs est tronqué.
IF (@Size_Journal_Logs > @Size_Journal_Logs_Max)
BEGIN
--PRINT @Name_DB + ' => ' + @Name_Journal_Logs + ' : ' + CAST(@Size_Journal_Logs AS VARCHAR) + ' MB tronqué'
EXEC ('BACKUP LOG [' + @Name_DB + '] WITH TRUNCATE_ONLY')
EXEC ('USE [' + @Name_DB + '] DBCC SHRINKFILE ([' + @Name_Journal_Logs + '], ' + @Size_Journal_Logs_Max + ')')
END
FETCH CUR INTO @Name_DB
END
CLOSE CUR
DEALLOCATE CUR
GO
Conclusion
Merci pour vos commentaires
Historique
- 30 mars 2006 15:20:22 :
- Ajout d'explications ...
- 03 avril 2006 09:51:02 :
- Evolution du code afin d'intégrer un nom de journal de logs non conforme (chiffre, espace, ...)
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Journal des transactions [ par syndrael ]
Bonjour,J'aimerais tout bonnement supprimer le journal des transactions d'une table de mon SQL Server. Or, quand j'appuie sur Supprimer j'ai une erreu
Journal de transaction(sql2000) erreur 5020 et dts (sqlexpress) ?? [ par io_ost ]
bonjour, SQL2000 : j'ai une base avec 270000 enrregistrements qui fais17 Mo sont journal fais 56 Mo comment est ce que je pourrais le vider si j'essay
IIF comment le faire avec du transact sql [ par Visso ]
Salut ,SalutUne question bête peut être mais il faut que je la pose j'ai une requête en access avec la fonction iff , j'aimerais la faire en même temp
Comment mettre à jour un champ ? [ par mdemo ]
Bonjour à tous,J'utilise Sql server 2005 et je ne suis pas une vedette...Ma question est simple: une table remplie de données, dont un champ nvarchar(
Pb taille de bdd [ par casy ]
Salut à tous,je me retrouve avec un gros problème (c'est le cas de le dire) sous SQLServer 2005J'ai une base de donnée totalement vierge (par rapport
restaurer sans le journal de log [ par gperuch ]
Bonjours,je dois remonter tous les jours un backup de la prod sur un autre serveur bidon pour donner en pature aux malades des statsils fonts leur re
Requête table intermédiaire (AND) [ par ikan66 ]
Bonjour à tous,Je souhaite écrire une requête permettant d'interroger une table intermédiaire comprenant les champs : journal_id et domaines_id. Table
Je Veux Creé un Fichier Journal d'une Table ? [ par Krayz ]
Bonjour, J'ai un tableau déja creé et je souhaite creé un new tableau don't lequel je met a chaque insertion d'un new client 2 colone l ID de client
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
PROCEDURE MYSQLPROCEDURE MYSQL par gearmat
Cliquez pour lire la suite par gearmat
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|