lundi 31 août 2009

SqlServeur training - Maintaining Sql2008 database - Jour 1

Cette fois, ce training est orienté administration de sql serveur 2005/2008.
Cette journée a été consacrée a l'installation/upgrade de sql serveur et la gestion des DB et fichiers.
Voici ce que j'ai plus particulièrement retenu de cette journée.

Ne soyez pas choqué par mes largesses avec la langue française, ces notes sont rédigées à la volée à partir d'un cours en anglais.

Utilisation de plusieurs instances
Il est possible d'installer plusieurs instances de Sql Serveur sur une même machine.
Cela permet d'avoir un environnement de test entièrement distinct d'un environnement de production (sans pour autant avoir besoin d'un second serveur sql).
Les différentes instances installées sur un même serveur n'ont a proprement parlé "rien en commun" (ou presque).

Conseil de mise-à-jour
Plutôt que de faire une mise-à-jour "in-place" d'un serveur de production il est vivement recommandé de faire une mise-à-jour "side-by-side".
Ainsi donc, le nouveau serveur SQL fonctionnera comme une seconde instance sur le même serveur.
Les bases de données peuvent alors êtres migrées une par une vers la nouvelle instance de Sql serveur.
Cela évite de se trouver dans la situation genante ou l'une des DB ne fonctionne pas correctement sur la nouvelle installation et ou il faut tout restaurer en catastrophe dans l'ancien environnement.
Conséquences de l'upgrade side-by-side:
Les connections string des applications doivent être modifiés pour attaquer la nouvelle instance de serveur SQL, c'est à dire, Serveur name + Instance name (ce n'est pas toujours aisé suivant le logiciel).
Etant donné qu'il n'est pas possible de renommer une instance de Sql Serveur, une fois toutes les DB de l'ancienne instance de Sql Serveur migrées, on pourra désinstaller cette instance mais en aucun cas renommer la nouvelle instance. Choississez bien le nom de vos instances :-)

Aide à la mise-à-jour
Si l'on installe une nouvelle version de Sql serveur, ces outils ne sont pas utiles. Par contre, en cas de mise-à-jour, il est vivement conseillé d'utiliser ces outils lors de phase de mise à jour de sql serveur.

Upgrade Advisor
Avant de faire une mise-à-jour, il est possible d'installer le "Upgrade Advisor" de Microsoft sur la machine.
Ce dernier liogiciel disponible sur le DVD d'installation de Sql2008 permet de faire toute une série de vérification sur les schéma des DB et d'en obtenir une série de recommandations.
Cet outil est à utiliser avant et après une mise-à-jour Sql Serveur.

Upgrade Assitant (**)
Cet outil créé par des anciens de Microsoft est disponible sur le net à http://www.scalabilityexperts.com/.
Plus difficile a installer (car demandant une étape de configuration plus poussée), cet outil est bien plus complet que l'upgrade Advisor.
En effet, en plus d'analyser les schémas pour fournir des recommandations, cet outil capture également les Sql exécutés sur la DB à migrer pour ensuite les tester sur la DB target (nouvelle version de Sql Serveur).
Cet outil permettra d'identifier les éléments causant des problèmes lors de la migration (comme pertes de performances ou consommations de ressources).

Sql Serveur 2005 Surface Area Configuration
Lorsque l'on installe une nouvelle version de Sql serveur, tous les paramètres par défaut qui sont appliqués ne sont pas succeptible de provoquer des problèmes de sécurités. Par exemple, l'accès DAC, le CLR, XP_CmdShell et Ole Automation sont des fonctionnalités désactivées par défaut.
Par contre, lors d'une mise-à-jour, les paramètres Sql présents sur le système sont conservés et sont par conséquent des sources de problèmes de sécurité plus ou moins grave selon la situation.
C'est là qu'intervient le Surface Area Configuration de sql serveur 2005.
Cet outil disponible depuis le start menu (section Sql Serveur) présente toutes les "options" à risque avec la configuration actuelle ainsi qu'une description.
C'est également via cet outil que l'on active des options comme l'utilisation du CLR (.Net engine pour créer des fonction/trigger/stored proc dans sql serveur).
Pour Sql Serveur 2008, cet outil n'est plus disponible via le start menu mais reste accessible via l'import et l'évaluation du fichier "c:\program files\Microsoft sql server\100\tools\policies\database engine\1033\Surface Area Configuration *.xml" dans le Policy Management tools du management studio. 

Outils administratifs / maintenances
Sql 2005 BPA (best practice Advisor)
Cet utilitaire disponible en libre téléchargement depuis le site de Microsoft permet de faire une analyse de type "best practice" sur une base de donnée.
De cette analyse découle un rapport avec des recommandations. Cet outil devrait être utilisé de façon régulière afin de détecter les points faibles d'une configuration.
Au rang des vérifications l'on retrouve:
  • Vérification des settings de sécurité.
  • Vérification des "naming conventions".
  • Vérification des derniers backups (et quand).
  • Vérification des collations.
  • Vérification de la dernière exécution de DBCC (check intégrity).
Pour sql serveur 2008 cet outil est disponible depuis le management console.

System Configuration Manager (**)
En suivant les recommandations de Microsoft, on utilisera cet outil pour modifier la configuration des services de sql serveur.
Cet outil présente un arbre énumerant les différentes instances et services (database engine, reporting engine, integration service, etc) de Sql Serveur.
A partir de cet arbre, il est en autre possible de modifier le compte NT utilisé pour faire fonctionner l'un ou l'autre des services de sql serveur. Ce qu'il y a de bien avec cet outil, c'est qu'il adapte également les crédentials de l'utilisateur NT (celui faisant fonctionner le service) pour faire fonctionner correctement le service sql.
Cet outil permet également d'activer et configurer 

Policy Management (**)
Sql serveur 2008 dispose d'un outil de management des policies.
Ces policies permettent de construire des conditions vérifiables sur les objets sql (ou une partie de ceux-ci ... comme les tables d'une DB particulière).
Par exemple, s'assurer que toutes les views aient un nom commencant par "v" ou toutes les stored procedures ayant un nom commencant par "usp".
Ce module permet de construire des conditions très complexes.
Les policies peuvent êtres:
  •  Evaluées dans le but de fournir un rapport.
  • Contraignantes: empêchant la création de l'objet si la vérification de la condition échoue.
  • Non contraignantes: l'objet est créé mais le système enregistre un événement dans le log sql.
Configuration de l'option serveur ANSI NULL
A l'instar de DB2 ou Oracle, par défaut, Sql Serveur ne suis pas le standard ANSI Sql en ce qui concerne l'évaluation NULL (c'est la seule entorse de sql serveur par rapport au standard ANSI car suivre ce standard coûte beaucoup plus cher en temps cpu).
Pour sql serveur (en configuration par défaut), la concaténation de 'Test'+NULL donnera une valeur NULL. Ce qui n'est pas le cas de langages évolués comme Java ou la concaténation de 'DB'+NULL produit le résultat 'DB' ou encore des DB comme oracle. 
Il n'est donc pas rare de voir de développeur modifier l'option ANSI NULL de sql serveur pour qu'il corresponde a leur besoin. 
C'est une option à vérifier attentivement lors de l'installation d'une DB car elle est la source fréquente de problèmes.

our les produits fonctionnant sous Oracle/DB2 ou sql serveur.

Aucun commentaire: