Vous êtes sur la page 1sur 93

ÉCOLE SUPÉRIEURE DE GESTION

ET D’ADMINISTRATION DES ENTREPRISES


Agrément définitif par Arrêté n°4677/MES/CAB du 05 Juillet 2017
Accréditée par le Conseil Africain et Malgache pour l’Enseignement Supérieur (CAMES)
BP : 2339 – Brazzaville – CONGO
E-mail : esgae@esgae.org Site web : www.esgae.org

Département Licence

ADMINISTRATION SQL SEVER

Parcours
Licence 3 – Génie Logiciel

Enseignants
Equipe pédagogique
ADMIN SQL SERVER
ADMIN SQL SERVER

Table des matières


CHAPITRE 1 : PRESENTATION DE SQL SERVER ......................................................................................3
Section 1 : Comprendre le fonctionnement de SQL SERVER .............................................................3
Section 2 : Les composants de SQL SERVER .....................................................................................4
Section 3 : L’architecture globale de SQL SERVER ............................................................................5
Section 4 : L’architecture d’une base de donnée .............................................................................5
CHAPITRE 2 : INSTALLATION ET CONFIGURATION DE SQL SERVER .......................................................8
Section 1 : Préparer l’installation.....................................................................................................8
Section 2 : Installation manuelle de SQL SERVER .............................................................................9
Section 3 : Installation automatique de SQL SERVER ...................................................................... 17
Section 4 : SQL SERVER Management Studio ................................................................................. 18
Section 5 : SQLCMD....................................................................................................................... 19
CHAPITRE 2 : LES BASE DE DONNEES SOUS SQL SERVER .................................................................... 20
Section 1 : Architecture globale ..................................................................................................... 20
Section 2 : Création d’une base de données .................................................................................. 22
Section 3 : Gérer une base de données ......................................................................................... 24
Section 4 : Les groupes de fichiers ................................................................................................. 25
Section 5 : Le partitionnement ...................................................................................................... 28
Section 6 : Configuration d’une base de données .......................................................................... 31
Section 7 : Les transactions ........................................................................................................... 33
Section 8 : Le mode de récupération sous SQL SERVER .................................................................. 34
Section 9 : La compression des données........................................................................................ 36
CHAPITRE 4 : SAUVEGARDE DES BASE DE DONNEES SQL SERVER ...................................................... 41
Section 1 : Introduction à la sauvegarde ........................................................................................ 41
Section 2 : Sauvegarde Complète .................................................................................................. 43
Section 3 : Sauvegarde différentielle ............................................................................................. 46
Section 4 : Sauvegarde du journal de transaction .......................................................................... 46
Section 5 : Sauvegarde de groupe de fichier .................................................................................. 47
CHAPITRE 5 : RESTAURATION DES BASES DE DONNEES SQL SERVER .................................................. 49
Section 1 : Les pré-requis de la restauration .................................................................................. 49
Section 2 : Restauration des bases de données SQL SERVER .......................................................... 50
Section 3 : Capture instantanées de base de données ................................................................... 52
CHAPITRE 6 : IMPORTATION ET EXPORTATION DE DONNEES ............................................................ 56
Section 1 : Introduction aux outils d’import-export ....................................................................... 56
Section 2 : SSIS (SQL SERVER INTEGRATION SERVICES) .................................................................. 57
Section 3 : BCP (BULK COPY PROGRAM) ........................................................................................ 59

Page | 1
ADMIN SQL SERVER

Section 4 : BULK INSERT ................................................................................................................ 60


CHAPITRE 7 : GESTION DE LA SECURITE D’ACCES ............................................................................... 61
Section 1 : Authentification SQL SERVER ....................................................................................... 61
Section 2 : Les credentials ............................................................................................................. 63
Section 3 : Les utilisateurs de base de données ............................................................................. 64
Section 4 : Les schémas ................................................................................................................. 66
Section 5 : Gestion des droits sous SQL SERVER ............................................................................. 67
Section 6 : Gestion des rôles ......................................................................................................... 69
Section 7 : Contexte d’exécution ................................................................................................... 71
CHAPITRE 8 : AUTOMATISATION DE LA GESTION DE SQL SERVER ...................................................... 72
Section 1 : Agent SQL SERVER ....................................................................................................... 72
Section 2 : Configuration de la messagerie .................................................................................... 72
Section 3 : Les opérateurs ............................................................................................................. 73
Section 4 : Les alertes .................................................................................................................... 73
Section 5 : Les travaux................................................................................................................... 75
CHAPITRE 9 : MAINTENANCE DES BASES DE DONNEES SQL SERVER .................................................. 76
Section 1 : Maintenance d’une base de données ........................................................................... 76
Section 2 : Plan de maintenance.................................................................................................... 76
CHAPITRE 10 : AUDIT DES ENVIRONNEMENTS SQL SERVER ............................................................... 81
Section 1 : Audit au niveau serveur ............................................................................................... 81
CHAPITRE 11 : SURVEILLANCE DE SQL SERVER................................................................................... 85
Section 1 : Travailler avec le moniteur de performance ................................................................. 85
Section 2 : Définir ses propres compteurs de performance ............................................................ 86
CHAPITRE 12 : DEPANNAGE DES PROBLEMES D’ADMINISTRATION DE SQL ET MISE EN MIROIRE....... 87
Section 1 : Corrélation des fichiers de trace ................................................................................... 87
Section 2 : SQL Tunning Advisor ou Assistant Paramétrage du moteur de base de données .......... 87
Section 4 : Configuration de la mise en miroir ............................................................................... 90

Page | 2
ADMIN SQL SERVER

CHAPITRE 1 : PRESENTATION DE SQL SERVER


Section 1 : Comprendre le fonctionnement de SQL SERVER

Nous avons deux types de serveur pour les environnements dans lequel SQL SERVER peut être
déployer :

 OLTP (Online Transactional Processing)


o Serveur transactionnel : c’est un serveur sur lequel un certain nombre de transaction
de type LMD (Langage de manipulation de données)
 OLAP (Online Analytical Processing)
o Serveur décisionnel ou data warehouse : un entrepôt de donnée ou sera stocker
l’ensemble de données consolidées provenant de différentes sources (Oracle, MySQL,
PostgresSQL...)
o Cube OLAP ou cube multidimensionnel

Quand on est sur une serveur OLTP, c’est des petites transactions qui consomment peu de ressource
CPU mais vous pouvez en avoir beaucoup. Par contre un serveur OLAP doit avoir une capacité de
traitement plus élevée.

Nous avons différents types d’architectures d’implémentation de SQL SERVER :

 Nous pouvons avoir un client lourd qui attaque directement une base de données SQL SERVER.
Les requêtes peuvent être lancer via un client lourd connecté via ODBC et le serveur va
répondre par rapport à la requête
 Nous avons une architecture trois tiers, nous avons des postes qui accèdent en clients léger
via un serveur d’application et le serveur d’application va interroger SQL SERVER pour extraire
les données

Page | 3
ADMIN SQL SERVER

Nous avons différentes sources de données connectées à un ETL (Talend par exemple), ce dernier va
extraire les données de ses différentes sources, les transformées et ensuite les chargées d’un entrepôt
de données.

Section 2 : Les composants de SQL SERVER

Le moteur de données de SQL SERVER est composé de plusieurs logiciels, la plupart vont s’exécuter
sous forme de service, certains possèdent des interfaces, certains via une ligne de commande.

Les principaux composants sont :

 SQL SERVER qui est une instance SQL, c’est le serveur de base de données il s’exécute en tant
que service windows
 SQL AGENT, c’est le composant qui gère l’exécution des tâches planifiées, la surveillance de
SQL SERVER et le suivi des alertes. Il s’exécute en tant que service Windows, il est directement
lié à une instance SQL SERVER
 Microsoft full Text Search qui permet de gérer l’indexation des documents de type texte, gérer
les recherches par rapport aux mots
 SQL SERVER INTERGRATION SERVICES (SSIS), un outil d’importation et d’exportation des
données, permet de faire de la transformation et du transfert de données, il intègre des
assistants pour créer un ETL
 SQL SERVER ANALYSIS SERVICES (SSAS), est un outil d’analyse OLAP et Data mining de
Microsoft qui permet de construire les cubes OLAP pour des projets décisionnels.
 SQL SERVER REPORTING SERVICES (SSRS), permet de créer des rapports pour différentes
sources de données. Créer des rapports de types interactifs, tabulaires, graphiques ou libre à
partir de source de données XML, relationnelle et multidimensionnelles
 Réplication de données, permet de positionner les données au plus près des utilisateurs et de
réduire le temps de traitement
 SERVICE BROKER permet un travail en mode asynchrone pour faciliter la gestion des pics de
forte activité en stockant les demandes de travail avant de les traiter.

Page | 4
ADMIN SQL SERVER

 CLR, l’intégration du CLR dans SQL SERVER permet de développer les procédures et fonctions
en utilisant les langages VB.NET et C#

Section 3 : L’architecture globale de SQL SERVER

Une instance SQL SERVER est constituée de :

 Une instance par défaut : identifié par le nom réseau de l’ordinateur sur lequel elle s’exécute
 Une instance nommée : identifié par le nom réseau de l’ordinateur sur lequel elle s’exécute
suivi d’un nom instance

Pour pouvoir travailler sur une instance il faut installer un certain nombres d’outils parmi lesquels :

 SQL SERVER MANAGEMENT STUDIO : permet de réaliser toutes les opérations au niveau du
serveur de base de données.
 Gestionnaire de configuration SQL SERVER pour gérer les services liés à SQL SERVER
 SQL SERVER Profiler pour suivre et analyser la charge de travail d’une instance SQL SERVER
 Assistant paramétrage du moteur de base de données, permet une optimisation du
fonctionnement du serveur de base de données.
 SQLCMD, c’est l’outil de ligne de commande, exécuter des requêtes approuvées, exécuter des
scripts de commandes, établir une connexion d’administration dédiée (DAC)

Section 4 : L’architecture d’une base de donnée

Dans un SGBD-R, la base de donnée permet de :

 Stocker les objets logiques


 Les données : dans lesquelles on va retrouver les données de type tables, index, type
de données, contraintes d’intégrité, valeur par défaut
 Accès aux données : vues, procédures, fonctions
 Gestion d’intégrités complexes : déclencheur

Page | 5
ADMIN SQL SERVER

Chaque instance SQL SERVER va avoir des bases de données SYSTEM et de bases de données
Utilisateur.

Les bases de données master contiennent un certain nombre de tables appelées les tables systèmes,
qui sont utilisées directement par le moteur de SQL SERVER. Il est déconseillé d’accéder directement
à ces tables (plutôt au travers des vues). Voici quelques tables systèmes :

 Sys.sys_principals : permet de lister des connexions définies sur le serveur


 Sys.sysmessages : permet de réferencer tous les messages avec des différentes langues de
prise en charge

Page | 6
ADMIN SQL SERVER

 Sys.sysdatabases : permet de contenir une ligne pour chaque base de données créer sur le
système

Nous avons aussi les procédures stockées système qui vont nous permettre de récupérer un certain
nombre d’informations. Il existe des procédures stockées pour :

 Interroger les tables systèmes


 Connaître l’état du serveur, de la base de données
 Effectuer les opérations de configuration

Toutes les procédures stockées commencent par sp_, voici quelques procédures stockées :

 Sp_helpsp_help[nomobjet] : permet d’afficher les informations sur l’objet indiqué


 Sp_helpdbsp_helpdb[nom de la base de donnée] : permet d’afficher les informations sur la
base de données indiquées
 Sp_whosp_who : permet de lister les utilisateurs actuellement connectés
 Etc

Nous avons aussi les catalogues, qui contiennent les vues systèmes. Toutes ces vues sont présentes
dans le schéma sys. Et regroupés par thème (objets, index, et type…)

Nous avons aussi les fonctions systèmes utilisables avec des commandes Transact SQL. Voici quelques
fonctions :

 DB_ID : Retrouve l’identificateur de la base de données


 USER_NAME USER_NAME : retrouve le nom de l’utilisateur à partir de son identifiant

Nous avons aussi la notion de schéma d’information qui symbolise un ensemble de vues. Les schémas
d’information ne font pas directement référence aux tables systèmes mais plutôt aux vues.

Page | 7
ADMIN SQL SERVER

CHAPITRE 2 : INSTALLATION ET CONFIGURATION DE SQL SERVER


Section 1 : Préparer l’installation

Nous allons passer en revue les étapes importantes à l’installation de SQL SERVER, comment préparer
l’installation avec l’outil de configuration système, réaliser une installation manuelle et une installation
automatisée. Sur l’image ci-dessous, nous avons les étapes ou le processus d’installation de SQL
SERVER

Pendant l’installation une analyse de configuration système doit s’effectuer, en voici une image qui
l’explique :

Page | 8
ADMIN SQL SERVER

Section 2 : Installation manuelle de SQL SERVER

Etape 1 : La première des choses à faire c’est de lancer le set up à partir de laquelle nous allons lancer
notre installation

Etape 2 : une fois sur l’interface d’installation, cliquez sur installation puis cliquer sur l’option
d’installation de votre choix (Nouvelle instance autonome)

Etape 3 : une fois l’installation lancée, vous avez l’interface ci-après montrant les règles de support de
programme d’installation.

Page | 9
ADMIN SQL SERVER

Etape 4 : Cliquez sur OK pour poursuivre l’installation, et valider les termes du contrat de licence. Si
vous êtes en entreprises vous devez insérer la clé d’activation. Une fois accepter les termes de contrat,
cliquer sur suivant.

Etape 5 : ici nous avons trois options :

