mardi 6 mai 2008

Accueil

Ce blog est en quelque sorte une restitution de mon cours d'administration sur SQL SERVER 2005.
J'ai développé en détails les différents modules pour vous permettre d'en faire une bonne utilisation.Donc pour explorer il suffit de cliquer sur un titre pour visualiser son contenu.

Bonne Chance

VIII. Conclusion

Nous voilà à la fin de la présentation des différents modules d’administration de SQL Server 2005.
Nous pouvons à présent dire que SQL SERVER 2005 s'avère être un outil très puissant et moderne de par ses multiples fonctionnalités.

VII. Gestion de la sauvegarde et restauration d’une base de données

A. Sauvegarde

SQL Server 2005 offre différentes méthodes de sauvegarde :

1. Sauvegarde complète

La sauvegarde complète d’une base de données sauvegarde l’entièreté de la base de données en incluant les fichiers de données et une partie du journal de transaction. La stratégie de sauvegarde des bases de données complètes peut être mis en œuvre si la base de données est de petite taille, si elle comporte peu de modification ou di elle est en lecture seule.

Avant de procéder à la sauvegarde de base de données, il faut créer une unité de sauvegarde.

L’unité de sauvegarde dispose d’un nom logique et d’un type qui désigne la nature du support. Par défaut il crée l’unité de sauvegarde dans le répertoire « C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup » . Cependant il est recommandé de créer une nouvelle partition où sera stockée la sauvegarde. Pour ce faire on utilise la procédure stockée addumpdevice.

Pour cela il faut créer le dossier AWBackup dans le C:\ avant d’exécuter l’unité de sauvegarde

Lancer Management Studio

Aller sur la base de données AdventureWorks

Cliquer sur Nouvelle requête et taper le code sui suit :

use AdventureWorks

exec sp_addumpdevice 'disk',

'AdventureWorksDWBackup','C:\AWbackup\AdventureWorksDWBackup.bak'

'disk' : représente le type de l’unité de sauvegarde

'AdventureWorksDWBackup' : représente le nom logique de l’unité de sauvegarde

'C:\AWbackup\AdventureWorksDWBackup.bak': représente l’emplacement de l’unité de sauvegarde

Apprès la création de l’unité de sauvegarde il faut procéder à la sauvegarde de la base de données au sein de cette unité. Pour ce faire il faut taper la commande :

backup database AdventureWorksDW to AdventureWorksDWBackup


Il est aussi possible d’exécuter directement la commande sans même créer une unité de sauvegarde

backup database AdventureWorksDW to disk=‘C:\AWbackup\AdventureWorksDWBackup.bak’

Application : Créer une base d edonnées nommée marketingdb

Faire la sauvegarde complète sans passer par la création de l’unité de sauvegarde

Pour ce faire taper la commande :

backup database marketingdb to disk='C:\AWbackup\marketingdbBackup.bak'


2. Sauvegarde journal de transaction

La sauvegarde du journal de transaction enregistre des modifications effectuées dans la base de données. Ce type de sauvegarde peut être effectué après la création d’une sauvegarde complète.

use master

exec sp_addumpdevice 'disk', 'AdventureWorksDWLog',

'C:\AWbackup\AdventureWorksDWBackupLog.bak'


Sauvegarder dans l’unité

backup database AdventureWorksDW to AdventureWorksDWLog


3. Sauvegarde du journal après défaillance

Elle permet d’éviter la perte des données en conservant un enchaînement de journal intact. Une chaîne de journal est une séquence continu de sauvegarde de journaux commençant par une sauvegarde complète.

4. Sauvegarde différentielle

Elle est effectuée pour minimiser le temps nécessaire pour la restauration d’une base de données fréquemment modifiée.

backup database AdventureWorksDW to disk='C:\AWbackup\AdventureWorksDWBackup.bak' with differential



5. Sauvegarde de fichiers ou groupe de fichiers

Elle peut être effectuée si la taille de la base de données est importante et que la sauvegarde complète prend beaucoup de temps.

Application : Créer la base de données Productiondb avec un groupe de fichiers nommé AWFG1

Créer une unité de sauvegarde ProductiondbBackup

