EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Gestion des transactions SQLServer
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 2 Transaction D é finition : Une transaction est une unit é logique de travail. Cad s é quence d'instruction SQL soumise à une BD. Ceci implique la modification d'au moins une donn é e, fait passer la BD d'un é tat coh é rent à un autre. Une transaction prend 2 é tats : "valid é e" "comitted" " é chou é e "rolled back" Une transaction ex é cut é e ne peut pas être annul é e, l'ensemble d'instruction est une entit é logique. Tout est ex é cut é ou abandonn é, pour effectuer cela SQLServer g è re un journal des transactions
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 3 Gestion Sql serveur n'accepte dans la BD que des opérations validées (committed). Des utilisateurs multiples ont accès à une ou plusieurs bases de données. Des utilisateurs multiples ne peuvent pas accèder aux mêmes données en lecture et écriture simultanément. SQL server protège contre les problème logiciel, matériel, panne alimentation.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 4 Traitement des transactions. SQLServer gère un journal des transactions. SQLserver verrouille des pages de données au cours des transactions de façon à ce que d'autres utilisateurs ne puissent pas accéder à des données en cours de modification. SQLServer exécute une reprise automatique ( recovery ) lorsqu'il redémarre. Les instructions de contrôle des transactions déterminent à quel moment une transaction commence ou est annulée.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 5 Mécanisme du journal des transactions. Chaque BD possède son journal, ils s'appellent SYSLOGS, géré exclusivement par SQLServer. Ce journal contient un enregistrement pour chaque modification apportée à la base de données dans l'ordre où elle a été effectuée. SQLServer met en mémoire les opérations de lecture et d'écriture de toutes les tables y compris la table SYSLOGS, dans une zone de mémoire appelée cache de données. Ce cache est composé de pages.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 6 Gestion du cache Le journal des transactions est généralement distinct des véritables données de la base. Nous avons un vidage du cache vers le journal à chaque fois qu'une transaction est validée ou besoin de place dans le cache. Si un nombre de transaction a été validée, un point de reprise (check point) est réalisé pour cette BD. Une entrée de journal est effectuée pour indiquer qu'un point de reprise a été réalisé. Toutes les pages du cache sont transférées sur le périphérique de journal. Périodiquement en fonction du temps (ex toutes 5minutes) on effectue le checkpoint, Les transactions validées contenues dans le Log sont effectivement écrite en base, celles non validées restent dans le log.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 7 Reprise Cas de la reprise automatique : cas du redémarrage. Les transactions validées depuis le dernier point de reprise sont relancées (rolled forward) Les transactions qui n'ont pas pu être validées avant l'arrêt sont invalidées. Verrouillage : limite l'accès aux données lors de modification il est géré par SQLServer. Il est largement utilisé pour éviter tout conflit entre les transactions s'exécutant simultanément. Verrouillage de page : Un bloc de données est de 2Ko cela constitue la plus petite unité pouvant être lue ou écrite sur disque
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 8 bulkcopy Utilitaire permettant de copier des données contenues dans des tables depuis ou vers un fichier. Le programme gérant les transfert est BCP. Utile pour transfert, sauvegarde et chargement de données.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 9 Sécurité Limiter laccès au serveur Limiter laccès aux données. Limiter le nombre dopérations effectués sur les données.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 10 Terminologie Login (compte), constitué dun nom de connexion et mot de passe. Correspond à une personne. Gestion niveau serveur.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 11 Rôles SA : administrateur système Sso : responsable sécurité Oper : opérateur. SA créer à linstallation de sqlserver, permet de gérer les login pour attribution des rôles. Administrateur du serveur.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 12 Utilisateurs et groupes. Entités portant un nom Reçoivent des droits sur les objets. Commande GRANT et REVOKE Utilisateur : un loin peut accèder à une BD en étant ajouté en tant quutilisateur. Plusieurs login peuvent être associés au même utilisateur. Groupe : permet à SQLServer dattribuer un nom collectif à un ensemble dutilisateur. Tous les utilisateurs font partie du groupe public.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 13 DBO : propriétaire Le DBO, utilisateur particulier. Ajoute et supprime des utilisateurs, groupes de sa base de données. Fait un checkpoint manuel Effectue les sauvegardes et restauration Modification de la configuration de la BD
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 14 Guest & public Rappel : copie de la BD model Toujours utilisateur GUEST, invite Permet de se connecter avec les droits minimaux. Groupe public, tous les utilisateurs sont au moins dans le groupe public. Ne peut pas être supprimé
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 15 Propriétaires et objets Si un utilisateur a le droit de créer des objets il devient le propriétaire de lobjet quil crée. Attention gestion plus lourde si plusieurs propriétaires dobjets.