Page | 10
ADMIN SQL SERVER

 Installation de fonctionnalité de SQL SERVER


 SQL SERVER PowerPivot pour Sharepoint
 Toutes les fonctionnalités avec les valeurs par défaut

Nous allons choisir la première option puis cliquer sur suivant

Page | 11
ADMIN SQL SERVER

Etape 6 : ici nous allons choisir les fonctionnalités à implémenter sur notre serveur

Après avoir cocher sur toutes les fonctionnalités nécessaires, cliquer sur suivant pour poursuivre
l’installation.

Page | 12
ADMIN SQL SERVER

Etape 7 : encore une fois le programme d’installation va vérifier un certain nombre de règles pour
s’assurer que les prochaines étapes d’installation ne seront pas bloquées par un manque de prérequis.
Ensuite cliquer sur suivant pour poursuivre l’installation

Etape 8 : ici nous allons choisir le type d’installation, nous avons deux options :

 Une instance par défaut : le nom de l’instance sera identifié par le nom de la machine sur
lequel est installé notre instance.
 Une instance nommée : choisir le nom de l’instance sois même.

Cliquez sur suivant pour poursuivre l’installation

Page | 13
ADMIN SQL SERVER

Etape 9 : un récapitulatif sur l’installation et sur l’espace du disque dure

Etape 10 : cette étape va nous permettre de configurer les services de SQL SERVER

Page | 14
ADMIN SQL SERVER

Etape 11 : c’est dans cette étape que nous allons choisir le mode d’authentification de SQL SERVER,
c’est-à-dire comment vont être authentifier les accès au niveau de notre serveur. Il y a deux
possibilités :

 Le mode d’authentification Windows


 Le mode mixte

Page | 15
ADMIN SQL SERVER

Etape 12 : cette étape concerne la vérification des règles de configuration de l’installation

Etape 13 : cette étape nous montre l’ensemble des configurations réalisées

Pour terminer nous allons cliquer sur installer et suivre la progression de l’installation.

Page | 16
ADMIN SQL SERVER

L’image ci-dessous montre la fin de l’installation de notre serveur

Section 3 : Installation automatique de SQL SERVER

La mise en œuvre est assez simple, il y a deux configuration à réaliser :

Page | 17
ADMIN SQL SERVER

 Création d’un fichier de configuration .ini


 Démarrage de l’installation automatisée

On ouvre le fichier de configuration .ini à l’aide d’un éditeur de texte puis on effectue toutes les
configurations possibles.

On y retrouve toutes les configurations effectuées lors de l’installation manuelle. En passant par l’invite
de commande de Windows on peut lancer l’installation automatique tout en précisant le chemin de
localisation du fichier configuration.ini

Section 4 : SQL SERVER Management Studio

SQL SERVER Management Studio (SSMS) est un environnement intégré pour gérer toute infrastructure
SQL. Il fournit des outils pour configurer, surveiller et administrer des instances de SQL SERVER et des
bases de données. C’est un outil principal de gestion et l’administration :

 Pour les administrateurs et les développeurs


 Pour des Requêtes avancées
 Pour la gestion graphique des instances et des objets

Page | 18
ADMIN SQL SERVER

 Pour la gestion centralisée des instances distantes

L’ensemble des objets que vous pouvez implémenter sur un SGBD-R sont administrables via l’outil SQL
SERVER Management Studio. Il est possible par cette interface de pouvoir travailler sur plusieurs
onglets afin d’écrire plusieurs requêtes par exemple. Vous avez le statut pour savoir si vous êtes
connecté ou pas, le nom du serveur sur lequel vous êtes connecté et la base de données sur laquelle
vous travaillez.

Pour éviter de travailler sur une base de données inattendue faites toujours précéder vos instructions
par la commande USE suivie du nom de la base de donnée à manipuler.

NB : c’est un outil indispensable dans le cadre de l’administration SQL SERVER. Nous le verrons en long
et en large dans ce cours.

Section 5 : SQLCMD

L’utilitaire SQLCMD vous permet de saisir des instructions Transact-SQL, des procédures système et
des fichiers de scripts via une variété de mode disponible :

 A l’invite de commande
 Dans l’éditeur de requête en mode SQLCMD
 Dans un fichier de script Windows
 Dans une étape de travail du système d’exploitation d’un travail de l’Agent SQL SERVER

L’utilitaire utilise ODBC pour exécuter des lots Transact-SQL. C’est un outil de gestion et
d’administration en mode ligne de commande. Il exécute les requêtes et des scripts, établie une
connexion d’administration en mode dédié (DAC).

Section 6 : Configuration de SQL SERVER

SQL SERVER gère les services liés à SQL SERVER. Bien que beaucoup de ces tâches puissent être
réalisées à l’aide de la boite de dialogue service Microsoft Windows, il est important de noter que le
gestionnaire de configuration SQL SERVER effectue les opérations supplémentaires sur les services
qu’il gère, telles que l’application des autorisations adéquates lors de la modification du compte des
services.

Les éléments de configuration sous SQL SERVER sont :

 Les services
 Les états
o Démarrer
o Suspendu
o Arrêter
 Via
o Gestionnaire de configuration SQL SERVER
o Le gestionnaire de services Windows

La configuration de service peut se faire via le gestionnaire de configuration SQL SERVER ou via le
gestionnaire de service Windows. Le gestionnaire de configuration SQL SERVER vous permet de
configurer les services SQL SERVER et la connectivité réseau.

Page | 19
ADMIN SQL SERVER

CHAPITRE 2 : LES BASE DE DONNEES SOUS SQL SERVER


Section 1 : Architecture globale

Une base de données contient au minimum deux types de fichiers :

 Les fichiers de données


 Les fichiers journaux

Les fichiers de données sont repartis en deux types, les fichiers primaires de données (obligatoire,
extension .mdf), et ces fichiers primaires de données contiennent à leur tour le catalogue de la base
de données, c’est le dictionnaire de données qui contient l’ensemble des informations sur les objets
que nous allons crées (tables, trigger…) crée automatiquement par le système quand vous créez une
nouvelle base de données. En dehors des fichiers primaires nous les fichiers secondaires de données
(facultatif, extension .ndf), ces fichiers contiennent l’ensemble des objets et des données utilisateurs.

A côté des fichiers de données, nous avons les fichiers journaux (au moins un, extension .ldf). Ce fichier
a pour rôle d’enregistrer toutes les modifications de la base de données, toutes les instructions comme
INSERT, DELETE ou UPDATE seront enregistrées dans le fichier journaux.

Voici un schéma illustrant le fonctionnement des fichiers journaux :

A chaque fois que vous modifier les données au niveau de SQL SERVER, quand vous lancez des
instructions telle qu’INSERT, UPDATE ou DELETE, toutes les transactions qui modifient les données sont
d’abord écrites dans le fichier journal et dans un deuxième temps elles sont écrites dans les fichiers de
données sous forme de bloc de 8K. Dans le fichier journal on va retrouver le log séquence number, le
moment où a été réalisé la transaction, la valeur avant et la valeur après la transaction. Il est possible
de lire dans ces fichiers journaux via la fonction ::fn_dblog().

Un fichier de donnée est rattaché à une seule base de données, on ne peut pas mutualiser un fichier
de donnée avec plusieurs bases de données. Ces fichiers de données sont structurés en page de 8 K,
ces pages contiennent des enregistrements es différentes tables, des index. C’est l’unité d’échange

Page | 20
ADMIN SQL SERVER

entre le cache de données (la mémoire) et le fichier de données (fichier data). La taille maximale d’une
ligne est de 8060 octets et chaque page en générale contient un type bien précis de données.

Voici la structure d’un fichier de données :

Les extensions sont des regroupements contigus de block de 8 K, la taille d’une extension est de 64 K
(8*8). Une extension est créée automatiquement lorsqu’il n’y a plus de place. Il existe deux type
d’extensions :

 Les mixtes : ils contiennent les données de plusieurs objet (mutualisé), c’est-à-dire lorsque l’on
crée une table l’ensemble des enregistrements effectués dans cette table seront stockées dans
une extension qui aura été utilisée par d’autres objets
 Les uniformes : ils contiennent les données d’un seul objet (spécialisé)

L'unité fondamentale de stockage de données dans SQL Server est la page. L'espace disque alloué à un
fichier de données (.mdf ou .ndf) dans une base de données est logiquement divisé en pages

Page | 21
ADMIN SQL SERVER

numérotées de manière contiguë de 0 à n. Les opérations d'E/S disque sont effectuées au niveau de la
page. Autrement dit, SQL Server lit ou écrit des pages de données entières.

Les extensions sont une collection de huit pages physiquement contiguës et sont utilisées pour gérer
efficacement les pages. Toutes les pages sont organisées en étendues.

Il est important de comprendre l'architecture des pages et des extensions pour concevoir et
développer des bases de données performantes.

Section 2 : Création d’une base de données

Il existe deux méthodes pour créer une base de données sous SQL SERVER :

 En Transact-SQL
 SQL SERVER Management Studio

Les informations nécessaires pour créer une base de données sont les suivantes :

 Le nom de la base de données, la collation


 La taille
 L’espace de stockage

En Transact-SQL, la syntaxe de création d’une base de donnée est la suivante :

On commence par lui spécifier le nom de la base de donnée juste après l’instruction CREATE, le mot
clé ON permet de spécifier quels sont les fichiers que je souhaite crée et les informations nécessaires
à la création du fichier, le mot clé LOG ON permet de spécifier les informations sur le fichier journal et
on termine par le COLLATE pour spécifier la collation.

Page | 22
ADMIN SQL SERVER

Exercice :

On souhaite créer une base de données avec les caractéristiques suivantes :

Nom : L3ABD

Deux fichiers de données :

 l3abd_data01.mdf (taille=10MB, maxsize=100MB, et autoextend OFF)


 l3abd_data02.ndf (taille=10MB, maxsize=100MB, et autoextend 10MB)
 stockage dans C :……….

Un fichier journal :

 l3abd_log01.ldf (taille = 15MB, maxsize = 200MB, et autoextend 10%)


 stockage dans C :……..

Collation :

French, Case Sensitive, Accent Insensitive

Voici la syntaxe associée en Transact-SQL :

En SQL SERVER Management Studio la procédure de création est la suivante :

1. Dans Microsoft SQL Server Management Studio, dans


l'Explorateur d'objets (Object Explorer), cliquez avec le
bouton droit de la souris sur Bases de données (Databases),
puis sélectionnez Nouvelle base de données (New Database)
dans le menu contextuel.

Page | 23
ADMIN SQL SERVER

2. Dans la boîte de dialogue Nouvelle base de données (New Database), dans Nom de la base de
données (Database name), entrez le nom désiré pour la base de données, puis cliquez sur OK.

NB : Vous avez la possibilité de renommer vos fichiers de données et journaux.

Section 3 : Gérer une base de données

Les tâches de gestion d’une base de données SQL SERVER consiste à gérer l’espace disque alloué à
votre base de donnée. La gestion de l’espace disque va se faire soit en mode Autoextend ON
(accroissement dynamique), soit en mode Autoextend OFF (accroissement manuel), soit en mode
ajout de fichier, soit en mode libération de l’espace inutilisé.

Pour modifier un fichier de la base de données en mode Transact-SQl il faut utiliser la commande ALTER
DATABASE comme ceci :

Exercice :

Dans la base de données L3ABD précédemment créée, modifier le fichier l3abd_data01 en


changeant sa taille initiale à 20MB, sa taille maximale à 200MB et son pas Page | 24
d’incrémentation de 10MB.
ADMIN SQL SERVER

Il est aussi possible de rajouter les fichiers à une base déjà existante en utilisant le Transact-SQL. Cette
tâche est effectuée par le DBA. Voici la syntaxe :

Exercice :

Dans la base de données L3ABD précédemment créée, ajouter un fichier nommé


« l3abd_data.03 »de taille initiale 100MB, de taille maximale 200MB et de pas
d’incrémentation 10MB
Ce fichier doit être enregistrer au même emplacement que les autres fichiers

NB : il est aussi possible d’ajouter un fichier journal dans une base de données. A la différence
commande ALTER DATABASE sera suivit de ADD LOGFILE et ADD FILE.

Libération de l’espace disque inutilisé

La réduction des fichiers de données récupère de l'espace en déplaçant des pages de données de la fin
du fichier vers l'espace inoccupé plus près du début du fichier. Lorsque suffisamment d'espace libre
est créé à la fin du fichier, les pages de données à la fin du fichier peuvent être désallouées et renvoyées
au système de fichiers.

Le SHRINKDATABASE permet de compacter l’ensemble des fichiers de la base, il est impossible de


redescendre en dessous de la taille initiale du fichier. Pour les fichier journaux le compactage s’utilise
en mode différé.

Le SHRINKDATABASE s’utilise de la façon suivante :

 Porcentage_cible : précise en pourcentage l’espace libre souhaité dans le fichier après le


compactage
 NOTRUNCATE : ne rend pas l’espace libre au système d’exploitation
 TRUNCATEONLY : libération de l’espace inutile dans les fichiers, compacte le fichier à la
dernière extension allouée, pas de réorganisation physique de données, pourcentage_cible est
ignoré

Section 4 : Les groupes de fichiers

Au minimum, chaque base de données SQL Server possède deux fichiers de système d'exploitation :
un fichier de données et un fichier journal. Les fichiers de données contiennent des données et des
objets tels que des tables, des index, des procédures stockées et des vues. Les fichiers journaux
contiennent les informations nécessaires pour récupérer toutes les transactions dans la base de

Page | 25
ADMIN SQL SERVER