use Productiondb

exec sp_addumpdevice 'disk',

'ProductiondbBackup','C:\AWbackup\ProductiondbBackup.bak'


Faire une sauvegarde du groupe de fichiers

backup database Productiondb filegroup='AWFG1' to ProductiondbBackup


6. Sauvegarde partielle et différentielle

Elle est similaire à une sauvegarde complète. La différence repose sur le fait que la sauvegarde partielle ne contient pas tous les groupes de fichiers. Ce type de sauvegarde enregistre seulement les données du groupe de fichiers ayant subi des modifications depuis la sauvegarde précédente.

7. Sauvegarde en copie seule

Elle correspond à la création d’une copie de la sauvegarde et sa conservation en lieu sûr.


B. Restauration

La restauration détermine les stratégies de sauvegarde et de restauration utilisées pour une base de données.

  • Le modèle de récupération simple, utilisé pour les petites bases de données ou les bases de données dont les données ne sont pas fréquemment modifiées.

  • Le modèle de récupération complet, utilisé quand la récupération complète au départ du support endommagé est la priorité principale.

  • Le modèle de récupération journalisé en bloc, similaire au modèle de récupération complet et utilise les sauvegardes aussi bien de la base de données que du journal pour recréer une base de données.

1. Restauration de la sauvegarde complète

Créer l’unité de sauvegarde « AdventureWorksDWFullBackup » et exécuter la restauration en tapant la commande suivante

use master

restore database AdventureWorksDW

from disk='C:\AWbackup\AdventureWorksDWFullBackup.bak'

with recovery


2. Restauration de fichiers des journaux de transactions

use master

go

restore database AdventureWorksDW

from AdventureWorksDWBackup

with norecovery

go

restore log AdventureWorksDW

from AdventureWorksDWLog

with recovery

La base de données AdventureWorksDW apparaît avec une flèche verte pour montrer la restauration.


VI.Gestion de la sécurité d’une base de données

SQL Server 2005 fait appel à trois mécanismes pour la sécurité :

  • Mécanisme d’authentification
  • Mécanisme d’autorisation
  • Mécanisme de validation

Trois composants interviennent dans la sécurité :

  • Entités de sécurité
  • Entités sécurisables
  • autorisations

A. Entités de sécurité

Ce sont les composants logiques qui doivent accéder aux ressources de SQL Server. On les localise à trois niveaux :

  • OS Windows : ce sont les comptes d’utilisateur local, les comptes d’utilisateur de domaine et les groupes windows
  • Serveur de base de données : au niveau du serveur on a des identifiants d’accès serveur. C’est un ensemble d’identité utilisateur enregistré et authentifié par SQL Serveur. Les rôles SQL Server sont un ensemble de connexion d’accès ayant des autorisations similaires.
  • Base de données : ce sont des comptes d’accès ayant l’autorisation d’accéder à une base de données. Le rôle de base de données est un ensemble d’utilisateurs de base de données ayant des droits d’accès similaires. Le rôle d’application est utilisé pour accéder à la base de données à l’aide d’une application particulière.

B. Les sécurisables

Ce sont des objets auxquels accèdent des entités de sécurité telles qu’une base de base de données ou un service de base de données.

Au niveau de Windows il s’agit de clés de registre utilisés par SQL Server.

Au niveau SQL Server ce sont des hiérarchies imbriquées appelées portées :

  • Portée serveur : elle inclut des connexions d’accès des base de données et des points de terminaisons créés au niveau du serveur.
  • Portée Base de données : elle inclut des objets tels que les utilisateurs, les rôles d’applications, les assemblages, les catalogues de texte intégral, les schémas et les événements DDL qui sont crées au niveau de la base de données
  • Portée de schémas : elle inclut des objets de base de données tels que les tables, les vues, les fonctions, les procédures et les types de contenu dans un schéma.

C. Les autorisables

L’accès aux sécurisables par les entités de sécurité peut être activé ou déasctiver en configurant les autorisations. Celles-ci conditionnent les niveaux auxquels les entités de sécurité ont accès aux sécurisables.

D. Création de connexions d’accès et d’utilisateurs

