Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

SQL Server – Configuration de la base TempDB (Partie 1/2)

Introduction

Ce post est composé de deux parties :

  • Recommandations sur l’emplacement et la taille de TempDB (Partie 1)
  • Répartition de la base TempDB sur plusieurs fichiers (Partie 2)

Présentation de la base TempDB :

La base TempDB est une base temporaire régénérée à chaque démarrage du serveur SQL, cette base est accessible à tous les utilisateurs (il est possible de retirer l’accès à cette base aux utilisateurs, mais cela n’est pas conseillé car la base TempDB est utilisé dans des opérations de routines).

Cette base, de par sa nature temporaire, ne permet pas les actions d’administrations suivantes : Sauvegarde/Restauration, Changement du “Recovery Model”.

Dans cette première partie nous verrons comment déplacer la base TempDB vers un stockage dédié.

Recommandations sur l’emplacement et la taille de TempDB

Recommandations Générales relatives à l’emplacement des fichiers de bases de données

De manière générale, il est recommandé de séparer les fichiers Data, Logs et temp. L’objectif de cette séparation est de permettre une meilleure séparation de la charge à travers différents disques physiques.

Actuellement, avec l’augmentation des solutions de stockage virtuel, la séparation des fichiers n’est parfois plus nécessaire pour des raisons de performances, néanmoins, séparer les fichiers à travers différents disques logiques permet plus de souplesse dans l’administration.

Dans le cas d’une infrastructure SQL utilisant un stockage partagé, le déplacement de la base TempDB vers un stockage local peut apporter les bénéfices suivants :

  • Meilleure performances notamment lors de l’utilisation de disques rapides (SSD),
  • Certaines bases TempDB peuvent être très sollicitées entrainant une baisse de performance générale sur stockage partagé.

Certains administrateurs peuvent être tentés de déplacer la base TempDB vers un stockage local, attention toutefois à bien valider les points suivants pour une configuration cluster :

  • Utiliser une base TempDB locale dans une configuration Cluster n’est supporté que depuis SQL Server 2012 (les versions précédentes requièrent que toutes les bases soient présentes sur le stockage partagé),
  • Utiliser le même emplacement pour TempDB à travers tous les nœuds du cluster, le compte de service SQL Server doit avoir un droit Lecture/Ecriture sur chacun des dossiers.

Recommandations Générales relatives à la taille des fichiers de bases de données

Lors de la création d’une nouvelle base de données, il est possible de préciser les éléments suivants relatifs à la taille de la base de données :

  • Taille initiale de la base de données,

La taille initiale de la base de donnée doit correspondre à la taille que la base va occuper à terme, ce afin d’éviter des actions d’expansion de la base (Autogrowth) qui en plus d’être lourdes entraînent une fragmentation des fichiers ainsi qu’une indisponibilité de ceux-ci durant l’expansion.

  • Taille maximum de la base de données,

A moins de parfaitement maitriser la taille maximum que la base de données doit avoir, il est préférable de conserver à “Unlimited” la taille maximum d’une base.

  • Autogrowth de la base de données

La fonction Autogrowth permet d’automatiquement augmenter la taille des fichiers de la base de données, ce qui permet une administration plus simple. L’opération d’autogrowth est généralement lourde (à moins d’utiliser l’IFI, Instant File Initialization) et comprends plusieurs contraintes.

Il est donc préférable d’éviter qui doit être considéré comme une solution de fortune. L’idéal en l’absence d’informations précises concernant la taille de la base est d’analyser l’évolution de la base en paramétrant un autogrowth fixe en MB, puis après une période d’analyse suffisante, de paramétrer la taille des fichiers utilisés par la base à une valeur légèrement supérieure à celle constatée (cette préconisation s’applique d’autant plus à la base TempDB, celle-ci étant recréée à chaque démarrage de l’instance SQL).

Afin d’estimer la taille à positionner pour l’Autogrowth, il est possible de visualiser la fréquence d’autogrowth d’une base depuis le rapport Disk de celle-ci :

clip_image001

Réalisation

Afin de déplacer la base TempDB, voici les actions à réaliser :

1. Récupérer l’emplacement actuel de la base

Use master
GO
SELECT
name AS [LogicalName]
,physical_name AS [Location]
,state_desc AS [Status]
FROM sys.master_files
WHERE database_id = DB_ID(N’tempdb’);
GO

clip_image002[5]

2. Déplacer les fichiers utilisés par TempDB (attention à veiller à ce que le compte du service SQL Server y ait un droit de Lecture/Ecriture)

USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = ‘T:\MSSQL\DATA\tempdb.mdf’);
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = ‘T:\MSSQL\DATA\templog.ldf’);
GO

3. Redémarrer le service SQL Server

Verification

Vérifier le nouvel emplacement des fichiers TempDB :

Use master
GO
SELECT
name AS [LogicalName]
,physical_name AS [Location]
,state_desc AS [Status]
FROM sys.master_files
WHERE database_id = DB_ID(N’tempdb’);
GO

SQL Server – Configuration de la base TempDB (Partie 2/2)

Introduction

Ce post est composé de deux parties :

  • Recommandations sur l’emplacement et la taille de TempDB (Partie 1)
  • Répartition de la base TempDB sur plusieurs fichiers (Partie 2)

Dans cette seconde partie nous verrons comment repartir la base TempDB à travers plusieurs fichiers comme Microsoft le recommande.

Recommendation

Bien que Microsoft recommande de répartie la base TempDB à travers autant de fichiers que de processeurs logiques présents sur le serveur et ce jusqu’à 8 fichiers, dans le cas d’un serveur avec plus de 8 CPU, si malgré l’utilisation de 8 fichiers la base TempDB souffre toujours de lenteurs, Microsoft préconise d’augmenter le nombre de fichiers par un multiple de 4.