données. Les fichiers de données peuvent être regroupés en groupes de fichiers à des fins d'allocation
et d'administration.

Les bases de données SQL Server ont trois types de fichiers, comme indiqué dans le tableau suivant.

Déposer La description

Primaire Contient les informations de démarrage de la base de données et pointe vers les autres
fichiers de la base de données. Chaque base de données a un fichier de données
primaire. L'extension de nom de fichier recommandée pour les fichiers de données primaires
est .mdf.

Secondaire Fichiers de données facultatifs définis par l'utilisateur. Les données peuvent être réparties sur
plusieurs disques en plaçant chaque fichier sur un lecteur de disque différent. L'extension de
nom de fichier recommandée pour les fichiers de données secondaires est .ndf.

Journal des Le journal contient les informations utilisées pour récupérer la base de données. Il doit y avoir
transactions au moins un fichier journal pour chaque base de données. L'extension de nom de fichier
recommandée pour les journaux de transactions est .ldf.

Le groupe de fichiers contient le fichier de données principal et tous les fichiers secondaires qui ne
sont pas placés dans d'autres groupes de fichiers. Des groupes de fichiers définis par l'utilisateur
peuvent être créés pour regrouper des fichiers de données à des fins d'administration, d'allocation de
données et de placement.

Par exemple : Data1.ndf, Data2.ndf, et Data3.ndf, peuvent être créés sur trois lecteurs de disque,
respectivement, et affectés au groupe de fichiers fgroup1. Une table peut alors être créée
spécifiquement sur le groupe de fichiers fgroup1. Les requêtes pour les données de la table seront
réparties sur les trois disques ; cela améliorera les performances. La même amélioration des
performances peut être obtenue en utilisant un seul fichier créé sur un ensemble de bandes RAID
(réseau redondant de disques indépendants). Cependant, les fichiers et les groupes de fichiers vous
permettent d'ajouter facilement de nouveaux fichiers sur de nouveaux disques.

L’utilisation de groupe de fichier c’est la répartition des données par types (tables, indexes), en général
on sépare les tables des indexes pour une bonne organisation physique.

Pour créer un groupe de fichier via Transact-SQL, on utilise la syntaxe suivante :

Exemple :

Page | 26
ADMIN SQL SERVER

La commande qui permet de rattacher les fichiers physiques à ses groupes de fichiers est la suivante :

Exemple :

Le résultat est :

L’objectif est de stocker les objets sur ces groupes de fichiers. Ça ne sert à rien de les créer pour ne pas
les utiliser.

Exemple : créons une table Etudiant ayant pour champs num et nom sur groupe de fichier
TABLESPACE_DATA_01

Page | 27
ADMIN SQL SERVER

Ce qui donne :

Section 5 : Le partitionnement

Le partitionnement peut améliorer l’extensibilité, réduire la contention et optimiser les performances.


Il peut également offrir un mécanisme pour la division des données à l’aide d’un modèle d’utilisation.
L’objectif du partitionnement est de diviser une table volumineuse en plusieurs tables, optimiser le
stockage (stockage sur différents groupes de fichiers), optimiser la montée en charge.

Comme avantage on peut citer :

 Améliorer l’évolutivité : Quand on a une table sur un disque qui est saturé.
 Améliorer les performances : Les opérations qui affectent plusieurs partitions peuvent
s’exécuter en parallèle.
 Améliorer la sécurité : Dans certains cas, vous pouvez séparer les données sensibles et non
sensibles dans différentes partitions et appliquer différents contrôles de sécurité aux données
sensibles.
 Procurer une flexibilité opérationnelle : Le partitionnement offre de nombreuses possibilités
pour affiner les opérations, optimiser l’efficacité administrative et réduire les coûts.
 Pouvoir utiliser TRUNCATE TABLE avec la clause Where.

Page | 28
ADMIN SQL SERVER

Exemple :

Pour la mise en œuvre ou l’implémentation du partitionnement, il faut réaliser un certain nombre de


tâches qui sont :

 Définir une fonction de partitionnement


 Définir un schéma de partitionnement relié à une fonction de partitionnement
 Créer les tables partitionnées

NB : Il est possible de créer un index sur une table partitionnée

Une fonction de partition SQL Server spécifie le mode de partitionnement d’une table ou index et
comment les lignes d’une table ou d’un index sont mappées à un ensemble de partitions en fonction
des valeurs de certaines colonnes, appelées « colonnes de partitionnement ».

Elle a pour but :

 Définir la clé de partitionnement (champ de partition pertinent)


 Permet répartir les données entre les différentes partitions
 Permet d’orienter les données sur un groupe de fichier ou un autre
 Permet d’utiliser les plages de valeurs bornées

La syntaxe de création d’une fonction de partition est la suivante :

Parametre : Colonne de tous types sauf timestamp, varchar(x), nvarchar(x), et varbinary utilisé pour
calculer la clé de partitionnement.

Page | 29
ADMIN SQL SERVER

ValeurLimite : valeur marquant la frontière de chaque partition

Exercice :

Définir une fonction de partitionnement nommé « partition_date » sur une valeur de type date.
Llllla
Cette fonction définira quatre partitions différentes :

1ère partition pour les valeurs strictement inferieures au « 01/01/2019 »

2ème partition pour les valeurs supérieures ou égale au « 01/01/2019 » et inferieures au


« 01/01/2020 »

3ème partition pour les valeurs superieures ou égale au « 01/01/2020 » et inferieures au


« 01/01/2021 »

4ème partition pour les valeurs superieures ou égales au « 01/01/2021 »

La création de la partition se présente comme suit :

Nous allons à présent créer un schéma de partitionnement. Il a pour but :

 Permettre d’affecter chaque partition à un groupe de fichier


 Permettre la possibilité de spécifier plus de groupe de fichier que de partition définie
 Permettre la possibilité d’affecter toutes les partitions à un seul groupe de fichier (non
recommandé)

Voici la syntaxe de création :

nomSchemaPartition : Identifiant du schéma de partitionnement

nomFonctionPartition : nom de la fonction de partitionnement associée ai schéma

groupeDeFichier : nom du ou des groupes de fichiers utilisés par les partitions.

Après avoir créé les groupes de fichier et les fichiers liés à ces groupes, la syntaxe de création de
schéma de fichier est la suivante :

Page | 30
ADMIN SQL SERVER

A présent nous allons créer les tables partitionnées (objet de partitions). La syntaxe de création de
table partitionnée est la suivante :

Ensuite nous allons insérer les données dans cette table en respectant l’ordre de partition énoncé plus
haut.

Puis en exécutant cette requête on voit bien l’implémentation du partitionnement.

Section 6 : Configuration d’une base de données

A l’installation de SQL SERVER, nous avons différentes bases de données qui sont :

Page | 31
ADMIN SQL SERVER

 Master : base de données système


 Model : base de données modèles pour les nouvelles bases de données
 Msdb : base de stockage des alertes et des travaux pour l’agent SQL SERVER
 Tempdb : base de stockage desd objet et données temporaires

Voici une liste des options de configuration d’une instance SQL SERVER :

 AUTO_SHRINK : AUTO_SHRINK est une option de base de données dans SQL Server. Lorsque
vous activez cette option pour une base de données, cette base de données devient éligible à
la réduction par une tâche en arrière-plan. Cette tâche en arrière-plan évalue toutes les bases
de données qui satisfont aux critères de réduction et réduit les données ou les fichiers
journaux.
Vous devez évaluer attentivement la définition de cette option pour les bases de données dans
une instance SQL Server. Les opérations de croissance et de réduction fréquentes peuvent
entraîner divers problèmes de performances.
 READ_ONLY, READ_WRITTE : permet de maitre une base de données en lecture seule, c’est-à-
dire seule les instruction SELECT seront prises en compte dans la base de données.
 SINGLE_USER : spécifie qu'un seul utilisateur à la fois peut accéder à la base de données et est
généralement utilisé pour les actions de maintenance. Lors de l'exécution de certaines tâches
de maintenance, en particulier dans les situations de récupération, il est essentiel de limiter
l'accès aux bases de données par les utilisateurs généraux. Dans ces situations, le mode d'accès
restreint peut-être utiliser pour limiter les connexions aux utilisateurs de haut niveau
uniquement.
 AUTO_CREATE_STATISTICS : Si le paramètre de base de données AUTO_CREATE_STATISTICS
est activé, SQL Server créera automatiquement des statistiques pour les colonnes non
indexées utilisées dans vos requêtes.
 AUTO_UPDATE_STATISTICS : les statistiques obsolètes seront calculés automatiquement
 AUTO_CLOSE : Lorsque l'option AUTO CLOSE est activée (TRUE) pour une base de données SQL
Server ; Le moteur de base de données SQL Server fermera la base de données utilisateur
après son utilisation. La base de données sera activée la prochaine fois que quelqu'un voudra
accéder à la base de données.
 RECOVERY : explique la manière de loguer les transactions dans les fichiers journaux

Page | 32
ADMIN SQL SERVER

Il est possible de gérer les options d’une base de données SQL SERVER à l’aide de l’outils de
management SQL SERVER Management Studio. Pour ce faire il suffit faire un clic droit sur le nom de
votre base de donnée et cliquer sur propriété, puis choisir option.

Section 7 : Les transactions

Une transaction est un ensemble de requêtes que l'on regroupe en une seule unité logique de travail
qui pourra ensuite être, soit validée, soit annulée.

Page | 33
ADMIN SQL SERVER

La première chose à faire dans ce cas-là est donc d'encapsuler vos requêtes dans une transaction. Voici
sa syntaxe :

Une autre chose qu'il est utile de connaître est le fait qu'on peut insérer des savepoint dans une
transaction, c'est-à-dire un point d'enregistrement, sur lequel on peut se baser pour faire un RollBack.
Ainsi, on n'a pas besoin de faire une annulation sur l'intégralité de la transaction, si on a deux parties
bien distinctes dans notre script, on peut intercaler un point d'enregistrement entre les deux. Si la
première partie s'est déroulée sans problème, mais que la deuxième partie s'est mal passée, on faire
un rollback jusqu'à notre point d'enregistrement puis un commit. Ainsi, tout ce qui s'est bien passé est
validé et le reste est annulé.

Exercice :

Créer une transaction dans laquelle vous allez créer :

 Une table Etudiant ayant des champs : id, nom, prénom, Filière, Sexe
 Insérer les données dans cette table (dix enregistrements)
 Afficher les étudiants de LPSIR-ABD

Section 8 : Le mode de récupération sous SQL SERVER

Page | 34
ADMIN SQL SERVER

Le but de cette section est de présenter les différents modes de récupérations sous SQL SERVER afin
de choisir la récupération la plus adapté. Nous connaissons tous l’importance ou le rôle des fichiers
journaux dans une base de données. Le but principal de ces fichiers est de journaliser toutes les
transactions de types LMD, enregistrés les valeurs avant et après modification, et sont utilisés pour les
opérations de restauration. Son fonctionnement se résume sur la figure suivante :

Toute transaction qui modifie la base de données est d’abord écrite sur les fichiers journaux avant
d’être écrite sur les fichiers de données.

Un mode de récupération est une option de configuration d’une base de donnée, il permet de
contrôler la façon dont les transactions sont journalisées, et vont impactés sur les récupérations et sur
les performances. Il existe :

 Le mode simple : il limite la journalisation de la majorité des transactions, le journal est


tronqué après chaque CHECKPOINT, ne permet pas restaurer en utilisant le journal des
transactions (PITR). Il est impossible de restaurer des pages de données individuelles, il il est
rapide et limite la taille du fichier journal.
 Le mode complet : c’est le mode par défaut qu’on recommande sur un serveur en production.
Toutes les transactions sont écrites dans un journal, par compte le fichier journal n’est pas
tronqué autrement dit le fichier peut grossir d’une manière assez rapide et saturer votre
système. Il permet une restauration PITR ou un point de défaillance, permet de générer
beaucoup d’IO et générer la taille importante du fichier journal.
 Le mode de journaliser en bloc : il journalise de façon minimale les opérations de masse
(SELECT INTO, BULK INSERT), permet une restauration à la fin de la sauvegarde du journal. Il
n’est pas possible d’utiliser une restauration PITR ou un point de défaillance, il est utilisé
uniquement pour les opérations de chargement en bloc

Il est possible de modifier les modes de récupérations via la commande suivante :

Page | 35
ADMIN SQL SERVER

Il est possible de modifier les modes de récupérations sur SSMS, il suffit de faire un clic droit sur le nom
de la base de données et cliquer sur option comme sur la figure ci-dessous :

Section 9 : La compression des données

Il est possible de compresser un certain nombre d’objet tel que les tables et les indexes ou encore les
données utilisateurs. La compression vous permet de gagner de l’espace disque et dégrade les
performances en lecture et écriture.

La compression peut se faire sur l’interface de SSMS, la procédure est la suivante :

1. Clic droit sur le nom de la table à compresser

Page | 36
ADMIN SQL SERVER

2. Cliquer sur suivant et choisir le type de compression, et cliquer sur calculer pour estimer
l’espace gagner. Ensuite poursuivre avec le suivant

3. Cliquer sur suivant pour terminer.

Section 10 : Le cryptage de données

Le but est de voir comment est configurer la hiérarchie de chiffrage sur SQL SERVER, comment
configurer les clés symétriques et asymétriques et comment configurer les certificats sous SQL SERVER.

Il existe différents types de clés :

 Symétrique : c’est une clé qui permet de chiffrer (crypter) et de déchiffrer (décrypter)
 Asymétrique : on a une clé qui chiffre (clé publique) et une clé qui déchiffre (clé privée)