Sans connexion d’accès on ne peut pas accéder au serveur SQL. La première méthode est avec l’instruction transact-sql en tapant la commande create login

Etude de cas : Vous êtes l’administrateur de la société, le développeur Bouba vient d’être engagé, un nom de connexion doit être créé pour lui donner accès au serveur SQL. Le compte d’accès de Bouba doit comporter les paramètres suivants :

  • Nom de connexion : Bouba
  • Nom d’utilisateur :Boubaz
  • Mode d’authentification : SQL Server
  • Mot de passe : esp
  • Stratégie de mot de passe : activé
  • Langue par défaut : français

De plus Bouba doit être autorisé sur toutes les tables du schéma Production.

1. Création de compte d’accès

1ere méthode via Transact-SQL

Faire un clic droit sur AdventureWorks

Cliquer sur Nouvelle requête

Taper la commande create login bouba with PASSWORD='esp'


2eme méthode via Management Studio

Aller sur l’instance

Sécurité – Nouveau – Connexion

Nom : bouba

Authentification : SQL Server

2. Création de compte utilisateur

Aller sur AdventureWorks

Faire un clic droit sur Sécurité – Nouveau – Utilisateur

3. Création d’une assignation utilisateur

Pour permettre à Bouba de visualiser toutes les tables du schéma Production, une des solutions consisterait à en faire le propriétaire. Pour cela :

Dérouler Sécurité – Utilisateurs

Double-cliquer sur bouba

Aller sur Schéma par défaut – Parcourir

Cocher Production

Cliquer sur OK

E. Affectation de rôles

Le rôle est un objet de base de données auquel un ensemble d’autorisations sont octroyées. Les types de rôles sont :

  • Rôle de base de données fixe
  • Rôle de base de données défini par l’utilisateur
  • Rôle d’application

1. Rôles de base de données fixes

Ils sont définis au niveau de la base de données et existent dans chaque base de données

Rôles de base de données fixes

Autorisations

Db_accessadmin

Ajouter, supprimer des utilisateurs, des groupes et des rôles de base de données

Db_backupoperator

Sauvegarder la base de données

Db_datareader

Lire des données à partir d’une table quelconque

Db_datawriter

Ajouter, modifier, supprimer des données d’une table quelconque

Db_ddladmin

Ajouter, modifier, supprimer des objets de base de données

Db_denydatareader

Restreindre la lecture des données d’une table quelconque

Db_denydatawriter

Restreindre la modification des données d’une table quelconque

Db_owner

Réaliser une activité quelconque de rôle de base de données

Db_securityadmin

Créer des schémas, changer des rôles de base de données et des rôles d’application

Public

Maintenir les autorisations par défaut

2. Rôles de base de données définis par l’utilisateur

Il est possible de créer ses propres rôles de base de données pour boucler plusieurs et leur assigner un ensemble commun d’autorisations. Ceci permet de configurer un ensemble d’autorisations à assigner à des utilisateurs d’une base de données.

La commande create role permet de le faire.

3. Rôle d’application

C’est une entité de sécurité de base de données qui permet à une application de fonctionner avec ses propres privilèges.

La commande create application role permet de le faire

4. Assignation de rôles aux utilisateurs de base de données

Chaque rôle se voit assigner un ensemble d’autorisations. Pour assigner des autorisations à un utilisateur, un rôle peut être assigné à un utilisateur où celui-ci peut être autorisé à devenir un membre du rôle.

Dérouler AdventureWorks – Sécurité – Utilisateurs

Double-cliquer sur bouba

Aller dans l’onglet Appartenance au rôle de base de données pour lui assigner un rôle

F. Affectation d’autorisations

Après avoir créé les entités de sécurité, les sécurisables, les autorisations doivent être assignées aux entités de sécurité pour définir le niveau d’accès aux éléments sécurisables qu’elles détiennent.

1. Octroi d’autorisations au niveau du serveur

Au niveau du serveur, les autorisations peuvent être octroyées aux connexions d’accès. Les connexions d’accès peuvent être autorisées à accéder aux objets du serveur ou à accomplir des activités au niveau du serveur telles que la modification et la création de base de données.

