Non classé

Trouver la dernière heure de redémarrage de Windows Server et le dernier redémarrage de SQL Server – Les meilleures astuces pour son serveur

Le 17 juillet 2019 - 4 minutes de lecture

Par: Eli Leiba | Dernière mise à jour: 2019-07-17 | Commentaires | Conseils connexes: Plus> Administration de base de données

problème

Je dois trouver rapidement la dernière heure de redémarrage du serveur et
la dernière fois que le service SQL Server a été redémarré. Dans cette astuce, nous examinons un simple
procédure stockée que vous pouvez ajouter à la boîte à outils DBA SQL Server.

solution

La solution consiste à créer une procédure stockée T-SQL dans seigneur
base de données, appelée dbo. usp_FindServerLastRebootDateTime
ce sera la dernière fois que le serveur a été redémarré et la dernière heure de redémarrage
Service SQL Server.

Pour obtenir les informations pour le redémarrage du serveur, il faut

activer xp_cmdshell
qui exécutera la commande shell 'Wmic nous
obtenez lastbootuptime & # 39;.
L’interface WMIC a été introduite dans Windows 2000 en tant que shell de ligne de commande du sous-système WMI. WMI contient tout
informations sur l'ordinateur Windows local. Vous pouvez obtenir des informations telles que Windows
version, mémoire, numéro de série de l'ordinateur ainsi que la date et l'heure de la dernière
reboot.

La sortie de la commande WMIC est la suivante: une année à 4 chiffres, 2 chiffres pour
mois, jour, heure, minutes et secondes. Les millisecondes sont affichées après
signe de point. La procédure T-SQL extrait les années, mois, jours, heures, minutes et
secondes et le renvoie dans la valeur NVARCHAR (20). Les millisecondes sont ignorées
dans la sortie T-SQL, mais peut facilement être ajouté si nécessaire.

La deuxième valeur du paramètre provient des tables système de la base de données et est similaire.
La date et l'heure de création de la base de données TempDB en cours de restauration
Le service SQL Server redémarre.

Procédure stockée SQL Server pour rechercher la date de redémarrage du système d'exploitation la plus récente et le dernier serveur SQL
Date de redémarrage

Voici le code T-SQL pour la procédure stockée:

UTILISER le maître
GO

- ============================================== = =================================
- Auteur: Eli Leiba
- Date de l'équipe: 2019-06
- Nom de la procédure: dbo.usp_FindErrorsInDefTrace
- Description: cette procédure recherche la date et l'heure de redémarrage du système d'exploitation et
- Date et heure du dernier redémarrage du service SQL Server.
- ============================================== = ==================================
Créer une procédure dbo.usp_FindServerLastRebootDateTime
OMS
BEGIN
DECLARE @ rebootDT NVARCHAR (20)
DECLARE @SQLServiceLastRestrartDT NVARCHAR (20)
DÉCLARE @DosStmt NVARCHAR (200)
DECLARE @dosResult TABLE (ligne NVARCHAR (500))

Entrez NOCOUNT ON

SET @dosStmt = & # 39; wmic nous obtenons le bootbootuptime & # 39;

INSERT TO @dosResult EXEC sys.xp_cmdShell @dosStmt

SELECT @ rebootDT = CONCAT (
SUBSTRING (line, 1, 4), & # 39; - & # 39;,
SUBSTRING (line, 5, 2), & # 39; - & # 39;,
SUBSTRING (line, 7, 2), & # 39; & # 39;,
SUBSTRING (line, 9, 2), & # 39 ;: & # 39;,
SUBSTRING (line, 11, 2), & # 39 ;: & # 39;,
SUBSTRING (ligne, 13, 2)
)
DE @dosResult
WHERE CHARINDEX (& Line, 1)> 0

SELECT @SQLServiceLastRestrartDT = CONVERTISSEUR (NVARCHAR (11), create_date, 23) + & # 39; & # 39; + CONVERT (VARCHAR (8), create_date, 108)
De sys.databases
Où rtrim (ltrim (upper ([name]))) = & # 39; TEMPDB & # 39;

SELECT @ rebootDT en tant que OSServerRebootDateTime, @SQLServiceLastRestrartDT en tant que SQLServiceRestartDateTime

RÉGLER NOCOUNT
ENDS
GO

Voici un exemple en utilisant la procédure:

EXEC master.dbo.usp_FindServerLastRebootDateTime 

Et les résultats sont:

sortie de requête
Prochaine étape
  • Vous pouvez créer et compiler cette procédure simple dans la vôtre seigneur
    base de données et l'utiliser comme un simple outil d'informations sur le serveur
    les dernières dates et heures de redémarrage et de redémarrage du service SQL Server.
  • La procédure a été testée sur SQL Server 2014 et 2017, mais fonctionnera avec
    SQL Server 2005 et ultérieur.
  • Assurez-vous que le & # 39; xp_cmdshell & # 39; est 1.
    Exécutez sp_configure et vérifiez que config_value = 1 et run_val = 1, comme ci-dessous.
sp_configure les valeurs pour xp_cmdshell

Dernière mise à jour: 2019-07-17

obtenir des scripts

bouton suivant

À propos de l'auteur
MSSQLTips auteur Eli Leiba

Eli Leiba est un administrateur de bases de données principal, un enseignant et un consultant principal en bases de données possédant 19 années d'expérience dans le SGBDR.

Voir tous mes conseils

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.