Un certificat permet d’associer une clé publique à une identité qui détient cette clé, permet d’être sure
qu’une personne est bien celle que l’on prêtent être. Un certificat contient un certain nombre
d’information :

 Des informations identifiants le sujet (nom, mail)


 Une période de validité
 Des informations identifiant l’émetteur et la signature numérique

Page | 37
ADMIN SQL SERVER

Voici la hiérarchie de chiffrage SQL SERVER :

La clé maitre de service permet de chiffrer toutes les clés maitres de base de données, chaîne de
connexion, mot de pass de serveur…

Dès que vous installez un serveur il faut sauvegarder la clé maitre de service en utilisant la syntaxe
suivante :

Il est aussi possible de la restaurer avec cette syntaxe :

Exemple :

Nous venons de sauvegarder une clé dans un répertoire bkp précédemment créer. Il est aussi possible
de la restaurer comme ceci :

La clé maitre de base de données est une clé symétrique facultative permettant de chiffrer les
certificats et les clés dans la base de données. Sa création se fait via la commande suivante :

Et la sauvegarde et la restauration de la clé maitre de service se fait par la commande suivante :

Page | 38
ADMIN SQL SERVER

Il est conseiller après avoir créé la clé maitre de base de donnée d’effectuer les opérations suivantes :

 Ouverture

 Fermeture

 Suppression

Un certificat permet d’identifier d’une manière unique une entité, associe une entité à une clé
publique. Les opérations suivantes peuvent s’effectuer sur un certificat :

 Création

 Sauvegarde

 Suppression

 Fonction

Une clé asymétrique permet de crypter et de décrypter les données :

il existe deus focntions pour les clés asymétrique

La clé symétrique compte à elle permet de chiffrer les informations, sa syntaxe de création est :

Page | 39
ADMIN SQL SERVER

Il existe deux fonction pour les clés symétriques :

Exercice : se positionner sur la base de données master à l’aide de la commande USE master, crée
une clé maitre dans cette base de donnée et un certificat puis le sauvegarder.

Créer ensuite une base de données nommée « dbCrypte » que l’on doit crypter avec le certificat
précédemment crée. Activé le cryptage dans la nouvelle base de données

Page | 40
ADMIN SQL SERVER

CHAPITRE 4 : SAUVEGARDE DES BASE DE DONNEES SQL SERVER


Section 1 : Introduction à la sauvegarde

Pour réduire le risque de perte catastrophique de données, vous devez sauvegarder vos bases de
données pour conserver les modifications apportées à vos données de façon régulière. Une stratégie
de sauvegarde et de restauration correctement planifiée permet de protéger les bases de données
contre la perte de données provoquées par différentes défaillances.

Dans une base de données SQL SERVER, la sauvegarde intervient généralement :

 En cas de panne matérielle (support)


 En cas de mauvaise manipulation des utilisateurs (comme la suppression d’une table par
inadvertance)
 En cas de panne serveur
 Déplacement de base de donnée
 Catastrophe naturelle

Les caractéristiques d’une sauvegarde sous SQL SERVER sont :

 Il est possible sous SQL SERVER de réaliser une sauvegarde à chaud : l’utilisateur étant
connecté ne perturbe pas le fonctionnement normal du serveur.
 Les sauvegardes sont cohérentes, les données sont cohérentes
 Aucune opération de création ou de modification de base de données n’est possible pendant
une opération de sauvegarde
 Impossible de créer les indexes pendant une sauvegarde
 Les exécutions d’opérations non journalisées ne sont pas autorisées.

Les principales méthodes de sauvegardes sont :

 Sauvegarde complète : la plus utilisée sur les bases à petite et à moyenne volumétrie
 Sauvegarde différentielle : permet d’enregistrer toute les sauvegarde qui ont été modifiées
depuis la dernière sauvegarde complète
 Sauvegarde du journal de transaction : consiste à sauvegarder uniquement la partie du journal
de transaction qui contient les transactions qui n’ont pas été enregistrées.
 Sauvegarde des groupes de fichier
 Sauvegarde partielle

Page | 41
ADMIN SQL SERVER

Page | 42
ADMIN SQL SERVER

Section 2 : Sauvegarde Complète

Il est possible de réaliser les sauvegarder sur plusieurs supports physiques, parmi lesquels :

 Les disques
 Les bandes

Les privilèges nécessaires pour réaliser une sauvegarde sont :

 Sysadmin : c’est l’administrateur de l’instant, il a tous les privilèges


 Db_owner : c’est le privilège de propriétaire d la base
 Db_backupoperateur : l’utilisateur qui sera dans ce groupe pourra réaliser toutes les
opérations de sauvegardes et seulement ces opérations.

NB : Vous devez avoir les privilèges de sécurités pour réaliser ces backups.

L’instruction Backup est la plus importante pour réaliser les sauvegardes, sa syntaxe est la suivante :

Il est possible de réaliser une sauvegarde avec mise en miroir, c’est-à-dire duplique la sauvegarde sur
plusieurs supports. Voici la syntaxe :

Exemple :

 Créer une unité logique de sauvegarde, clic droit sur support de sauvegarde sur le répertoire
objet du serveur de SSMS et choisir nouveau support de sauvegarde

Page | 43
ADMIN SQL SERVER

Donner ensuite le nom de votre unité logique ; choir le répertoire de sauvegarde.

En utilisant la syntaxe de sauvegarde effectuer une sauvegarde comme ceci :

Page | 44
ADMIN SQL SERVER

 Vérifier le contenu du support de sauvegarde en effectuant un clic droit dessus, et choisir


contenu du support

Une autre façon de faire c’est d’effectuer la sauvegarde sur une support en précisant le chemin du
fichier de la sauvegarde :

Page | 45
ADMIN SQL SERVER

Section 3 : Sauvegarde différentielle

Elle contient uniquement les données qui ont changées depuis la base différentielle. Elles sont plus
petites et plus rapide à créer qu’une sauvegarde complète et exigent également moins d’espace disque
pour stocker des images de sauvegardes.

La sauvegarde différentielle est un complément de la sauvegarde complète, il n’est pas possible de


réaliser une sauvegarde différentielle sans passer par la sauvegarde complète.

La commande de sauvegarde est la suivante :

En voici un exemple :

NB : si la sauvegarde complète n’est pas réalisée, la différentielle ne marcherait pas.

Section 4 : Sauvegarde du journal de transaction

Page | 46
ADMIN SQL SERVER

Exécutez l’instruction BACUP LOG pour sauvegarder le journal des transactions, en spécifiant le nom
de la base de donnée à laquelle appartient le journal des transactions à sauvegarder. C’est un
complément de sauvegarde complète et différentielle.

Voici sa syntaxe Transact-SQL :

Section 5 : Sauvegarde de groupe de fichier

Ce type de suavegarde est utilisé quand la base de données est très volumineuse

Pour créer une sauvegarde de fichier de fichier ou de groupe de fichier, utilisez l’instruction :

Page | 47
ADMIN SQL SERVER

Exemple :

Section 6 : Sauvegarde partielle

Voici les caractéristiques de la sauvegarde partielle. Elle est très peu utilisée en production.

Voici sa syntaxe :

Page | 48
ADMIN SQL SERVER

CHAPITRE 5 : RESTAURATION DES BASES DE DONNEES SQL SERVER


Section 1 : Les pré-requis de la restauration

Un scénario de restauration dans SQL Server est le processus de restauration des données à partir
d'une ou de plusieurs sauvegardes, puis de récupération de la base de données. Les scénarios de
restauration pris en charge dépendent du mode de récupération de la base de données et de l'édition
de SQL Server.

SQL SERVER offre un certain nombre de commandes que voici :

Ci-dessous un exemple de restauration HEADERONLY

Ci-dessous un exemple de restauration FILELISTONLY, il restaure les fichiers journaux et les fichiers
data

Page | 49
ADMIN SQL SERVER

Ci-dessous un exemple de restauration LABELONLY, qui affiche une certain nombre d’information.
C’est la moins utilisée

Enfin le VERIFYONLY :

Avant toutes opérations de restauration, il faut :

 Aucune connexion utilisateur en cours


 Interdire toute nouvelle connexion au serveur pendant la restauration mode mono-utilisateur

Section 2 : Restauration des bases de données SQL SERVER

Pour pouvoir restaurer une base de données en mode de récupération complète ou en mode de
récupération utilisant les journaux de transactions, vous devrez peut-être sauvegarder le journal des
transactions actif.

Page | 50
ADMIN SQL SERVER

Pour restaurer une base de données chiffrée, vous devez avoir accès au certificat ou à la clé
asymétrique utilisé(e) pour chiffrer la base de données. Sans le certificat ou la clé asymétrique, vous
ne pouvez pas restaurer cette base de données. Enregistrez le certificat utilisé pour chiffrer la clé de

chiffrement de base de données tant que vous en avez besoin pour enregistrer la sauvegarde.

Il existe un certain nombre d’action pour restaurer les bases de données :

Exercice : TP à faire en classe

Page | 51
ADMIN SQL SERVER

Section 3 : Capture instantanées de base de données

Une capture instantanée de base de données est une vue statique en lecture seule d’une base de
données SQL Server (la base de données source). Au moment de sa création, l'instantané de base de
données est cohérent au niveau transactionnel avec la base de données source. Un instantané de base
de données réside toujours sur la même instance de serveur que sa base de données source. Bien que
les captures instantanées de base de données fournissent une vue en lecture seule des données dans
le même état que lors de la création de la capture instantanée, la taille du fichier de capture
instantanée augmente à mesure que des changements sont apportés à la base de données source.

Les avantages de la capture instantanée sont :

 Les instantanés peuvent être utilisés à des fins de création de rapports.

Les clients peuvent interroger un instantané de base de données, ce qui le rend utile pour
l'écriture de rapports basés sur la date et l'heure de sa création.

 Gestion des données d'historique pour la création de rapports.

Un instantané peut étendre l'accès utilisateur aux données à partir d'un moment donné dans
le temps. Par exemple, vous pouvez créer un instantané au terme d'une période donnée (par
ex. un trimestre financier) pour créer un rapport ultérieurement. Vous pouvez ensuite
exécuter des rapports de fin de période sur l'instantané. Si l'espace disque le permet, vous
pouvez également conserver des instantanés de fin de période indéfiniment afin d'interroger
les résultats pour cette période, par exemple pour étudier les performances de l'organisation.

 Utilisation d'une base de données miroir maintenue à des fins de disponibilité pour décharger
la création de rapports.
L'utilisation d'instantanés de bases de données avec mise en miroir vous permet de rendre les
données du serveur miroir accessibles à des fins de création de rapports. De plus, l'exécution
de requêtes sur la base de données miroir peut libérer des ressources sur la base de données
primaire.

 Protection des données contre les erreurs d'administration.

Page | 52
ADMIN SQL SERVER

La syntaxe de création d’une capture instantanée est la suivante :

Pour mettre en pratique toutes ces notions, nous allons crées une base de données nommé Fact, dans
laquelle nous allons crées une table client avec id, un nom et un salaire pour champs et y insérer trois
enregistrements.

Page | 53
ADMIN SQL SERVER

Nous allons à présent créer un snapshot comme ceci :

Puis un SELECT donnerait

Page | 54
ADMIN SQL SERVER

Lorsque vous faites une requête SELECT sur la base « snapshot_fact », SQL SERVER va rediriger votre
requête sur la base source. Si les données ont été modifiées dans la base source, ça serait stockées
dans la base snapshot_fact.

Le snapshot va donc permettre de conserver l’image avant modification, la même logique que les
tables spaces sous ORACLE. Un snapshot est une image de la base source avant modification.

Page | 55
ADMIN SQL SERVER

CHAPITRE 6 : IMPORTATION ET EXPORTATION DE DONNEES


Section 1 : Introduction aux outils d’import-export

Nous avons un certain nombre d’outils qui permettent d’importer une base vers un fichier et vice-
versa.

L’architecture de transfert est la suivante :

On peut par exemple importer les données d’une base MySql, ORACLE, POSTEGRESQL, peu importe la
base avec les outils SQL SERVER c’est possible.

Page | 56
ADMIN SQL SERVER

Les outils les plus utilisés dans l’environnement SQL SERVER sont :

Section 2 : SSIS (SQL SERVER INTEGRATION SERVICES)

Traduit de l'anglais-SQL Server Integration Services est un composant du logiciel de base de données
Microsoft SQL Server qui peut être utilisé pour effectuer un large éventail de tâches de migration de
données. SSIS est une plate-forme pour les applications d'intégration de données et de workflow.

Integration Services peut extraire et transformer des données à partir d'une grande variété de sources
telles que des fichiers de données XML, des fichiers plats et des sources de données relationnelles,
puis charger les données dans une ou plusieurs destinations.

Integration Services comprend un ensemble complet de tâches et de transformations intégrées, des


outils graphiques pour la création de packages et la base de données du catalogue Integration Services,
où vous stockez, exécutez et gérez les packages.

Vous pouvez utiliser les outils graphiques Integration Services pour créer des solutions sans écrire une
seule ligne de code. Vous pouvez également programmer le modèle objet étendu d'Integration
Services pour créer des packages par programmation et coder des tâches personnalisées et d'autres
objets de package.

Pour pouvoir utiliser SSIS vous avez plusieurs manières :

 L’assistant
 Concepteurs SSIS

Page | 57
ADMIN SQL SERVER

 Utilitaire de ligne de commande dtexec

Pour utiliser SSIS, on se connecte à la base de données, clic droit sur la base de donnée ensuite choir

tâche puis importer les données et suivre les instructions.

Page | 58
ADMIN SQL SERVER

Section 3 : BCP (BULK COPY PROGRAM)

