web-dev-qa-db-fra.com

Historique des événements de croissance et de réduction de SQL Server

Existe-t-il un moyen de consulter l'historique complet des événements de croissance et de réduction des dernières semaines/mois sur SQL Server 2014? (De nouvelles instances à prendre en charge, ont remarqué du système de billetterie qu'elles ont un historique précédent de "journal de lecteur plein", donc je voudrais creuser la cause racine avant que cela ne se reproduise.)

Cela a été utile: Identifier les événements de croissance de fichiers . Est apparu avec la requête ci-dessous, mais elle n'affiche aucun des événements de réduction de journal "manuels", juste les événements "auto". Suis-je en train de faire ça de la mauvaise façon, n'importe quel autre endroit pour chercher des informations passées?

select
    te.name as event_name,
    tr.DatabaseName,
    tr.FileName,
    tr.IntegerData,
    tr.IntegerData2,
    tr.LoginName,
    tr.StartTime,
    tr.EndTime
--select * 
from 
sys.fn_trace_gettable(convert(nvarchar(255),(select value from sys.fn_trace_getinfo(0) where property=2)), 0) tr
inner join sys.trace_events te on tr.EventClass = te.trace_event_id
where 
tr.EventClass in (93, 95) --can't identify any other EventClass to add here
order by 
EndTime desc;
7
Razvan Zoitanu

Existe-t-il un moyen de consulter l'historique complet des événements de croissance et de réduction des dernières semaines/mois sur SQL Server 2014

Oui, il existe un moyen, ou devrais-je dire différentes façons d'enregistrer les données collectées à partir de la trace par défaut, comme expliqué ici Collecte des informations dans la trace par défaut

  1. Nous pourrions interroger les fichiers de trace par défaut et enregistrer les valeurs agrégées
  2. Nous pourrions obtenir la définition de la trace par défaut et créer un ensemble de collections, qui peut être utilisé avec Management Data Warehouse, qui est intégré à SQL Server.
  3. Nous pourrions obtenir la définition de la trace par défaut et créer une trace distante à partir d'un autre serveur et enregistrer les données dans une table de base de données
  4. Nous pourrions utiliser un script robocopy pour copier les fichiers de trace de notre serveur vers un autre dossier ou une machine distante, ce qui laissera les fichiers sur le disque plus longtemps, nous donnant la possibilité de les analyser

Est apparu avec la requête ci-dessous, mais elle n'affiche aucun des événements de réduction de journal "manuels", juste les événements "auto". Est-ce que je fais cela de la mauvaise façon, n'importe quel autre endroit pour rechercher des informations passées? Pour capturer les événements de rétrécissement manuel, j'utilise la requête comme ci-dessous:

SELECT 
    TextData,
    HostName,
    ApplicationName,
    LoginName, 
    StartTime  
FROM 
[fn_trace_gettable]('C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log\log_75.trc', DEFAULT) 
WHERE TextData LIKE '%SHRINKFILE%'; ----- Location of default trace will be different ,so kindly check that accordingly

La raison probable de votre requête n'affiche pas les événements de croissance ou de réduction manuels car vous utilisez des événements tels que (93, 95) qui sont destinés aux événements de croissance automatique

3
KASQLDBA

Existe-t-il un moyen de consulter l'historique complet des événements de croissance et de réduction des dernières semaines/mois sur SQL Server 2014?

Il existe un moyen simple d'obtenir des informations sur les événements de croissance automatique des fichiers de données/journaux et de réduction automatique à partir des rapports de base de données. Le rapport récupère les données de la trace par défaut. Je ne sais pas dans quelle mesure votre rapport serait récent et dépend du moment où la trace par défaut a été reconduite. La taille par défaut est de 20 Mo, après quoi elle sera restaurée et notez également qu'après le redémarrage de SQL Server, la trace sera restaurée

Connectez-vous à l'instance SQL Server, puis cliquez avec le bouton droit sur la base de données, puis sélectionnez les rapports, puis les rapports standard, puis cliquez sur l'utilisation du disque.

Dans le rapport qui vient chercher Data/log file autogrowt auto shrink events et développez le + sign c'est juste en dessous du rapport circulaire d'utilisation. Le rapport ressemblerait à ci-dessous.

Dans mon cas, il a uniquement signalé un événement de croissance automatique car je n'ai pas de rétrécissement automatique ni aucune activité de rétrécissement en cours, ce qui, je suppose, est tout à fait mauvais.

enter image description here

10
Shanky