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
Sommaire
Par: Eli Leiba | Dernière mise à jour: 2019-07-17 | Commentaires |
Administration de base de donnéesproblè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:
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.
Dernière mise à jour: 2019-07-17
À propos de l'auteur
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