Copie en bloc des données entre une instance de Microsoft SQL Server et un fichier de données dans
un format spécifié par l’utilisateur. L’utilitaire bcp peut être utilisé pour importer un grand nombre de
nouvelles lignes dans des tables SQL Server ou pour exporter des données de tables dans des fichiers
de données. Sauf lorsqu'il est utilisé avec l’option queryout , l'utilitaire ne nécessite aucune
connaissance de Transact-SQL. Pour importer des données dans une table, vous devez soit utiliser un
fichier de format créé pour cette table, soit comprendre la structure de la table et les types de données
valides pour ses colonnes.

C’est un outil puissant en mode ligne de commande qui a pour caractéristique :

Page | 59
ADMIN SQL SERVER

Ci-dessous nous avons la syntaxe Transact-SQL :

Section 4 : BULK INSERT

Une insertion en bloc est un processus ou une méthode fourni par un système de gestion de base de
données pour charger plusieurs lignes de données dans une table de base de données." Si nous
ajustons cette explication conformément à l'instruction BULK INSERT, l'insertion en bloc permet
d'importer des fichiers de données externes dans SQL Server. Supposons que notre organisation
dispose d'un fichier CSV de 1.500.000 lignes et que nous souhaitions importer ce fichier dans une table
particulière dans SQL Server, afin que nous puissions facilement utiliser l'instruction BULK INSERT dans
SQL Server. Certes, nous pouvons trouver plusieurs méthodes d'importation pour gérer ce fichier CSV
processus d'importation, par exemple, nous pouvons utiliser BCP, package d’importation SQL Server
et assistant d’exportation ou service SQL Server Intégration. Cependant, l'instruction BULK INSERT est
beaucoup plus rapide et robuste que l'utilisation d'autres méthodologies. Un autre avantage de
l'instruction d'insertion en bloc est qu'elle offre plusieurs paramètres qui aident à déterminer les
paramètres du processus d'insertion en bloc.

Sa syntaxe est assez simple :

On spécifie le nom de la base de données, le nom du schéma de la base de données. On peut aussi
spécifier une table ou une vue, dans le FROM on spécifie le fichier source que l’on souhaite importer.

Nous déroulerons un scénario dans un TP pour une meilleure compréhension.

Page | 60
ADMIN SQL SERVER

CHAPITRE 7 : GESTION DE LA SECURITE D’ACCES


Section 1 : Authentification SQL SERVER

Lors de l'installation, vous devez sélectionner un mode d'authentification pour le moteur de base de
données. Il existe deux modes possibles : le mode d'authentification Windows et le mode mixte. Le
mode d'authentification Windows active l'authentification Windows et désactive l'authentification
SQL Server. Le mode mixte permet à la fois l'authentification Windows et l'authentification SQL
Server. L'authentification Windows est toujours disponible et ne peut pas être désactivée.

Configuration du mode d'authentification


Si vous sélectionnez l'authentification en mode mixte lors de l'installation, vous devez fournir puis
confirmer un mot de passe fort pour le compte d'administrateur système SQL Server intégré nommé
SA. Le compte sa se connecte à l'aide de l'authentification SQL Server.

Si vous sélectionnez l'authentification Windows lors de l'installation, le programme d'installation crée


le compte sa pour l'authentification SQL Server mais il est désactivé. Si vous passez ultérieurement à
l'authentification en mode mixte et que vous souhaitez utiliser le compte sa, vous devez activer le
compte. Tout compte Windows ou SQL Server peut être configuré en tant qu'administrateur
système. Le compte sa étant bien connu et souvent ciblé par des utilisateurs malveillants, n'activez pas
le compte sa à moins que votre application ne l'exige. Ne définissez jamais un mot de passe vide ou
faible pour le compte SA.

Connexion via l'authentification Windows


Lorsqu'un utilisateur se connecte via un compte d'utilisateur Windows, SQL Server valide le nom du
compte et le mot de passe à l'aide du jeton principal Windows dans le système d'exploitation. Cela
signifie que l'identité de l'utilisateur est confirmée par Windows. SQL Server ne demande pas le mot
de passe et n'effectue pas la validation d'identité. L'authentification Windows est le mode
d'authentification par défaut et est beaucoup plus sécurisée que l'authentification SQL
Server. L'authentification Windows utilise le protocole de sécurité Kerberos, assure l'application de la
stratégie de mot de passe en ce qui concerne la validation de la complexité des mots de passe forts,
prend en charge le verrouillage de compte et prend en charge l'expiration du mot de passe. Une
connexion établie à l'aide de l'authentification Windows est parfois appelée connexion approuvée, car
SQL Server fait confiance aux informations d'identification fournies par Windows.

En utilisant l'authentification Windows, des groupes Windows peuvent être créés au niveau du
domaine et une connexion peut être créée sur SQL Server pour l'ensemble du groupe. La gestion de
l'accès au niveau du domaine peut simplifier l'administration des comptes.

NB : Dans la mesure du possible, utilisez l'authentification Windows.

Connexion via l'authentification SQL Server


Lors de l'utilisation de l'authentification SQL Server, les connexions sont créées dans SQL Server qui ne
sont pas basées sur les comptes d'utilisateurs Windows. Le nom d'utilisateur et le mot de passe sont
créés à l'aide de SQL Server et stockés dans SQL Server. Les utilisateurs qui se connectent à l'aide de
l'authentification SQL Server doivent fournir leurs informations d'identification (identifiant et mot de
passe) à chaque fois qu'ils se connectent. Lorsque vous utilisez l'authentification SQL Server, vous
devez définir des mots de passe forts pour tous les comptes SQL Server.

Page | 61
ADMIN SQL SERVER

Trois stratégies de mot de passe facultatives sont disponibles pour les connexions SQL Server.

 L'utilisateur doit changer de mot de passe à la prochaine connexion

Exige que l'utilisateur modifie le mot de passe la prochaine fois qu'il se connecte. La possibilité
de modifier le mot de passe est fournie par SQL Server Management Studio. Les développeurs
de logiciels tiers doivent fournir cette fonctionnalité si cette option est utilisée.

 Appliquer l'expiration du mot de passe

La stratégie d'âge maximal du mot de passe de l'ordinateur est appliquée pour les connexions
SQL Server.

 Appliquer la politique de mot de passe

Les stratégies de mot de passe Windows de l'ordinateur sont appliquées pour les connexions
SQL Server. Cela inclut la longueur et la complexité du mot de passe. Cette fonctionnalité
dépend de l’NetValidatePasswordPolicyAPI, qui n'est disponible que dans Windows Server
2003 et les versions ultérieures.

Inconvénients de l'authentification SQL Server


 Si un utilisateur est un utilisateur de domaine Windows qui dispose d'un identifiant et d'un
mot de passe pour Windows, il doit toujours fournir un autre identifiant et mot de passe (SQL
Server) pour se connecter. Garder une trace de plusieurs noms et mots de passe est difficile
pour de nombreux utilisateurs. Devoir fournir des informations d'identification SQL Server à
chaque fois que l'on se connecte à la base de données peut être ennuyeux.
 L'authentification SQL Server ne peut pas utiliser le protocole de sécurité Kerberos.
 Windows propose des stratégies de mot de passe supplémentaires qui ne sont pas disponibles
pour les connexions SQL Server.
 Le mot de passe de connexion crypté de l'authentification SQL Server doit être transmis sur le
réseau au moment de la connexion. Certaines applications qui se connectent
automatiquement stockeront le mot de passe sur le client. Ce sont des points d'attaque
supplémentaires.

Avantages de l'authentification SQL Server


 Permet à SQL Server de prendre en charge des applications plus anciennes et des applications
fournies par des tiers qui nécessitent une authentification SQL Server.
 Permet à SQL Server de prendre en charge des environnements avec des systèmes
d'exploitation mixtes, où tous les utilisateurs ne sont pas authentifiés par un domaine
Windows.
 Permet aux utilisateurs de se connecter à partir de domaines inconnus ou non approuvés. Par
exemple, une application où les clients établis se connectent avec des identifiants SQL Server
attribués pour recevoir le statut de leurs commandes.
 Permet à SQL Server de prendre en charge les applications Web dans lesquelles les utilisateurs
créent leurs propres identités.
 Permet aux développeurs de logiciels de distribuer leurs applications en utilisant une
hiérarchie d'autorisations complexe basée sur des connexions SQL Server prédéfinies et
connues.

Page | 62
ADMIN SQL SERVER

Section 2 : Les credentials

Un credential est un enregistrement qui contient les informations d'authentification (informations


d'identification) requises pour se connecter à une ressource en dehors de SQL Server. Ces informations
sont utilisées en interne par SQL Server. La plupart des informations d'identification contiennent un
nom d'utilisateur et un mot de passe Windows.

Les informations stockées dans les informations d'identification permettent à un utilisateur qui s'est
connecté à SQL Server via l'authentification SQL Server d'accéder à des ressources en dehors de
l'instance de serveur. Lorsque la ressource externe est Windows, l'utilisateur est authentifié en tant
qu'utilisateur Windows spécifié dans les informations d'identification. Une seule information
d'identification ne peut être mappée qu'à une seule connexion SQL Server. Et une connexion SQL
Server ne peut être mappée qu'à une seule information d'identification.

Sa syntaxe est la suivante :

IDENTITY =' identity_name ' Spécifie le nom du compte à utiliser lors de la connexion en dehors du
serveur. Lorsque les informations d'identification sont utilisées pour accéder au coffre de clés Azure,
l' IDENTITÉ est le nom du coffre de clés. Lorsque les informations d'identification utilisent une
signature d'accès partagé (SAS), l' IDENTITÉ est SIGNATURE D'ACCÈS PARTAGÉ

Page | 63
ADMIN SQL SERVER

Section 3 : Les utilisateurs de base de données

Management Studio présente six options de création d'un utilisateur de base de données. L’image
suivante montre les six options dans la zone verte et indique ce qu'elles représentent.

Créer un utilisateur avec SSMS


1. Dans l'Explorateur d'objets, développez le dossier Bases de données.
2. Développez la base de données où créer le nouvel utilisateur de base de données.
3. Cliquez avec le bouton droit sur le dossier Sécurité, pointez sur Nouveau, puis
sélectionnez Utilisateur
4. Dans la boîte de dialogue Nouvel utilisateur de base de données, dans la page Général,
sélectionnez un des types d’utilisateurs suivants à partir de la liste Type d’utilisateur :
 Utilisateur SQL avec connexion
 Utilisateur SQL avec mot de passe
 Utilisateur SQL sans connexion
 Utilisateur mappé à un certificat
 Utilisateur mappé à une clé asymétrique
 Utilisateur Windows
5. Lorsque vous sélectionnez une option, les options restantes dans la boîte de dialogue peuvent
changer. Certaines options s'appliquent uniquement à des types spécifiques d'utilisateurs de
base de données. Certaines options peuvent être vides et utiliser la valeur par défaut.

Nom d'utilisateur

Entrez le nom du nouvel utilisateur. Si vous avez choisi Utilisateur Windows dans la liste Type
d’utilisateur, vous pouvez également cliquer sur les points de suspension (...) pour ouvrir la boîte de
dialogue Sélectionner un utilisateur ou un groupe.

Nom d'accès

Page | 64
ADMIN SQL SERVER

Entrez le nom de connexion de l'utilisateur. Vous pouvez également cliquer sur les points de
suspension (…) pour ouvrir la boîte de dialogue Sélectionner la connexion. Nom de connexion est
disponible si vous sélectionnez Utilisateur SQL avec connexion ou Utilisateur Windows dans la
liste Type d’utilisateur.

Mot de passe et Confirmer

le mot de passe Entrez un mot de passe pour les utilisateurs qui s'authentifient auprès de la base de
données.

Langue par défaut

Entrez la langue par défaut de l’utilisateur.

Schéma par défaut

Entrez le schéma qui possédera les objets créés par cet utilisateur. Vous pouvez également cliquer sur
les points de suspension (…) pour ouvrir la boîte de dialogue Sélectionner le schéma. Schéma par
défaut est disponible si vous sélectionnez Utilisateur SQL avec connexion, Utilisateur SQL sans
connexion ou Utilisateur Windows dans la liste Type d’utilisateur.

Nom du certificat

Entrez le certificat à utiliser pour l'utilisateur de base de données. Vous pouvez également cliquer sur
les points de suspension (…) pour ouvrir la boîte de dialogue Sélectionner le certificat. Nom du
certificat est disponible si vous sélectionnez Utilisateur mappé à un certificat dans la liste Type
d’utilisateur.

Nom de la clé asymétrique

Entrez la clé à utiliser pour l'utilisateur de base de données. Vous pouvez également cliquer sur les
points de suspension (…) pour ouvrir la boîte de dialogue Sélectionner la clé asymétrique. Nom de la
clé asymétrique est disponible si vous sélectionnez Utilisateur mappé à une clé asymétrique dans la
liste Type d’utilisateur.

6. Cliquez sur OK.

Créer un utilisateur à l’aide de T-SQL


1. Dans l’Explorateur d'objets, connectez-vous à une instance du Moteur de base de données.
2. Dans la barre d'outils Standard, cliquez sur Nouvelle requête.
3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter.

Page | 65
ADMIN SQL SERVER

Section 4 : Les schémas

Le schéma est un ensemble qui permet de définir un regroupement logique pour les objets. Un
schéma, comme tout objet de la base de données est créé par un utilisateur mais ce n'est l'une des
composantes de l'utilisateur. Ainsi le schéma peut être transférer à un autre utilisateur, mais
également la suppression de l'utilisateur qui a créé le schéma n'entraine pas la suppression du ou des
schémas qu'il a créés.

Dans une base de données l'utilisation des schémas présente plusieurs avantages :

 Regroupement logique : le schéma possède un nom significatif et il permet de réaliser un


regroupement logique des tables, vues, fonctions, procédures, …. Si cette notion
d'organisation peut être absente des petites bases ce n'est pas le même cas pour les bases
plus importantes.
 Entité de sécurité : l'autre aspect important des schémas est qu'ils constituent une entité de
sécurité. Il est ainsi possible de délivrer des privilèges directement au niveau du schéma et
donc concerne tous les objets présents dans le schéma.

Le schéma va être défini à l'aide de l'instruction CREATE SCHEMA. Il est possible de définir le schéma
puis de créer les objets par la suite et d'accorder les autorisations de façon séparés ou bien de cumuler
ces opérations directement dans le CREATE SCHEMA. Lors de la création du schéma il faut également
spécifier le compte d'utilisateur de base de données qui est propriétaire du schéma.

Exemple 1 : Création d'un schéma simple

Le schéma compta est défini et son propriétaire est l'utilisateur de base de données dbo.

create schema compta AUTHORIZATION dbo;

Exemple 2 : Créer une table sur le schéma

Il suffit pour cela de donner le nom table en précisant nomSchéma.nomTable

create table compta.comptes(

numero numeric(8) constraint pk_comptes primary key,

libelle nvarchar(80));

Exemple 3 : Créer un schéma avec une table et accorder des autorisations sur le schéma

Dans l'exemple suivant le schéma catalogue est défini et la table des produits est créé en même temps.
De plus le compte de base de données guest (invité) reçoit le privilège d'exécuter l'instruction SELECT
au niveau du schémas c'est à dire être capable de voir le contenu de toutes les tables présentent dans
ce schéma.

CREATE SCHEMA catalogue AUTHORIZATION dbo

CREATE TABLE produits(

reference nvarchar(13) constraint pk_produits primary key,

libelle nvarchar(80),

PUHT numeric(8,2)) GRANT SELECT TO guest;

Page | 66
ADMIN SQL SERVER

Comment déplacer une table vers un schéma particulier ?

Le schéma étant un ensemble logique, il est possible de transférer des tables, vues, procédures,
fonctions, … facilement car cela n'entraine pas de modification physique. Ce transfert est réalisé avec
l'instruction ALTER SCHEMA. Il faut alors préciser le nom du nouveau schéma et le nom complet de
l'objet à transférer (nomSchéma. NomObjet)

Dans l'exemple suivant la table des clients est transféré du schéma dbo vers le schéma compta.

ALTER SCHEMA compta TRANSFER dbo.clients;

Comment modifier le propriétaire d'un schéma?

C'est l'instruction ALTER autorisation qui permet de modifier le propriétaire d'un schéma. Cette
opération n'est bien sur pas possible sur les schémas sys, dbo et INFORMATION_SCHEMA.

L'exemple suivant montre comment transférer le schéma compta vers le rôle db_owner.

ALTER AUTHORIZATION ON Schema::compta TO db_owner;

Utilisation de SQL Server Management Studio

Pour créer un schéma

1. Dans l'Explorateur d'objets, développez le dossier Bases de données.


2. Développez la base de données dans laquelle créer le nouveau schéma de base de données.
3. Cliquez avec le bouton droit sur le dossier Sécurité, pointez sur Nouveau et
sélectionnez Schéma.
4. Dans la boîte de dialogue Schéma - Nouveau, sur la page Général, saisissez un nom pour le
nouveau schéma dans la zone Nom du schéma.
5. Dans la zone Propriétaire du schéma, entrez le nom d'un utilisateur ou d'un rôle de base de
données propriétaire du schéma. Vous pouvez également cliquer sur Rechercher pour ouvrir
la boîte de dialogue Rechercher des rôles et des utilisateurs.
6. Cliquez sur OK.

Section 5 : Gestion des droits sous SQL SERVER

Pour accéder à une base de données, un utilisateur utilise une connexion. Un utilisateur peut être soit
une personne physique, soit une application (script, batch).

Une base contient de nombreux objets (tables, vues, procédures stockées, fonctions…). Pour
entreprendre certaines actions sur ces objets (consulter, exécuter, modifier…) l'utilisateur doit avoir
les privilèges (aussi appelés droits) nécessaires. L'utilisateur peut obtenir ces droits de manière directe
ou indirecte.

Voici les caractéristiques des droits :

Page | 67
ADMIN SQL SERVER

La gestion des privilèges (droits) se fait avec trois commandes :

Voici les privilèges d’utilisations des droits :

Pour pouvoir attribuer les privilèges au niveau SQL SERVER vous avez les syntaxes suivantes :

Page | 68
ADMIN SQL SERVER

Voici les privilèges sur les objets :

Section 6 : Gestion des rôles

Un rôle est un ensemble de privilèges ou regroupement de privilèges. Il existe trois niveaux de rôle
dans l’architecture SQL SERVER :

 Au niveau Serveur
 Au niveau base
 Au niveau application

Il existe deux types de rôles :

 Rôle utilisateur (au niveau base et application)


 Rôle fixes (au niveau base et serveur)

Lorsque la connexion existe dans SQL Server, elle peut être ajoutée à un rôle serveur. Le rôle de serveur
est représenté par l'objet ServerRole. Le rôle de base de données est représenté par
l'objet DatabaseRole et le rôle d'application est représenté par l'objet ApplicationRole.

Rôles serveur :

 Sysadmin : Administrateur du serveur.


 Serveradmin : Permet de configurer les paramètres niveau serveur.
 Setupadmin : Permet d’exécuter certaines procédures stockées et d’ajouter des serveurs liés.
 Securityadmin : Permet de gérer les connexions serveur.

Page | 69
ADMIN SQL SERVER

 Processadmin : Permet de gérer les traitements au sein de SQL Server.


 Dbcreator : Permet de créer ou modifier des bases de données.
 Diskadmin : Permet de gérer les fichiers sur le disque.
 Bulkadmin : Permet d’exécuter l’instruction BULK INSERT

Rôles base de données :

 Db_owner : Equivalent à propriétaire base de données.


 Db_accessadmin : Permet d’ajouter et supprimer des utilisateurs de base de données.
 Db_datareader : Permet d’utiliser l’instruction SELECT.
 Db_datawriter : Permet les instructions INSERT, UPDATE et DELETE.
 Db_ddladmin : Permet les opérations sur les objets de base de données.
 Db_securityadmin : Permet de gérer les éléments de sécurité sur la base de données. -
Db_backupoperator : Permet l’utilisation des backups.
 Db_denydatareader : Interdit l’instruction SELECT.
 Db_denydatawriter : Interdit l’écriture sur la base de données.

Il est possible de définir ses propres rôles afin de faciliter l’administration des droits dans SQL Server.
Logiquement, on créera un rôle dit personnalisé lorsque plusieurs utilisateurs doivent avoir les mêmes
droits et que ces droits n’existent pas dans les rôles prédéfinis. Les rôles peuvent être accordés soit
directement à un utilisateur, soit à un autre rôle.

Pour créer un nouveau rôle, procédez de la manière suivante. Déployez successivement le nœud de
votre base de données puis le nœud sécurité. Affichez alors le menu contextuel du nœud rôles et
sélectionnez Nouveau rôle. Vous obtenez cette nouvelle fenêtre :

Page | 70
ADMIN SQL SERVER

Il vous suffit alors de préciser le nom et le propriétaire du rôle. En revanche, vous n’êtes pas obligé de
préciser les autres informations de suite. Vous pouvez les modifier ultérieurement en vous rendant
dans les propriétés du rôle voulu.

Voici la syntaxe de création d’un rôle personnalisé :

Nous allons bien entendu créer un rôle grâce à l’instruction CREATE ROLE. Il est alors nécessaire de
préciser le nom du schéma après cette instruction pour assurer son unicité au sein de la base de
données sur le serveur. On peut enfin préciser un propriétaire grâce à la clause AUTHORIZATION.

Section 7 : Contexte d’exécution

Dans SQL SERVER, vous pouvez définir le contexte d’exécution des procédures stockées. Ce contexte
permet d’exécuter une chaîne de commande ou une chaîne de caractères dans un lot Transact-SQL,
ou l'un des modules suivants : procédure stockée système, procédure stockée définie par l'utilisateur,
procédure stockée CLR, fonction définie par l'utilisateur à valeur scalaire ou procédure stockée
étendue.

Page | 71
ADMIN SQL SERVER

CHAPITRE 8 : AUTOMATISATION DE LA GESTION DE SQL SERVER


Section 1 : Agent SQL SERVER

L'Agent SQL Server est un composant de Microsoft SQL Server qui planifie les travaux et gère d'autres
tâches automatisées. Il s'exécute en tant que service Windows, il peut donc démarrer
automatiquement au démarrage du système où il peut être démarré manuellement.

SQL Server Agent peut exécuter un travail en fonction d'une planification, en réponse à un événement
spécifique, ou à la demande. Pour plus d'informations, consultez SQL Server Agent dans la
documentation Microsoft.

Voici les caractéristiques :

 Il permet d’automatiser certaines tâches


 Chaque agent est rattaché à une seule instance
 Il log les erreurs SQL SERVER dans l’observateur d’événement Windows
 Sotck les informations dans la base de données msdb
 Terminologie
 Tâches planifiées
 Les alertes
 Les opérateurs

Étant donné que SQL Server Agent est exécuté sur un hôte géré dans une instance de base de données,
certaines actions ne sont pas prises en charge :

 L'exécution de travaux de réplication et de scripts de ligne de commande à l'aide d'ActiveX, du


shell de commande Windows ou de Windows PowerShell n'est pas prise en charge.
 Vous ne pouvez pas démarrer, arrêter ou redémarrer manuellement SQL Server Agent.
 Les notifications par e-mail via SQL Server Agent ne sont pas disponibles à partir d'une instance
de base de données.
 Les alertes et les opérateurs SQL Server Agent ne sont pas pris en charge.
 L'utilisation de SQL Server Agent pour créer des sauvegardes n'est pas prise en charge.

Section 2 : Configuration de la messagerie

Pour configurer la messagerie de base de données, vous devez être membre du rôle de serveur
fixe sysadmin. Pour envoyer un courrier de base de données, vous devez être membre du rôle de base
de données DatabaseMailUserRole dans la base de données msdb.

C’est un service qui a été externalisé de SQL SERVER pour éviter qu’un problème de service de
messagerie perturbe le fonctionnement global du système. Voici ces caractéristiques :

Page | 72
ADMIN SQL SERVER

Section 3 : Les opérateurs

Voici les caractéristiques d’un opérateur :

 Il correspond à une personne physique ou un groupe dans une entreprise


 Permet à l’Agent SQL SERVER d’envoyer des messages d’alerte ou de fin de travaux
 Types de messages :
 Messagerie
 Net send
 Radiomessagerie
 Les informations sur les opérateurs sont stockées dans la base de données msdb

Section 4 : Les alertes

Les alertes vont être définies afin de déclencher un traitement automatique pour corriger le problème
et/ou avertir un opérateur qui sera en mesure d’agir rapidement afin de résoudre le problème.

Lors du fonctionnement du serveur, des erreurs, des messages ou des événements générés par SQL
Server sont inscrits dans l’Observateur d’événements de Windows. L’agent SQL Server va lire le journal
Application à la recherche des informations qu’il est en mesure de traiter en les comparant aux alertes
qui sont définies dans la table sysalerts de la base msdb.

Une alerte peut également être déclenchée suite au dépassement d’une valeur limite (fixée) par un
compteur de performance. Les alertes associées à une erreur SQL Server sont les plus fréquentes.

Les événements sont générés par SQL Server et entrés dans le journal des applications Microsoft
Windows. L'Agent SQL Server lit le journal des applications et compare les événements qui y sont écrits
aux alertes que vous avez définies. Lorsque l'Agent SQL Server trouve une correspondance, il
déclenche une alerte, qui est une réponse automatisée à un événement. En plus de surveiller les
événements SQL Server, l'Agent SQL Server peut également surveiller les conditions de performances
et les événements WMI (Windows Management Instrumentation).

Pour définir une alerte, vous spécifiez :

 Le nom de l'alerte.
 L'événement ou la condition de performance qui déclenche l'alerte.
 L'action que l'Agent SQL Server prend en réponse à l'événement ou à la condition de
performances.

Chaque alerte doit avoir un nom. Les noms d'alerte doivent être uniques dans l'instance de SQL Server
et ne peuvent pas dépasser 128 caractères.

Une alerte répond à un événement d'un type spécifique. Les alertes répondent aux types
d'événements suivants :

 Événements SQL Server


 Conditions de performances du serveur SQL
 Événements WMI

Page | 73
ADMIN SQL SERVER

Le type de l'événement détermine les paramètres que vous utilisez pour spécifier l'événement précis.

Vous pouvez spécifier qu'une alerte se produise en réponse à un ou plusieurs événements. Utilisez les
paramètres suivants pour spécifier les événements qui déclenchent une alerte :

Numéro d'erreur

L'Agent SQL Server déclenche une alerte lorsqu'une erreur spécifique se produit. Par exemple, vous
pouvez spécifier le numéro d'erreur 2571 pour répondre aux tentatives non autorisées d'appel des
commandes de la console de base de données (DBCC).

Degré de gravité

L'Agent SQL Server déclenche une alerte lorsqu'une erreur de la gravité spécifique se produit. Par
exemple, vous pouvez spécifier un niveau de gravité de 15 pour répondre aux erreurs de syntaxe dans
les instructions Transact-SQL.