Les autorisations communément utilisées pouvant être octroyées au niveau du serveur sont :

  • Alter any database
  • Alter any endpoint
  • Alter any login
  • Create any database
  • Create any endpoint
  • Shutdown
  • View any database
  • View any definition
  • View server state

2. Octroi d’autorisations au niveau de la base de données

Au niveau de la base de données, les utilisateurs doivent pouvoir accomplir des activités telles que la création d’un schéma. Les autorisations octroyées aux éléments sécurisables telles que les schémas, les utilisateurs, les assemblages et les objets service broker. Les autorisations sont :

  • Create schema
  • Create service
  • Create asymetric key
  • Create symetric key
  • Create contract
  • Create queue
  • Create role

EXEMPLE : Octroi avec base de données

use AdventureWorks

grant select

on schema::Production

to bouba

3. Octroi d’autorisations au niveau des schémas

Au niveau des schémas, des autorisations peuvent être octroyées pour des éléments sécurisables telles que les tables, les vues, les procédures stockées et les types. Les autorisations sont :

  • Create table
  • Create function
  • Create view
  • Create procedure
  • Delete
  • Update
  • Execute
  • Insert
  • Select
  • Alter any user
  • View database state

EXEMPLE :

use AdventureWorks

grant create procedure

to bouba

Dérouler AdventureWorks – Tables

Faire un clic droit sur la table Person.Contact

Cliquer sur Propriétés – Autorisations – Ajouter – Parcourir

Choisir l’utilisateur bouba

Cliquer sur OK


G. Révocation d’autorisations

Il est parfois nécessaire de supprimer les autorisations octroyées aux utilisateurs.

EXEMPLE :

revoke alter

on schema::Sales

from bouba

H. Chiffrement des données

En plus de restreindre l’accès à la base de données et aux objets de la base de données, il est possible d’ajouter une couche de sécurité supplémentaire en chiffrant les données. Si les données sont chiffrées, elles restent sécurisées même si un utilisateur non autorisé accède à la base de données. Les données et objets de base de données tels les procédures ou fonctions peuvent être chiffrées à l’aide des clés ou certificats.

1. Création de clé

Une clé est une valeur appliquée à une fonction cryptographique pour chiffrer ou déchiffrer une valeur de données sécurisées. Il faut distinguer les clés symétriques et les clés asymétriques.

Pour les clés symétriques c’est une valeur qui est utilisée aussi bien pour le chiffrement que pour le déchiffrement de données.

EXEMPLE : Clé symétrique

create symetric key SymKey

with algorithm= TRIPLE_DES

encryption by password='mot-de-passe'

EXEMPLE : Clé asymétrique

create asymetric key AsymKey

with algorithm= RSA_2048

encryption by password='mot-de-passe'

2. Création de certificat

Un certificat peut être utilisé dans une base de données SQL Server pour ajouter une signature digitale à un objet de base de données tel qu’une procédure stockée ou une fonction.

use AdventureWorks

create certificate AwCustCert

encryption by password='mot-de-pass'

with subject='cert for adventureWorks Customers',

start_date='01/04/2008',

expiry_date='09/04/2008'

V. Création et gestion de base de données

Une base de données permet de stocker un ensemble de données. Les objets de base de données permettent de structurer vos données et à définir les mécanismes de sécurité, d’améliorer et de contrôler l’intégrité des données.

Parmi ces objets nous avons :

  • Les tables : ensembles de lignes associées à des colonnes
  • Les contraintes : permettent de définir des valeurs relatives autorisées dans les colonnes et vont constituer le mécanisme standard pour garantir l’intégrité des données.
  • Les valeurs par défaut définissent une valeur stockée dans une colonne si aucune autre valeur n’est fournie au moment de l’ajout.
  • Les index constituent des structures de stockage offrant un accès rapide pour l’extraction des données.
  • Les vues permettent de visualiser des données provenant d’une ou de plusieurs tables de la même base de données.
  • Les fonctions définies par l’utilisateur vont permettre de renvoyer soit une valeur scalaire soit une table.
  • Les procédures stockées sont un ensemble d’instructions nommées en Transact-SQL pré-compilées devant être exécutées ensemble.
  • Les délencheurs représentent une forme spéciale de procédure stockée exécutée automatiquement lorsqu’un utilisateur modifie les données d’une table ou d’une vue.

A. Création de base de données


1. Fichiers de la base de données

Une base de données est un espace de stockage. Il y a deux fichiers importants :

a) Fichiers de données primaires (.mdf)

Ils contiennent des informations sur le démarrage de la base de données (objets de base de données et les données intégrées dans la base de données).

b) Fichiers de données secondaires (.ndf)

Ils ne sont pas obligatoires mais peuvent intervenir pour pouvoir stocker les données utilisateur.

c) Fichiers journaux (.ldf)

Ils servent à récupérer les détails sur toutes les transactions effectuées sur les base et fournissent les modifications apportées à votre base de données.


2. Groupes de fichiers

C’est un ensemble de fichiers. Il y a 2 groupes :

a) Groupes de fichiers primaires

Ils contiennent des fichiers de données primaires. Le groupe de fichiers secondaires contient des données secondaires .

b) Groupes de fichiers définis par l’utilisateur

Ce groupe de fichiers est créé dans l’optique de rassembler ou pour regrouper des fichiers qui ne font pas partie du groupe de fichiers primaires ou secondaires.

Remarque : Lors de la création d’une base de données, il y a un fichiers de données primaires et un journal de transaction qui sont créés par défaut.


3. Création d’une base de données

La création d’une base de données peut se faire via l’interface graphique de Management Studio ou directement par Transact-SQL.

a) Management Studio

Lancer Management Studio

Faire un clic droit sur Base de données – Nouvelle base de données

Renseigner le champ nom : _espdb

Cliquer sur OK

b) Transact-SQL

Cliquer sur Nouvelle Requête

Taper le code suivant :

Create database _espdb

On

(name=_espdb_dat,

Filename= 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\_espdb_dat.mdf',

Size=10,

Maxsize=50,

Filegrowth=5)

Log on

(name=_espdb_log,

Filename= 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\_espdb_log.ldf',

Size=5MB,

Maxsize=25MB,

Filegrowth=5MB)


Cliquer sur l’icône Analyser pour vérifier la syntaxe

Si aucune erreur n’est signalée cliquer sur Exécuter

Faire un clic droit sur la base de données _espdbPropriétés



4. Les schémas

Le schéma représente un espace de nommage pour les objets de la base de données. Toutes les bases de données créées ont un shéma, le schéma par défaut s’appelle dbo.

Pour accéder à un objet de la base de données il faut mettre nomschéma.nomobjetBaseDeDonnées ou nomBaseDeDonnées.nomschéma.nomObjetBaseDeDonnées

Pour créer un schéma il faut faire un clic droit sur _espdb -- Nouvelle Requête et saisir ce qui suit :

create schema MySales

create table MySales.Salesdat

(SalesId int not null Primary Key,

SalesAmount float not null)



B. Gestion de base de données

La gestion d’une base de données inclut des activités telles que l’ajout, la suppression de fichiers et de groupes de fichiers ainsi que la modification de la taille de fichiers et de groupe de fichiers. La base de données peut être supprimée si elle n’est plus utilisée.

Les secondes opérations de gestion sont relatives au déplacement d’un serveur de base de données à une autre ou d’une instance SQL SERVER vers une autre instance sur le même serveur.

En plus des tâches de maintenance régulière il arrive parfois qu’un administrateur de base de données doit accomplir d’autres tâches telles que le contrôle de la performance d’exécution des requêtes ou le contrôle de la quantité d’espace de disque libre.

Une telle analyse permet d’améliorer les performances de la base de données. L’administrateur de base de données est également responsable pour l’obtention des infos sur l’efficacité des index créés.

L’une des tâches fondamentales est de pouvoir maintenir la taille de la base de données. Une des méthodes utilisées pour y parvenir est de libérer l’espace non utilisé. Cette espace libre peut alors être utilisée pour enregistrer d’autres objets de la base de données.

Il faut aussi effectuer des contrôles d’intégrité de la base de données pour assurer que les données sont fiables et consistantes.


1. Modification d’une base de données

Il est nécessaire d’ajouter ou de modifier un fichier ou un groupe de fichiers ou encore supprimer un fichier de la base de données. Pour effectuer ces opérations on utilise l’instruction Alter database.

Ajout d’un groupe de fichiers :

Alter database _espdb

add filegroup EmpFG

Ajouter un ficher au groupe de fichers créé :

Alter database _espdb

add file (

name=EmpFGFile1,

filename='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\EmpFGFile1.ndf',

size=10,

maxsize=100,

filegrowth=10)

Ajout d' un fichier à EmpFG

Alter database _espdb

add file (

name=EmpFGFile2,

filename='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\EmpFGFile2.ndf',

size=10,

maxsize=100,

filegrowth=10)

to filegroup EmpFG


Remarque : Il ne peut y avoir qu’un seul fichier de données primaires .mdf par base de données.

Actualiser la base de données et faire un clic droit dessus – Propriétés – Fichiers



2. Suppression de base de données

Taper la commande : drop database nomBaseDeDonnées


3. Migration d’une base de données


a) Création d’une seconde instance

Lancer le setup.exe

Sélectionner SQL Server Database Services

Cliquer sur Suivant



Sélectionner Instance nommée

Saisir ESP22

Cliquer sur Suivant



Sélectionner le compte système par défaut

Cliquer sur Suivant



Sélectionner le mode mixte

Saisir « esp » comme mot de passe

Cliquer sur Suivant



Cliquer sur Suivant



Cliquer sur Installer



Cliquer sur Suivant



Cliquer sur Terminer



Démarrer Management Studio

Cliquer sur Connexion – Parcourir – Moteur de base de données

Choisir la nouvelle instance

Cliquer sur OK

b) Migration d’une base de données

Nous allons détacher la base de données _espdb sur l’instance ESP2 et le faire migrer sur la nouvelle instance ESP22. Pour ce faire :

Faire un clic droit sur _espdb Propriétés Options

Aller sur Restreindre l’accès et choisir l’option Single (Ceci permet de bloquer les accès à la base de données)

Cliquer sur OK -- Oui


Faire un clic droit sur _espdb – Tâches – Détacher

Activer mettre à jour

Décocher conserver les catalogues

Cliquer sur OK


Aller sur la nouvelle instance

Faire un clic droit sur Base de données – Joindre—Ajouter

Aller dans MSSQL – Data

Sélectionner _espdb_dat.mdf

Cliquer sur OK


Pour réaliser cette tâche avec Transact-SQL il faut faire :

Sp_detach_db ‘_espdb’ , true


4. Gestion des statistiques

a) Création de statistiques

Les statistiques peuvent être créés pour des colonnes spécifiques d’une table ou d’une vue. Pour créer une statistique il faut taper la commande create statistics.

REMARQUE : A partir de Management Studio aller dans Aide puis Index et taper create statistics. Vous verrez toutes les fonctionnalités de cette commande.


Création de groupe de statistiques dans la table AdventureWorks

Cliquer sur Nouvelle Requête

Taper le code qui suit :

create statistics ContactEmail

on Person.Contact(ContactID,EmailAddress)



Renvoyer l’ensemble des groupes de statistiques de la table Person.Contact

Taper Sp_helpstats'Person.Contact','All'



Voir le contenu du groupe de statistiques

Taper dbcc show_statistics('Person.Contact','ContactEmail')



b) Mise à jour des statistiques

On utilise la commande

update statistics Person.Contact ContactEmail



5. Réduction d’une base de données

Il devient essentiel de vérifier la taille de la taille de la base de données lorsque le volume de données s’accroît. L’administrateur de base de données doit contrôler la taille de la base de données pour améliorer les performances.

Pour réduire la taille d’un fichier il faut taper la commande

dbcc shrinkfile

Pour réduire la taille d’une base de données il faut taper la commande

dbcc shrinkdatabase

EXEMPLE : faire un clic droit sur AdventureWorks – Tâches – Réduire – Fichier

Cocher l’option Réorganiser les pages avant de libérer l’espace inutilisé

Mettre 1Mo

Cliquer sur OK