Différents membres de la communauté SQL s’accordent à penser qu’au-delà de 8 fichiers, le gain en performance seras négligeable par rapport à l’effort d’administration.

Réalisation

1. Récupérer le nombre de CPU logique du serveur SQL

clip_image001

2. Ajouter trois fichiers TempDB sur trois disques différents (attention à veiller à ce que le compte du service SQL server y ait un droit de Lecture/Ecriture), il est préférable d’avoir des options de tailles et d’Autogrowth identiques

ALTER DATABASE tempdb

ADD FILE (NAME = tempdev2, FILENAME = ‘W:\tempdb2.mdf’, SIZE = 1024);

ALTER DATABASE tempdb

ADD FILE (NAME = tempdev3, FILENAME = ‘X:\tempdb3.mdf’, SIZE = 1024);

ALTER DATABASE tempdb

ADD FILE (NAME = tempdev4, FILENAME = ‘Y:\tempdb4.mdf’, SIZE = 1024);

GO

SCOM – Les Management Packs HP

Si vous disposez de matériel Hewlette Packard/HPE (Proliant, BladeSystem) dans votre parc, vous avez probablement déployé le Management Pack qui va avec… ou peut-être avez-vous abandonné au vu de la difficulté pour trouver les bonnes versions, les bons liens, la bonne documentation etc.

Voici donc un résumé qui devrait vous simplifier la tâche !

Télécharger les Management Packs

Première étape de votre quête : télécharger les management packs ! Entre les liens corrompus, les fichiers sans rapport, les différentes versions… difficile de s’y retrouver.

Ne cherchez plus, les fichiers contenant les derniers management packs se trouvent ici : https://h20392.www2.hpe.com/portal/swdepot/displayProductInfo.do?productNumber=Z7500-63235

Une fois enregistré et connecté, téléchargez le fichier HP OneView for Microsoft System Center 8.0 ZIP – October 2015. Il contient beaucoup de choses inutiles pour ce qui nous intéresse, mais aussi et surtout le fichier hpscomkit-x64-3.2.1.exe avec tous les management packs et les consoles nécessaires (à exécuter en tant qu’administrateur pour éviter toute mauvaise surprise !)

clip_image002

Tableau de synthèse

Commençons par un tableau synthétique de ce qui est supporté à travers quel management pack, nous détaillerons par la suite les différentes possibilités :

clip_image003

Supervision Agentless

La supervision sans agent du matériel HP est distincte de la supervision sans agent au sens SCOM du terme : il s’agit ici de déployer le service Device Management Service (DMS) et sa console Device Management Console (DMC), puis d’y renseigner tous les matériels HP que vous souhaitez superviser sans agent.

Cette console DMC permet d’ajouter trois types de matériel :

– Le mode BladeSystem pour les chassis, via leur Onboard Administrator (v4.01 et supérieures)

– Le mode Linux (RHEL5-6-7, SLES10-11-12)/ESX 4.x (mais pas ESX 5.x et supérieurs !)

– Le mode Agentless Server, par défaut en quelque sorte, qui supporte tous les serveurs Gen8 et supérieurs via leur iLO quel que soit le système d’exploitation (Windows, Linux, ESX…).

clip_image005

Notez également qu’il est vivement recommandé d’installer le DMS sur un serveur qui n’est pas un serveur SCOM, ou au moins un serveur SCOM n’effectuant pas de supervision réseau car le service peut utiliser SNMP pour communiquer avec les différents matériels !

Il faut toutefois que le serveur qui héberge DMS dispose d’un agent SCOM.

clip_image006

Agentless Management Service

L’AMS est un module complémentaire qui permet d’obtenir plus d’informations en cas de supervision Agentless.

Son installation est détaillée dans le document suivant (pages 113 et suivantes) : http://h20564.www2.hpe.com/hpsc/doc/public/display?docId=c03334051

clip_image008

Cas particulier

Supervision ESX4 via le mode Linux/ESX, supervision tous OS à partir des Gen8 pour le mode Agentless Server… Mais alors, qu’en est-il des serveurs Gen6 ou 7 sous ESX5.x, que l’on retrouve parfois ?

Eh bien, ils ne sont tout simplement pas supportés, comme le confirme Stephan Roth qui a posé la question à HP Suisse : https://stefanroth.net/2012/11/04/scom-2012-hp-hardware-monitoring-on-vmware-esxi-servers/

Supervision de serveurs sous Windows :

La solution la plus simple pour superviser les serveurs (toutes générations) sous Windows est de d’abord déployer l’agent HP Insight, puis d’utiliser les MP Proliant SNMP et WBEM : la découverte se fera alors automatiquement, à la façon « SCOM » habituelle en quelque sorte.

Il n’est donc plus nécessaire dans ce cas d’ajouter chaque serveur dans la console DMC, ce qui simplifie grandement la gestion. De plus, ce mode permet de superviser toutes les générations de serveurs HP et pas uniquement les Gen8 et supérieurs.

Il s’agit donc clairement de la solution à préférer pour les serveurs Windows !

Pour aller plus loin

Les documents à jour concernant la supervision du matériel HP sont eux aussi assez compliqués à trouver.

En voici deux qui vous permettront de mieux cerner la problématique :

Managing Mixed Environnements with HPE SCOM MP : http://h20565.www2.hpe.com/hpsc/doc/public/display?sp4ts.oid=5390822&docId=emr_na-c04347838&docLocale=en_US

HPE SCOM Integration kit : http://h20565.www2.hpe.com/hpsc/doc/public/display?sp4ts.oid=5390822&docId=emr_na-c04605146&docLocale=en_US