Base de données

L'Agent SQL Server déclenche une alerte uniquement lorsque l'événement se produit dans une base
de données particulière. Cette option s'applique en plus du numéro d'erreur ou du niveau de
gravité. Par exemple, si une instance contient une base de données utilisée pour la production et une
base de données utilisée pour la création de rapports, vous pouvez définir une alerte qui répond aux
erreurs de syntaxe dans la base de données de production uniquement.

Texte de l'événement

L'Agent SQL Server déclenche une alerte lorsque l'événement spécifié contient une chaîne de texte
particulière dans le message d'événement. Par exemple, vous pouvez définir une alerte qui répond aux
messages contenant le nom d'une table particulière ou d'une contrainte particulière.

Sélection d'une condition de performance

Vous pouvez spécifier qu'une alerte se déclenche en réponse à une condition de performance
particulière. Dans ce cas, vous spécifiez le compteur de performances à surveiller, un seuil pour l'alerte
et le comportement que le compteur doit afficher si l'alerte doit se produire. Pour définir une condition
de performances, vous devez définir les éléments suivants sur la page Général de l'agent SQL Server de
la boîte de dialogue Nouvelle alerte ou Propriétés de l'alerte :

Objet

L'objet est le domaine de performance à surveiller.

Contrer

Un compteur est un attribut de la zone à surveiller.

Exemple

L'instance SQL Server définit l'instance spécifique (le cas échéant) de l'attribut à surveiller.

Alerte si compteur et valeur

Le seuil de l'alerte et le comportement qui produit l'alerte. Le seuil est un nombre. Le comportement
est l'un des suivants : tombe en dessous de, devient égal à ou monte au-dessus d'un nombre spécifié
pour Value. La valeur est un nombre qui décrit le compteur de condition de performance. Par exemple,

Page | 74
ADMIN SQL SERVER

pour définir qu'une alerte se produise pour l'objet de performance SQLServer:Locks lorsque le temps
d'attente de verrouillage dépasse 30 minutes, vous devez choisir s'élève au-dessus et spécifier 30
comme valeur .

Sélection d'un événement WMI

Vous pouvez spécifier qu'une alerte se produise en réponse à un événement WMI particulier. Pour
sélectionner un événement WMI, vous devez définir les éléments suivants sur la page Général de
l'agent SQL Server de la boîte de dialogue Nouvelle alerte ou Propriétés de l’alerte :

Espace de noms

L'Agent SQL Server s'enregistre en tant que client WMI dans l'espace de noms WMI fourni pour
rechercher des événements.

Mettre en doute

L'Agent SQL Server utilise l'instruction WQL (Windows Management Instrumentation Query Language)
fournie pour identifier l'événement spécifique.

Section 5 : Les travaux

L’automatisation de certaines tâches d’administration répétitives est possible par l’intermédiaire d’un
travail et de la planification de son exécution. Il est toutefois possible de lancer manuellement
l’exécution d’un travail.

Les travaux sont constitués d’un ensemble de tâches. À la fin de chaque tâche deux cas se présentent
: soit la tâche a été exécutée avec succès, soit la tâche a échoué.

Le travail, qui est un enchaînement de tâches doit définir toutes les solutions possibles afin qu’il se
déroule correctement.

Tous les travaux sont stockés au sein de la table sysjobs dans la base msdb.

Les principales caractéristiques d’un travail sont :

 Le nom : il doit être unique sur le serveur et limité à 128 caractères.


 La catégorie : elle permet d’organiser les travaux en fonction des opérations qu’ils réalisent. Il
existe, dès l’installation du serveur, des catégories prédéfinies telles que : Texte intégral,
Maintenance de la base de données...
 Le propriétaire : celui-ci peut être différent de l’utilisateur qui l’a créé.
 La description.
 Les étapes du travail.
 La planification.
 La notification.

Page | 75
ADMIN SQL SERVER

CHAPITRE 9 : MAINTENANCE DES BASES DE DONNEES SQL SERVER


Section 1 : Maintenance d’une base de données

L'instabilité et la corruption des bases de données constituent la cause principale d'un problème
courant de mise à niveau, ainsi que la cause première de nombreux problèmes de performances de
l'interface utilisateur graphique (GUI). Ces problèmes peuvent être atténués et même, souvent,
corrigés grâce à une maintenance proactive de la base de données.

Si vous êtes soumis à des réglementations exigeant qu'un plus grand nombre de données restent
actives, vous devrez ajuster ces opérations pour assurer la maintenance de ces données. Si tel est le
cas, il peut être judicieux d'évaluer la fréquence de vos analyses. 1000 agents qui lancent des analyses
8 fois par jour entraînent une croissance de votre base de données bien plus rapide que si l'analyse a
lieu une seule fois par jour ou par semaine. De plus, le plus souvent, vous n'avez pas besoin de toutes
ces données.

Voici nos recommandations pour la maintenance régulière de la base de données.

Conservation des données

Déterminez la quantité de données qu'il faut conserver à portée de main pour les opérations
quotidiennes. En général, vous êtes opérationnel avec 60-90 jours de données. Utilisez l'outil
Maintenance de la base de données pour nettoyer toutes les données plus anciennes que ce nombre
de jours, et planifiez cette tâche pour qu'elle s'exécute à intervalle régulier.

Rapports

Déterminez les données de rapport nécessaires pour répondre à vos besoins d'audit/de respect des
réglementations. Exécutez des rapports mensuels pour répondre à ces besoins et conservez ces
rapports aussi longtemps que votre stratégie l'exige. En général, il est raisonnable de stocker les
données de rapport pendant 13 mois.

Sauvegardes de base de données

Il est recommandé d'effectuer des sauvegardes incrémentielles toutes les semaines et des sauvegardes
complètes tous les mois. La sauvegarde doit être exécutée juste avant la purge planifiée. Conservez les
sauvegardes aussi longtemps que les données de rapport.

Section 2 : Plan de maintenance

Pour les opérations classiques de l’administrateur comme des sauvegardes régulières de la base de
données et des journaux de transaction, ou bien les opérations de maintenance des index, il est
possible de définir des plans de maintenance. L’exécution de ces différentes tâches va être planifiée
lors de la définition du plan de maintenance.

Les plans de maintenance peuvent être définis à l’aide d’un assistant, mais la création manuelle d’un
plan de maintenance offre une plus grande richesse de paramétrage à condition d’avoir un minimum
de connaissances sur SSIS (SQL Server Integration Service).

Les plans de maintenance sont définis sous forme de package SSIS et c’est bien entendu SQL Server
Agent qui se charge d’exécuter le travail qui lance ce package.

Page | 76
ADMIN SQL SERVER

La définition d’un nouveau plan de maintenance peut aisément être définie en faisant appel à
l’assistant de définition d’un nouveau plan. Cet assistant peut être exécuté depuis le menu contextuel
associé au nœud Gestion - Plans de maintenance depuis l’explorateur d’objets.

Nous avons ci-dessous la liste des tâches dont il est possible d’automatiser pour le plan de maintenance
de la base de données :

 Vérification de l’intégrité d’une base de données


 Compactage de base de données
 Réorganisation des indexes
 Reconstruction des indexes
 Mise à jour des statistiques
 Nettoyage de l’historique des travaux
 Exécution d’un travail de l’agent SQL SERVER
 Sauvegarder les bases de données (FULL, Différentiel, Journal des transactions)
 Nettoyage des sauvegardes et des états
 Notification à l’opérateur
 Exécution d’instruction Transct-SQL

Page | 77
ADMIN SQL SERVER

Page | 78
ADMIN SQL SERVER

Page | 79
ADMIN SQL SERVER

À la fin de l’assistant, une tâche planifiée contenant une étape de type package SSIS sera créée au
niveau de l’agent SQL Server.

Page | 80
ADMIN SQL SERVER

CHAPITRE 10 : AUDIT DES ENVIRONNEMENTS SQL SERVER


Section 1 : Audit au niveau serveur

L'audit d’une instance du moteur de base de données SQL Server ou d'une base de données
individuelle implique le suivi et la journalisation des événements qui se produisent sur le moteur de
base de données. L'audit SQL Server vous permet de créer des audits de serveur, qui peuvent contenir
des spécifications d'audit de serveur pour les événements au niveau du serveur et des spécifications
d'audit de base de données pour les événements au niveau de la base de données. Les événements
audités peuvent être écrits dans les journaux d'événements ou dans des fichiers d'audit.

Il existe plusieurs niveaux d'audit pour SQL Server, en fonction des exigences gouvernementales ou
des normes pour votre installation. SQL Server Audit fournit les outils et les processus dont vous avez
besoin pour activer, stocker et afficher les audits sur divers objets de serveur et de base de données.

Composants d'audit SQL Server

Un audit est la combinaison de plusieurs éléments en un seul package pour un groupe spécifique
d'actions de serveur ou d'actions de base de données. Les composants de l'audit SQL Server se
combinent pour produire une sortie appelée audit, tout comme une définition de rapport combinée à
des graphiques et des éléments de données produit un rapport.

Présentation de l'utilisation de SQL Server Audit

Vous pouvez utiliser SQL Server Management Studio ou Transact-SQL pour définir un audit. Une fois
l'audit créé et activé, la cible recevra des entrées.

Vous pouvez lire les journaux d'événements Windows à l'aide de l'utilitaire Observateur
d'événements dans Windows. Pour les fichiers cibles, vous pouvez utiliser soit la visionneuse de
fichiers journaux dans SQL Server Management Studio, soit la fonction fn_get_audit_file pour lire le
fichier cible.

Le processus général de création et d'utilisation d'un audit est le suivant.

1. Créez un audit et définissez la cible.


2. Créez une spécification d'audit de serveur ou une spécification d'audit de base de données qui
correspond à l'audit. Activez la spécification d'audit.
3. Activez l'audit.
4. Lisez les événements d'audit à l'aide de l'Observateur d'événements Windows, de l’Afficheur
des fichiers journaux ou de la fonction fn_get_audit_file.

Section 2 : Audit au niveau base

Pour une base de données :

 L’audit s’effectue au niveau de la base de données et non plus au niveau de l’instance


 Il est possible d’avoir plusieurs édits par base de données
 Par défaut l’audit crée est dans un état désactivé, il va falloir l’activer manuellement.
 Il est possible de retrouver l’ensemble des groupes d’action d’audit de niveau base .

La spécification d'audit de base de données collecte les actions d'audit au niveau de la base de données
déclenchées par la fonctionnalité d'événements étendus. Vous pouvez ajouter des groupes d'actions
d'audit ou des événements d'audit à une spécification d'audit de base de données. Les événements

Page | 81
ADMIN SQL SERVER

d'audit sont les actions atomiques qui peuvent être auditées par le moteur SQL Server. Les groupes
d'actions d'audit sont des groupes d'actions prédéfinis. Les deux sont à la portée de la base de données
SQL Server. Ces actions sont envoyées à l'audit qui les enregistre dans la cible. N'incluez pas d'objets
de portée serveur, tels que les vues système, dans une spécification d'audit de base de données
utilisateur.

Les résultats d'un audit sont envoyés à une cible, qui peut être un fichier, le journal des événements
de sécurité Windows ou le journal des événements des applications Windows. Les journaux doivent
être examinés et archivés périodiquement pour s'assurer que la cible dispose de suffisamment
d'espace pour écrire des enregistrements supplémentaires.

Section 3 : SQL Profiler

SQL Server Profiler est une interface permettant de créer et de gérer des traces et d'analyser et de
relire les résultats des traces. Les événements sont enregistrés dans un fichier de trace qui peut ensuite
être analysé ou utilisé pour rejouer une série d'étapes spécifiques lors du diagnostic d'un problème.

Vous pouvez démarrer le profileur dans SQL Server Management Studio ou avec Azure Data Studio à
l'aide de l'extension SQL Server Profiler .

Utiliser le profileur SQL Server

Microsoft SQL Server Profiler est une interface utilisateur graphique vers SQL Trace pour surveiller une
instance du moteur de base de données ou d'Analysis Services. Vous pouvez capturer et enregistrer
des données sur chaque événement dans un fichier ou une table pour les analyser ultérieurement. Par
exemple, vous pouvez surveiller un environnement de production pour voir quelles procédures
stockées affectent les performances en s'exécutant trop lentement. SQL Server Profiler est utilisé pour
des activités telles que :

 Parcourir les requêtes de problème pour trouver la cause du problème.


 Recherche et diagnostic des requêtes lentes.
 Capturer la série d'instructions Transact-SQL qui conduisent à un problème. La trace
enregistrée peut ensuite être utilisée pour répliquer le problème sur un serveur de test où le
problème peut être diagnostiqué.
 Surveillance des performances de SQL Server pour régler les charges de travail. Pour plus
d'informations sur le réglage de la conception de la base de données physique pour les charges
de travail de base de données, consultez Assistant de réglage du moteur de base de données .
 Corréler les compteurs de performances pour diagnostiquer les problèmes.

SQL Server Profiler prend également en charge l'audit des actions effectuées sur les instances de SQL
Server. Les audits enregistrent les actions liées à la sécurité pour examen ultérieur par un
administrateur de sécurité.

Catégorie d'événement

Une catégorie d'événement définit la manière dont les événements sont regroupés dans SQL Server
Profiler. Par exemple, toutes les classes d'événements de verrouillage sont regroupées dans
la catégorie d'événements Locks . Cependant, les catégories d'événements n'existent que dans SQL
Server Profiler. Ce terme ne reflète pas la manière dont les événements Engine sont regroupés.

Colonne de données

Page | 82
ADMIN SQL SERVER