6. Expansion de la base de données

Avec l’accroissement du volume des données dans la base de données, les fichiers d’enregistrement peuvent atteindre leur taille maximale, il est donc nécessaire d’augmenter la taille de la base de données pour admettre plus de données.

Faire un clic droit sur AdventureWorks – Propriétés -- Fichiers



7. Réalisation de vérification d’intégrité de la base de données

dbcc permet en plus de réduire la taille de la base de données, de contrôler l’intégrité d’une base de données.

dbcc checkdb permet de contrôler la cohérence et l’intégrité de la base de données.

dbcc checkalloc permet de contrôler la cohérence de l’allocation de l’espace disque d’une base de données particulière

dbcc table est identique à dbcc checkdb à la différence qu’elle contrôle une seule vue indexée ou un index particulier.


8. Automatisation de la base de données avec un agent SQL Server

Un administrateur de base de données est responsable d’assurer la cohérence, la fiabilité et l’actualisation des données d’une base de données. Pour ce faire certaines tâches administratives doivent être effectuées périodiquement. Dans cette optique il est possible d’automatiser leur exécution grâce à SQL Server Agent.


Etude de cas : En tant qu’administrateur de base de données vous devez souvent démarrer ou arrêter le service de texte intégral sur votre serveur de base de données. Pour ce faire, vous avez décidé de créer un travail avec SQL Server Agent. Quand le travail est exécuté, vous devez envoyer une notification à l’administrateur système de votre entreprise à l’aide du service de messagerie de windows. L’adresse IP de la machine de l’administrateur système est 10.10.10.142.

Pour résoudre ce problème, des tâches suivantes devront être effectuées


a) Création d’un opérateur

La création d’un travail pour expédier une notification à l’administrateur quand le service de texte intégral démarre nécessite la création d’un opérateur.

Pour ce faire il faut :

Aller dans l’explorateur d’objets de Management Studio

Faire un clic droit sur Agent SQL Server

Cliquer sur Démarrer puis sur OUI

Dérouler Agent SQL Server

Faire un clic droit sur Opérateurs

Cliquer sur Nouvel opérateur


Renseigner les informations suivantes :

Nom : kiki

Adresse : Net Send



NB : Il faut que le service Windows Messenger soit configuré préalablement.


b) Création d’un travail

Faire un clic droit sur Travaux – Nouveau Travail

Renseigner les informations suivantes :

Nom : Démarrer service de recherche de texte intégral

Propriétaire : DEV1\sgedd

Description : Travail de service de recherche de texte intégral



Cliquer sur Etapes – Nouveau



Renseigner les informations suivantes :

Nom de l’étape: Démarrer service de recherche de texte intégral

Type : Système d’exploitation

Commande : Net Start msftesql$ESP2



Cliquer sur OK puis Notifications



Choisir l’opérateur kiki

Choisir l’option « Lorsque le travail est terminé »



Faire un clic droit sur Démarrer service de recherche de texte intégral

Cliquer sur Afficher l’historique -- Fermer



Etude de cas : En tant qu’administrateur, vous voulez accomplir une activité impliquant l’insertion en vrac dans la base de données AdventureWorks. Quand vous l’accomplissez elle échoue par manque d’espace dans la base de données tempdb.Vous souhaitez donc une alerte dans la base de données tmpdb. Cette alerte doit être lancée dès que la base de données tempdb n’a que 10Mo d’espace libre. L’alerte doit délivrer le message « Augumenter la taille de la base de données tempdb pour résoudre le problème ».


c) Création d’une alerte

Faire un clic droit sur Agent SQL Server

Cliquer sur Alerte – Nouvelle alerte

Nom : tempdbalerte

Type : Alerte de condition de performance SQL Server

Objet : MSSQL$ESP2 : Databases

Compteur : Data File(s) Size(KB)

Instance : tempdb

Alerte : devient égal à

Valeur : 100 000


Aller sur l’onglet Réponses

Cocher « Notifier les opérateurs »

Cocher Net Send


Aller sur l’onglet Options

Cocher Net Send

Noter « Augumenter la taille de la base de données tempdb »

Cliquer sur OK