Une colonne de données est un attribut d'une classe d'événements capturée dans la trace. Étant
donné que la classe d'événements détermine le type de données pouvant être collectées, toutes les
colonnes de données ne sont pas applicables à toutes les classes d'événements. Par exemple, dans une
trace qui capture la classe d'événements Lock : Acquired , la colonne de données BinaryData contient
la valeur de l'ID ou de la ligne de page verrouillée, mais la colonne de données Integer Data ne contient
aucune valeur car elle ne s'applique pas au classe d'événement capturée.

Modèle

Un modèle définit la configuration par défaut d'une trace. Plus précisément, il inclut les classes
d'événements que vous souhaitez surveiller avec SQL Server Profiler. Par exemple, vous pouvez créer
un modèle qui spécifie les événements, les colonnes de données et les filtres à utiliser. Un modèle
n'est pas exécuté, mais est plutôt enregistré sous forme de fichier avec une extension .tdf. Une fois
enregistré, le modèle contrôle les données de trace qui sont capturées lorsqu'une trace basée sur le
modèle est lancée.

Trace

Une trace capture des données en fonction des classes d'événements, des colonnes de données et des
filtres sélectionnés. Par exemple, vous pouvez créer une trace pour surveiller les erreurs
d'exception. Pour ce faire, vous sélectionnez la classe d'événements Exception et les colonnes de
données Error , State et Severity . Les données de ces trois colonnes doivent être collectées pour que
les résultats de la trace fournissent des données significatives. Vous pouvez ensuite exécuter une trace,
configurée de cette manière, et collecter des données sur tous les événements d' exception qui se
produisent sur le serveur. Les données de trace peuvent être enregistrées ou utilisées immédiatement
pour l'analyse. Les traces peuvent être rejouées à une date ultérieure, bien que certains événements,
tels que Exceptionévénements, ne sont jamais rejoués. Vous pouvez également enregistrer la trace en
tant que modèle pour créer des traces similaires à l'avenir.

SQL Server propose deux manières de tracer une instance de SQL Server : vous pouvez tracer avec SQL
Server Profiler ou vous pouvez tracer à l'aide de procédures stockées système.

Filtre

Lorsque vous créez une trace ou un modèle, vous pouvez définir des critères pour filtrer les données
collectées par l'événement. Pour éviter que les traces ne deviennent trop volumineuses, vous pouvez
les filtrer afin que seul un sous-ensemble des données d'événement soit collecté. Par exemple, vous
pouvez limiter les noms d'utilisateur Microsoft Windows dans la trace à des utilisateurs spécifiques,
réduisant ainsi les données de sortie.

Si aucun filtre n'est défini, tous les événements des classes d'événements sélectionnées sont renvoyés
dans la sortie de trace.

Section 4 : Déclencheur DDL

Les déclencheurs DDL se déclenchent en réponse à divers événements DDL (Data Definition
Language). Ces événements correspondent principalement aux instructions Transact-SQL
commençant par les mots clés CREATE, ALTER, DROP, GRANT, DENY, REVOKE ou UPDATE
STATISTICS. Certaines procédures stockées système qui effectuent des opérations de type DDL
peuvent également déclencher des déclencheurs DDL.

Page | 83
ADMIN SQL SERVER

Utilisez les déclencheurs DDL lorsque vous souhaitez effectuer les opérations suivantes :

 Empêchez certaines modifications de votre schéma de base de données.


 Que quelque chose se produise dans la base de données en réponse à un changement dans
votre schéma de base de données.
 Enregistrez les modifications ou les événements dans le schéma de la base de données.

NB :

Testez vos déclencheurs DDL pour déterminer leurs réponses aux procédures stockées système qui
sont exécutées. Par exemple, l'instruction CREATE TYPE et la procédure
stockée sp_addtype déclencheront toutes deux un déclencheur DDL créé sur un événement
CREATE_TYPE.

Page | 84
ADMIN SQL SERVER

CHAPITRE 11 : SURVEILLANCE DE SQL SERVER


Section 1 : Travailler avec le moniteur de performance

Le moniteur SQL Server n'effectue pas de fonctions de surveillance, mais il héberge des modules qui
ont ce rôle. Le moniteur SQL Server inclut le moniteur de réplication et le moniteur de mise en miroir
de bases de données.

 Moniteur de réplication

Pour surveiller la réplication, vous devez être membre du rôle de serveur fixe sysadmin sur le serveur
de distribution ou membre du rôle de base de données fixe replmonitor dans la base de données de
distribution. Un administrateur système peut ajouter n'importe quel utilisateur au rôle replmonitor ,
ce qui lui permet de visionner l'activité de réplication dans le Moniteur de réplication ; cependant,
l'utilisateur ne peut pas administrer la réplication.

 Moniteur de mise en miroir de bases de données

Pour surveiller la mise en miroir de bases de données, vous devez être membre du rôle de serveur
fixe sysadmin ou membre du rôle de base de données fixe dbm_monitor sur l’instance de serveur. Si
vous êtes membre de sysadmin ou dbm_monitor sur une seule des instances de serveur partenaire, le
moniteur peut se connecter uniquement à ce partenaire ; il ne peut pas extraire d’informations de
l’autre partenaire. Pour plus d'informations, consultez Database Mirroring Monitor Overview.

Voici les caractéristiques d’un moniteur de performance :

Voici les composant à surveiller :

Page | 85
ADMIN SQL SERVER

Section 2 : Définir ses propres compteurs de performance

Pour la mise en place des compteurs de performance les caractéristiques sont assez simples et sont
les suivantes :

Intégration Services installe un ensemble de compteurs de performances qui vous permettent


d’analyser les performances du moteur de flux de données. Par exemple, le compteur Mémoires
tampon spoulées permet de déterminer si des tampons de données sont écrits temporairement sur le
disque lors de l'exécution d'un package. Cette permutation diminue les performances et indique que
la mémoire de l'ordinateur est insuffisante.

Page | 86
ADMIN SQL SERVER

CHAPITRE 12 : DEPANNAGE DES PROBLEMES D’ADMINISTRATION DE


SQL ET MISE EN MIROIRE
Section 1 : Corrélation des fichiers de trace

À l'aide de SQL Server Profiler, vous pouvez ouvrir un journal des performances Microsoft Windows,
choisir les compteurs que vous souhaitez mettre en corrélation avec une trace et afficher les
compteurs de performances sélectionnés à côté de la trace dans l'interface utilisateur graphique de
SQL Server Profiler. Lorsque vous sélectionnez un événement dans la fenêtre de trace, une barre rouge
verticale dans le volet de la fenêtre de données du Moniteur système de SQL Server Profiler indique
les données du journal des performances qui sont en corrélation avec l'événement de trace
sélectionné.

Pour corréler une trace avec des compteurs de performances, ouvrez un fichier ou une table de trace
qui contient les colonnes de données StartTime et EndTime , puis cliquez sur Importer les données de
performances dans le menu Fichier du profileur SQL Server . Vous pouvez ensuite ouvrir un journal des
performances et sélectionner les objets et les compteurs du Moniteur système que vous souhaitez
mettre en corrélation avec la trace.

Les données du moniteur de performance sont des compteurs de performances tel que la
consommations CPU, la file d’attente de lecture ou d’écriture sur disque. Les trace de générateurs de
profils sont des transactions, les requêtes lancées sur votre système. L’objectif de la corrélation est :

 Permettre d’identifier un point de contention


 Permettre d’identifier les requêtes problématiques

Section 2 : SQL Tunning Advisor ou Assistant Paramétrage du moteur de base de données

L'Assistant Paramétrage du moteur de base de données Microsoft analyse les bases de données et
émet des recommandations que vous pouvez utiliser pour optimiser les performances des requêtes.
L'Assistant Paramétrage du moteur de base de données vous permet de sélectionner et de créer un
ensemble optimal d'index, de vues indexées ou de partitions de table sans devoir être un expert
familiarisé avec la structure de la base de données ou les mécanismes internes de SQL Server. Vous
pouvez effectuer les tâches suivantes à l'aide de l'Assistant Paramétrage du moteur de base de
données :

 Résoudre les problèmes liés aux performances d'une requête de problème spécifique
 Paramétrer un grand nombre de requêtes sur une ou plusieurs bases de données
 Exécuter une analyse de simulation exploratoire des modifications de conception physique
potentielles
 Gérer l'espace de stockage

Avantages de l'Assistant Paramétrage du moteur de base de données

L'optimisation des performances des requêtes peut être difficile sans une compréhension complète de
la structure de la base de données et des requêtes exécutées sur la base de données.
L’Assistant Paramétrage du moteur de base de données (DTA) peut simplifier cette tâche en analysant
le cache du plan de requête actuel ou une charge de travail des requêtes Transact-SQL que vous créez,

Page | 87
ADMIN SQL SERVER

puis en recommandant une conception physique appropriée. Pour les administrateurs de base de
données plus avancés, l'Assistant Paramétrage du moteur de base de données expose un mécanisme
puissant pour effectuer une analyse de simulation exploratoire des différentes alternatives de
conception physique. L'Assistant Paramétrage du moteur de base de données peut fournir les
informations suivantes :

 recommander la meilleure combinaison d’index columnstore pour les bases de données, en


utilisant l’optimiseur de requête pour analyser des requêtes dans une charge de travail ;
 Recommander des partitions alignées ou non alignées pour les bases de données référencées
dans une charge de travail ;
 Recommander des vues indexées pour les bases de données référencées dans une charge de
travail ;
 Analyser les effets des modifications suggérées, notamment l'utilisation des index, la
distribution des requêtes au sein des tables et les performances des requêtes dans la charge
de travail ;
 Recommander des solutions d'optimisation de la base de données pour un ensemble réduit
de requêtes à problème ;
 Vous permettre de personnaliser la recommandation en définissant des options avancées
telles que les contraintes d'espace disque ;
 Fournir des rapports qui résument les effets de la mise en œuvre des recommandations pour
une charge de travail donnée.
 Prendre en compte d'autres solutions dans lesquelles vous fournissez des choix de conception
possibles sous forme de configurations hypothétiques que l'Assistant Paramétrage du moteur
de base de données évalue.
 Paramétrer les charges de travail à partir de diverses sources, notamment le magasin de
requêtes SQL Server, le cache du plan, une table ou un fichier de trace SQL Server Profiler, ou
encore un fichier .SQL.

L'Assistant Paramétrage du moteur de base de données est conçu pour gérer les types de charges de
travail de requêtes suivants :

 Requêtes de traitement transactionnel en ligne (OLTP) uniquement


 Requêtes de traitement analytique en ligne (OLAP) uniquement
 Requêtes mixtes OLTP et OLAP
 Charges de travail à nombre élevé de requêtes (plus de requêtes que de modifications de
données)
 Charges de travail à nombre élevé de mises à jour (plus de modifications de données que de
requêtes)

Section 3 : Les plan d’exécution des requêtes

Un plan d’exécution est une méthode d’accès aux données. Avec SQL Server, il existe plusieurs façons
de récupérer un plan d'exécution. Les deux méthodes les plus importantes sont :

Graphiquement

La représentation graphique des plans d'exécution de SQL Server est facilement accessible dans
Management Studio mais elle est difficile à partager car les informations de prédicat sont seulement
visibles quand la souris est au-dessus d'une opération spécifique.

En tableau

Page | 88
ADMIN SQL SERVER

Le plan d'exécution en tableau est difficile à lire mais facile à copier car il montre toutes les
informations adéquates d'un seul coup.

Le plan d'exécution graphique est généré avec l'un des deux boutons surlignés ci-dessous.

Le bouton gauche récupère le plan d'exécution de la requête sélectionnée. Le bouton droit capture le
plan la prochaine fois qu'une requête est exécutée.

Dans les deux cas, la représentation graphique du plan d'exécution apparaît dans l'onglet « Exécution
plan » du panneau « Results ».

La représentation graphique est facile à lire avec un peu de pratique. Néanmoins, elle affiche
seulement les informations essentielles : les opérations et les tables ou index sur lesquelles elles
agissent.

Management Studio affiche plus d'informations lorsque vous déplacez la souris au-dessus d'une
opération. Cela rend difficile le partage d'un plan d'exécution dans tous ses détails.

La représentation en tableau d'un plan d'exécution de SQL Server est récupéré en profilant l'exécution
d'une requête. La commande suivante l'active :

Le plan d'exécution en tableau est difficilement utilisable dans SQL Server Management Studio car la
colonne StmtText est trop large pour tenir sur un écran.

Page | 89
ADMIN SQL SERVER

L'avantage de cette représentation est qu'elle peut être copiée sans perdre d'informations adéquates.
Cela se révèle très pratique si vous voulez poster un plan d'exécution SQL Server sur un forum ou sur
une plateforme similaire. Dans ce cas, il est souvent suffisant de copier la colonne StmtText et de la
reformater un peu :

Section 4 : Configuration de la mise en miroir

Avant qu'une session de mise en miroir de bases de données puisse démarrer, le propriétaire de la
base de données ou l'administrateur système doit s'assurer que la base de données miroir a été créée
et est prête pour la mise en miroir. La création d'une nouvelle base de données miroir nécessite au
minimum de prendre une sauvegarde complète de la base de données principale et une sauvegarde
de journal ultérieure et de les restaurer toutes les deux sur l'instance de serveur miroir, à l'aide de
WITH NORECOVERY.

Voici les caractéristiques :

Page | 90
ADMIN SQL SERVER

Pour la configuration, vous devrez vous appuyer sur cette architecture :

Il existe deux types de mise en miroir :

 La mise ne miroir synchrone


 La mise en miroir asynchrone

Page | 91

Vous aimerez peut-être aussi