Documente Academic
Documente Profesional
Documente Cultură
Nous allons travailler sur une base de donnes de gestion de couses hippiques
Crer les utilisateurs& ' ( comme comptes )indo)s et les insrer dans un groupe )indo)s nomm *tilsateur+,L : Pour cela $aire un clic droit sur le poste de travail-.rer- *tilisateurs
2. 3. 4.
!0
Mot de passe Windows utilisateur& utilisateur5 utilisateur6 utilisateur( Compte SQL Server
2n utilisant +,L +erver Management +tudio accorder les autorisations suivantes (clic droit sur la tableproprit-autorisations# : Utilisateurs Marie_Numro.roupe Autorisations Peut slectionner les occurrences de toutes les tables de la base Peut insrer des occurrences dans toutes les tables Peut supprimer des occurrences dans la table C7289L *tilisateur& *tilisateur5 *tilisateur6 *tilisateur( Peut consulter la table P:;P:<2=9<:2 9 les m>mes droits que le propritaire de la base 9 les m>me droits que Marie0 ;n crera un r?le qu@on lui attribuera Peut slectionner la table P9:=<C<P2: modi$ier le nom et l@adresse des propritaires et transmettre ces droits
Avec le compte SQL Server Marie, ralisez les oprations suivantes : (pour se connecter avec ce compte $aire un clic droit sur le serveur - connection# 2%cutez le script <nsertCourse0sql (rpertoire =P! sur PolAMalhiere# permettant de remplir les tables 9$$icher le contenu de chacune des tables <nsrer une occurrence dans la table C7289L +upprimer une occurrence de la table C7289L Connectez vous sous WIN !WS avec le compte Utilisateur" et ralisez les oprations suivantes : (pour se connecter avec ce compte dmarrer sa session 4indo)s et ouvrez +,L +erver Management +tudio# 9$$icher le contenu des tables P:;P:<2=9<:2 et C;*:+2 (le rsultat estBil celui attendu C# Connectez vous sous WIN !WS avec le compte utilisateur# et ralisez les oprations suivantes : 9$$icher le contenu des tables Crer une table C7289LD" et insrer ' partir de la table C7289L tous le chevau% ns en &DD" Modi$ier certaines occurrences +upprimer certaines occurrences Connectez vous sous WIN !WS avec le compte utilisateur$ et ralisez les oprations suivantes : <nsrer une occurrence dans la table C7289L 9$$icher le contenu de chacune des tables +upprimer l@occurrence de la table C7289L que vous venez de crer
Connectez vous sous WIN !WS avec le compte utilisateur% et ralisez les oprations suivantes : 9$$icher le contenu de la table P9:=<C<P2: Modi$ier le nom d@un propritaire Donner l@autorisation ' utilisateur& de modi$ier les noms et adresses des propritaires Connectez vous sous WIN !WS avec le compte utilisateur" et ralisez les oprations suivantes : Modi$ier l@adresse d@un propritaire Connectez vous avec votre compte utilisateur et crivez en SQL, l&attri'ution des autorisations suivantes : *tilisateur( peut slectionner les tables C7289L et P:;P:<2=9<:2 modi$ier les noms des chevau% et supprimer les occurrences de la table P9:=<C<P2: (ri)iez en vous connectant avec le compte utilisateur% *ue ces oprations sont possi'les Connectez+vous avec votre compte utilisateur et crivez en SQL, l&ordre permettant d&annuler les autorisations *ue vous venez d&accorder , utilisateur% (ri)iez en vous connectant avec le compte utilisateur% *ue les oprations suivantes ne sont plus possi'les : 9$$icher le contenu des tables C7289L et P:;P:<2=9<:2 modi$ier les noms des chevau% et supprimer les occurrences de la table P9:=<C<P2:
Crer un r-le dont les mem'res sont les utilisateurs" , % et accorder , ce r-le l&autorisation suivante: Possibilit de crer une table
Il faut donc savoir quoi correspond chacun de ces fichiers. En faisant trs si ple! le fichier de donnes stoc"e toutes les donnes de la #ase! le fichier de log stoc"e les transactions $oues depuis la dernire vidange de celui%ci. &ous verrons quelle est la co ande de 'ac"up! puis co ent effectuer une sauvegarde avec le client graphique (SS)SE* et enfin co ent planifier une sauvegarde quotidienne. La commande TSQL BACKUP La co ande +SQL ',-./0 per et d1envoyer au oteur SQL Server la de ande de sauvegarde. 2ous trouve3 toute la docu entation ncessaire sur cette co ande dans la docu entation )S4& : BACKUP TSQL -ette co ande de sauvegarde est dpendante du ode de $ournalisation actif sur votre #ase. En effet! les logs de transaction enregistrent toutes les transactions $oues sur votre #ase de donnes! ceci suivant le ode de $ournalisation : -o plet (code 5* : +outes les transactions sont enregistres
6ournalis en #loc (code 7* : &1enregistre pas les insertions en #loc Si ple (code 8* : 0as d1enregistre ent des transactions
2ous trouvere3 une explication des odes de rcupration sur le site )S4& : Modes de rcupration et gestion des journaux de transactions ,insi dans le cas de la rcupration (ou $ournalisation* en ode si ple! vous n1ave3 pas #esoin de faire une sauvegarde du $ournal de transaction! pour les deux autres cas! cette sauvegarde est o#ligatoire pour vider le fichier de $ournal. Si vous ave3 d1ailleurs un pro#l e de croissance exagre de ce fichier de $ournalisation! $e vous invite consulter l1article sur le su$et : MS SQL Server et les pro lmati!ues du journal de transaction 0our savoir dans quelle configuration se trouvent vos #ases de donnes : SQL S"#$"# %&&' ( L)ST"# L"S M*+"S +" #"CUP"#AT)*, +" T*UT"S L"S BAS"S +" +*,,""S +U S"#$"U# )aintenant que nous savons quelles sont les configurations de chaque #ase! nous pouvons voir co ent effectuer une sauvegarde d1une des #ases et de son $ournal sur le disque - du serveur. &ous travaillerons avec la #ase de donnes exe ple de SQL Server 799: : SQL Server %&&' Samples and Sample +ata ases Sauvegarde du -ournal de transaction Si notre #ase de donnes n1est pas en ode si ple! nous devons o#ligatoire ent effectuer une sauvegarde de ce fichier. -ette sauvegarde doit se faire avant celle du fichier de donnes. 0our effectuer une sauvegarde depuis SQL Server! il suffit donc d1utiliser la co ande +SQL ;',-./0;! celle%ci exige une liste ini ale de para tres :
/SE < aster= ',-./0 L>? <,dventure@or"s= +> 4IS. A &1-:B,dventure@or"sCL>?.+D&1 @I+E &>F>D),+! &>I&I+! &,)E A &1,dventure@or"s%6ournal des transactions Sauvegarde1 ?>
&ous pouvons ds lors effectuer une sauvegarde co plte de la #ase de donnes. Sauvegarde du .ic/ier de donnes -ette sauvegarde per et de re onter la #ase de donnes co e elle tait lors de la sauvegarde. -ette tGche est o#ligatoire pour toutes les utilisations de oteur relationnel afin d1viter au axi u la perte de donnes. La co ande est si ilaire la prcdente :
/SE < aster= ',-./0 4,+,',SE <,dventure@or"s= +> 4IS. A &1-:B,dventure@or"sC4,+,S.',.1 @I+E &>F>D),+! &>I&I+! &,)E A &1,dventure@or"s%-o plte 'ase de donnes Sauvegarde1 ?>
Les extensions ',. et +D& ne sont pas o#ligatoires! ce sont $uste des nor es d1usage! vous pouve3 utiliser toute autre extension. )aintenant que nous savons co ent effectuer un #ac"up d1une #ase de donnes en +SQL! nous voulons savoir co ent effectuer un #ac"up depuis SQL Server Management Studio "xpress! puis surtout co ent ettre en place une sauvegarde auto atique sur notre serveur. Sauvegarde avec SSMS "xpress &ous allons aintenant voir co ent effectuer une sauvegarde un o ent donn depuis SQL Server Management Studio "xpress. -et outil tant l1outil de gestion et de requHte graphique des oteurs SQL Server 799: Express Edition. &ous travaillerons avec la configuration que nous utilisons depuis plusieurs articles co prenant : @indoIs 7998 Server
SQL Server 799: Express Edition @ith ,dvanced Services @indoIs Share0oint Services 27 @indoIs Share0oint Services 27 SQL Server 799: )anage ent Studio Express Edition La #ase de donnes IISL>?
4epuis le panneau ;Explorateur d1o#$ets;! il faut cliquer avec le #outon droit sur la #ase puis +Gches et Sauvegarder
. >n atteint alors un cran que l1on doit para trer! nous slectionnons dans la liste une sauvegarde co plte! le no que l1on veut donner cette sauvegarde! le che in d1accs au fichier de sauvegarde
(-:BIISL>?C4,+,S.',.*.
&ous devons a$outer une vrification de la sauvegarde (dans l1cran des options*.
Enfin nous cliquons sur >. afin de faire cette sauvegarde. Attention 0 Il faut #ien sur que le co pte d1excution du oteur SQL Server ait les droits d1criture sur dans le rpertoire dfini.
Mise en place d1une sauvegarde automati!ue La ise en place d1une sauvegarde auto atique i plique le passage par un agent de planification. -ontraire ent )S4E ou les versions payantes de SQL Server 799:! SQL Server 799: Express Edition ne possde pas le odule SQL ,gent qui est l1agent de planification de SQL Server. La solution est donc d1utiliser l1agent de planification de @indoIs (+as" Scheduler*. En effet! celui%ci per et d1excuter des taches (,pplications! fichier 'atchs! ...* des heures (ou dans des cas* #ien spcifies. Il nous faut donc crer un ',+-E qui va effectuer une sauvegarde spcifique. Le #atch devra lancer l1outil en ligne de co ande d1excution de script de SQL Server 799: : Microso.t SQLCM+ Il s1agit du re plaJant de l1ancien outil : Microso.t *SQL Si nous reprenons notre exe ple de sauvegarde de la #ase de donnes ,dventure@or"s! voici donc le fichier ;Sauvegarde,4@.#at; qu1il faut crer (sur une seule ligne* :
sqlc d %S )>&SED2E/DBSQLEK0DESS %/ sa %0 )ot4e0asse %Q ;',-./0 4,+,',SE <,dventure@or"s= +> 4IS. A &1-:B,dventure@or"sC4,+,S.',.1 @I+E &>F>D),+! &>I&I+! &,)E A &1,dventure@or"s%-o plte 'ase de donnes Sauvegarde1;
ande :
Il ne reste donc plus qu1 crer le fichier ',+-E avec cette co ande et de planifier ce ',+-E avec le planificateur de tGches de @indoIs. 2ous le trouvere3 en allant dans : 0anneau de -onfiguration L +Gches planifies , ce stade! nous savons co ent excuter une sauvegarde spcifique sur une #ase de donnes voulue. En revanche! il est #eaucoup plus intressant de faire la sauvegarde de l1ense #le des #ases de donnes h#erges sur notre achine SQL Server 799: Express Edition. Mise en place d1une sauvegarde de toutes les ases de donnes 0our effectuer ce travail! nous allons utiliser un script is disposition de tous : SQL S"#$"# ( P#*C2+U#" ST*CK2" 3A)SA,T U, BACKUP +" T*UT"S L"S BAS"S "T -*U#,AU4 +" T#A,SACT)*, AUT*MAT)QU"M",T -e script per et de crer une 0rocdure Stoc"e afin d1effectuer la sauvegarde de l1ense #le des #ases de donnes et $ournaux de transaction! puis de co pacter ces fichiers avec l1outil de )icrosoft )a"e-a#. ,insi! il faut d$ co encer par odifier un para tre de notre serveur SQL Express afin d1autoriser l1excution des co andes externes depuis le oteur SQL Server. -eci se fait en allant dans : 4 arrer L 0rogra es L )icrosoft SQL Server 799: L >utils de configuration L -onfiguration de la surface d1exposition SQL Server Si vous souhaite3 plus d1infor ations! vous trouvere3 l1explication sur la configuration : Les *utils de Con.iguration de SQL Server %&&' "xpress "dition Il faut alors cliquer sur ;-onfiguration de la surface d1exposition pour les fonctionnalits; afin d1activer la possi#ilit de lancer des co andes 4P5CM+S6"LL.
aster.d#o.S0CSyste CSauvegardes+otales
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% -DE,+E 0D>-E4/DE d#o.S0CSyste CSauvegardes+otales MN 0er et de sauvegarder toutes les #ases et logs et de les co presser (-,'* de toutes les #ases du serveur SQL Server NM OSauvegardeLogs ,S int! OSauvegarde'ases ,S int! ODepertoireSauvegarde ,S 2ar-har(P999* ,S %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 4claration des 2aria#les 4E-L,DE Ona e sysna e 4E-L,DE Ostatus int 4E-L,DE O+est,uto+runcate #it 4E-L,DE OLaDequette varchar(P999* 4E-L,DE O4ate6our varchar(79* 4E-L,DE ODepertoire varchar(P999* 4E-L,DE ODepertoire4efaut varchar(599* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Initialisation des 2aria#les dclares SE+ O4ate6our A DE0L,-E(->&2ED+(2,D-E,D! ?et4ate(*! 597*! 1.1! 1C1* SE+ ODepertoire4efaut A 1-:B',-./0',SESB1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 0DI&+ 1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 0DI&+ 1 4,+E 4E L, S,/2E?,D4E L,&-EE : 1Q O4ate6our 0DI&+ 1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 2rification du para tre du rpertoire des 'ases et Logs IF D+DI)(ODepertoireSauvegarde* RA 11 'E?I& 0DI&+ 1Dpertoire Fourni la S01 IF DI?E+(ODepertoireSauvegarde! 5* RA 1B1
SE+ ODepertoire A ODepertoireSauvegarde Q 1B1 ELSE SE+ ODepertoire A ODepertoireSauvegarde E&4 ELSE 'E?I& 0DI&+ 1Dpertoire &on Fourni la S0 % -ration du rpertoire par dfaut : 1Q ODepertoire4efaut SE+ OLaDequette A 1 aster.d#o.xpCc dshell 11).4ID 1Q ODepertoire4efaut Q111! &>C>/+0/+ 1 0DI&+ 1Dequette : 1Q OLaDequette EKE-/+E (OLaDequette* SE+ ODepertoire A ODepertoire4efaut E&4 0DI&+ 1Dpertoire de Sauvegarde des 'ases et Logs : 1Q ODepertoire %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 4claration du -urseur sur la liste des 'ases de donnes 4E-L,DE +ES+-/DSE/D -/DS>D F>D SELE-+ aster.d#o.sysdata#ases.na e! aster.d#o.sysdata#ases.status FD>) aster.d#o.sysdata#ases %% @EEDE ( aster.d#o.sysdata#ases.status S P*RA P %% @EEDE aster.d#o.sysdata#ases.na e &>+ I& (1te pd#1! 1 odel1! 1pu#s1* %% >uverture du -urseur >0E& +ES+-/DSE/D FE+-E &EK+ FD>) +ES+-/DSE/D I&+> Ona e! Ostatus %% 'ouclage sur le curseur dfini @EILE OOFE+-ECS+,+/S A 9 'E?I& %% 2rifie que la #ase de transaction n1est pas en ode si ple (donc pas de log sauver* SE+ O+est,uto+runcate A Ostatus S P MN %% Suivi des valeurs pour tests 0DI&+ 1',SE : 1Q Ona e 0DI&+ 1+ES+ +D/&-,+E : 1Q -,S+(O+est,uto+runcate ,S 2,D-E,D* 0DI&+ 12aleur Status : 1Q -,S+(Ostatus ,S 2,D-E,D* NM %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 2rification de la sauvegarde des Logs de 'ases de ande IF (OSauvegardeLogs A 5* ,&4 (O+est,uto+runcate A 9* 'E?I& 0DI&+ 11 0DI&+ 1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 0DI&+ 1',-./0 4/ L>? 4E L, ',SE 4E 4>&&EES : 1Q Ona e %%%%%%%%%%%%%%%%% L>?S %%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Sauvegarde du Log de transaction courant dans le -urseur SE+ OLaDequette A 1/SE ;1Q Ona e Q1; EKE- spCaddu pdevice 114IS.11! ;1Q Ona e Q1Log;! ;1Q ODepertoire Q Ona e Q1Log.',.; ',-./0 L>? ;1Q Ona e Q1; +> ;1Q Ona e Q1Log;1 0DI&+ 1Dequette : 1Q OLaDequette EKE-/+E (OLaDequette* %% Suppression du device dclar dans la ta#le )aster.Sysdevices SE+ OLaDequette A 1/SE ;1Q Ona e Q1; EKE- spCdropdevice ;1Q Ona e Q1Log; 1 0DI&+ 1Dequette : 1Q OLaDequette EKE-/+E (OLaDequette*
%% ,rchivage du fichier ',. avec le for at @indoIs -,' SE+ OLaDequette A 1 aster.d#o.xpCc dshell 1Q111-:B@I&4>@SBsyste 87B a"eca# M2<5= ;1Q ODepertoire Q Ona e Q1Log.',.; ;1Q ODepertoire Q Ona e Q1LogC1Q O4ate6our Q1.ca#;111Q1! &>C>/+0/+ 1 0DI&+ 1Dequette : 1Q OLaDequette EKE-/+E (OLaDequette* %% Suppression du fichier ',. SE+ OLaDequette A 1 aster.d#o.xpCc dshell 114EL ;1Q ODepertoire Q Ona e Q1Log.',.;11! &>C>/+0/+ 1 0DI&+ 1Dequette : 1Q OLaDequette EKE-/+E (OLaDequette* E&4 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 2rification de la sauvegarde des 'ases de donnes de ande IF OSauvegarde'ases A 5 'E?I& 0DI&+ 11 0DI&+ 1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 0DI&+ 1',-./0 4E L, ',SE 4E 4>&&EES : 1Q Ona e %%%%%%%%%%%%%%%%% ',SES %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Sauvegarde de la #ase courante dans le -urseur SE+ OLaDequette A 1/SE ;1Q Ona e Q1; ',-./0 4,+,',SE ;1Q Ona e Q1; +> 4IS. A111Q ODepertoire Q Ona e Q1.',.111 0DI&+ 1Dequette : 1Q OLaDequette EKE-/+E (OLaDequette* %% ,rchivage du fichier ',. avec le for at @indoIs -,' SE+ OLaDequette A 1 aster.d#o.xpCc dshell 1Q111-:B@I&4>@SBsyste 87B a"eca# M2<5= ;1Q ODepertoire Q Ona e Q1.',.; ;1Q ODepertoire Q Ona e Q1C1Q O4ate6our Q1.ca#;111Q1! &>C>/+0/+ 1 0DI&+ 1Dequette : 1Q OLaDequette EKE-/+E (OLaDequette* %% Suppression du fichier ',. SE+ OLaDequette A 1 aster.d#o.xpCc dshell 114EL ;1Q ODepertoire Q Ona e Q1.',.;11! &>C>/+0/+ 1 0DI&+ 1Dequette : 1Q OLaDequette EKE-/+E (OLaDequette* E&4 0DI&+ 11 0DI&+ 1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% ,vance le curseur d1un -ran FE+-E &EK+ FD>) +ES+-/DSE/D I&+> Ona e! Ostatus E&4 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Fer eture du -urseur -L>SE +ES+-/DSE/D %% Li#ration de la oire prise par le -urseur 4E,LL>-,+E +ES+-/DSE/D %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ?> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% 2ous pouve3 utiliser cette S0 co e suit :
%% EKE- d#o.S0CSyste CSauvegardes+otales 5! 9! 1-:B)on'ac/p4e'asesB1 L il archivera les Logs de +ransaction sans les #ases %% EKE- d#o.S0CSyste CSauvegardes+otales 9! 5! 1-:B)on'ac/p4e'asesB1 L il archivera les #ases sans les Logs de +ransaction %% EKE- d#o.S0CSyste CSauvegardes+otales 5! 5! 11 L il archivera les #ases et les Logs de +ransaction dans le rpertoire par dfaut 1-:B',-./0',SESB1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -o e expliqu sur le site! nous avons plusieurs ode d1excution de ce script! nous prendrons celui qui effectue le #ac"up des logs de transaction et le #ac"up des fichiers de donnes. &ous sauvegarderons tous ces fichiers dans le rpertoire cr cet effet ;-:B'ac"upExpressB;. -ela se traduit donc par la co ande suivante : EKE- aster.d#o.S0CSyste CSauvegardes+otales 5! 5! 1-:B'ac"upExpressB1 /ne fois cette co ande excute! nous trouvons un ense #le de fichiers -,' au for at : &o 4'C4ate.-,' : pour les fichiers de donnes
&o
&ous pouvons aintenant crer notre fichier ',+-E qui va si ple ent effectuer l1excution de cette procdure stoc"e avec les para tres prcdents.
sqlc d %S )>&SED2E/DBSQLEK0DESS %/ sa %0 )ot4e0asse %Q ;EKE- aster.d#o.S0CSyste CSauvegardes+otales 5! 5! 1-:B'ac"upExpressB1;
&ous pouvons donc aintenant planifier cette excution auto atique dans le planificateur des taches de @indoIs.
Mise en miroir de B
Le principe du iroir! consiste capturer au fil de l1eau les transactions se produisant sur une #ase! afin de les reproduire sur une #ase dite iroir sur un serveur distant. Le serveur source envoi sur couche http crypte les donnes des transactions reproduire sur le serveur ci#le. /n serveur t oin (SQL* peut Htre is en place afin de per ettre le #ascule ent auto atique des applications. -e #ascule ent auto atique ne peut Htre effectif dans les applications que pour celles utilisant le pilote SQL &-LI (&ative -lient*! auquel cas vous deve3 indiquer dans la chaTne de connexion le no du serveur partenaire (F,IL>2ED 0,D+&EDA...*. &ote3 cependant que ce para tre n1est pas ncessaire si votre application utilise le fra eIor" .net en accs SQL &-LI car c1est la #i#liothque cliente qui rapatrie toute seule cette infor ation des ta#les syst es en se connectant au serveur source. Il y a diffrent odes de gestion du iroir :
haute protection : suppose un irroring asynchrone avec #ascule ent auto atique (ncessite un serveur t oin* haute perfor ances : irroring asynchrone #ascule ent anuel (sans serveur t oin* haute scurit : irroring synchrone #ascule ent anuel (sans serveur t oin*
0ar nature :
il ne peut y avoir qu1un seul iroir partant d1une #ase. Le iroir d1une #ase tant une #ase passive! vous ne pouve3 en aucun cas l1utiliser des fins de production! ni H e de sources co e sauvegarde ou iroir d1une autre #ase en cascade! car la #ase est en per anence en ode restauration. -ependant vous pouve3 effectuer un snapshot de cette #ase afin de produire une #ase ayant les donnes un instant + et en lecture seule! par exe ple pour de la consultation (reporting ou source d1ali entation d1un dataIarehouse*. Le iroir est sy trique! tant est si #ien qu1en cas de #ascule ent auto atique! il n1y a rien faire pour que la #ase source devienne ci#le. En effet en cas de #ascule ent! les #ases de donnes changent leurs rUles sous le contrUle du t oin. La #ase ci#le doit Htre en ode de $ournalisation F/LL pour pouvoir Htre irrore. En cas de change ent du DE->2EDV )>4EL co e en cas d1arrHt du iroir! le syst e est dfinitive ent #ris dans le sens ou l1envoi des transactions repose sur le chGinage de ces dernires l1aide du LS& (Log Sequence &u #er*.
Le serveur t oin peut Htre un vulgaire 0- avec K0 et une dition Express de SQL Server. Il n1a pas non plus #esoin de ressources particulire car son rUle est de scruter rgulire ent quels sont les serveurs accessi#les. 2ous pouve3 donc utiliser un serveur quelconque d$ productif si votre organisation co pte de no #reuses achines. Soit SD2CS>/D-E! SD2C-I'LE et SD2C+E)>I& un serveur source! un serveur ci#le et le serveur t oin pour le irroring. Soit 4'C+>C)IDD>D la #ase de donnes irorer Le script suivant propose en 5W tapes et 8X co andes +ransact SQL de faire cette anYuvre R
1) 78 Sauvegarde de la ase 9 mirorer @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ de ui1 le 1erAeur 1&ur2e SRVBSOURCE @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ USE 'a1ter ;O (AC5UP =ATA(ASE =(BTOBMIRROR TO =IS5 C N'=DE=((a2Fu E=(BTOBMIRROR(a2Fu GbaF' HIT. NAME C N'Iull =ataba1e (a2Fu ', INIT, STATS C 10 ;O (AC5UP LO; =(BTOBMIRROR TO =IS5 C N'=DE=((a2Fu E=(BTOBMIRROR(a2Fu L&)Gtr+' HIT. NAME C N'Tra+1a2ti&+ L&) (a2Fu ', STATS C 10
;O
%8 restauration de la ase 9 mororer avec l1option :)T6 ,*#"C*$"#;
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ de ui1 le 1erAeur 1&ur2e SRVBCI(LE @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ RESTORE =ATA(ASE =(BTOBMIRROR IROM =IS5 C N'=DE=((a2Fu E=(BTOBMIRROR(a2Fu GbaF' HIT. NORECOVER/ ;O RESTORE LO; =(BTOBMIRROR IROM =IS5 C N'=DE=((a2Fu E=(BTOBMIRROR(a2Fu L&)Gtr+' HIT. NORECOVER/ ;O
88 validation de la visi ilit rseau des serveurs Faites un ping crois des serveurs. , dfaut dite3 le fichiers hosts (situ dans Zsyste rootZBsyste 87BdriversBetcB* pour faire la apping no Madresse I0.
a11e'J
'8 Cration du certi.icat !ui sera utilis pour cr=pter les donnes du .lux de mirroir sur le point de terminaison /ttp source
CREATE CERTIIICATE CRTBMIRRORBSOURCE HIT. SU(*ECT C '2erti,i2at CRTBMIRRORBSOURCE =(BMIRROR', STARTB=ATE C 'AAAAMM**'J J ;O
>8 Cration du point de terminaison /ttp sur le serveur source en utilisant le certi.icat pour l1aut/enti.ication
CREATE EN=POINT E=PBMIRROR STATE C STARTE= AS TCP (LISTENERBPORT C 90%%, LISTENERBIP C ALL$ IOR =ATA(ASEBMIRRORIN; (AUT.ENTICATION C CERTIIICATE CRTBMIRRORBSOURCE, ENCR/PTION C RE:UIRE= AL;ORIT.M AES, ROLE C ALL$J ;O @@ P&ur 2&+trKle D SELECT * IROM 101Ge+d &i+t1J SELECT * IROM 101G3tt Be+d &i+t1J
?8 Sauvegarde du certi.icat sous .orme de .ic/ier
a11e'J
9.2) Cration du certificat qui sera utilis pour crypter les donnes du flux de mirroir sur le point de terminaison http cible
CREATE CERTIIICATE CRTBMIRRORBCI(LE HIT. SU(*ECT C '2erti,i2at CRTBMIRRORBCI(LE =(BMIRROR', STARTB=ATE C 'AAAAMM**'J J ;O
9.3) Cration du point de terminaison http sur le ser eur cible en utilisant le certificat pour l'authentification
CREATE EN=POINT E=PBMIRROR STATE C STARTE= AS TCP(LISTENERBPORT C 90%%, LISTENERBIP C ALL$ IOR =ATA(ASEBMIRRORIN; (AUT.ENTICATION C CERTIIICATE CRTBMIRRORBCI(LE, ENCR/PTION C RE:UIRE= AL;ORIT.M AES, ROLE C ALL$J ;O
9.!) "au egarde du certificat sous forme de fichier
a11e'J
;O
1%.2) Cration du certificat qui sera utilis pour crypter les donnes du flux de mirroir sur le point de terminaison http tmoin
CREATE CERTIIICATE CRTBMIRRORBTEMOIN HIT. SU(*ECT C '2erti,i2at CRTBMIRRORBTEMOIN =(BMIRROR' STARTB=ATE C 'AAAAMM**'J ;O
1%.3) Cration du point de terminaison http sur le ser eur cible en utilisant le certificat pour l'authentification
CREATE EN=POINT E=PBMIRROR STATE C STARTE= AS TCP(LISTENERBPORT C 90%%, LISTENERBIP C ALL$ IOR =ATA(ASEBMIRRORIN; (AUT.ENTICATION C CERTIIICATE CRTBMIRRORBTEMOIN, ENCR/PTION C RE:UIRE= AL;ORIT.M AES, ROLE C ALL$J ;O
1%.!) "au egarde du certificat sous forme de fichier
USE 'a1terJ ;O CREATE LO;IN CLNBMIRROR HIT. PASSHOR= C ''&+ a11M&rd N '&i'J ;O
11.2) cre$ un utilisateur associ & ce compte de connexion
;RANT CONNECT ON EN=POINTDDE=PBMIRROR TO CLNBMIRRORJ ;O @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ de ui1 le 1erAeur 2ible SRVBCI(LE @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
7%8 MetteA en place la scurit cCt ci le 12.1) cre$ un compte de connexion pour la connexion au ser eur dans la cadre du mirroring
USE 'a1terJ ;O CREATE LO;IN CLNBMIRROR HIT. PASSHOR= C ''&+ a11M&rd N '&i'J ;O
12.2) cre$ un utilisateur associ & ce compte de connexion
;RANT CONNECT ON EN=POINTDDE=PBMIRROR TO CLNBMIRRORJ ;O @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ de ui1 le 1erAeur t<'&i+ SRVBTEMOIN @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
7D8 MetteA en place la scurit cCt tmoin 13.1) cre$ un compte de connexion pour la connexion au ser eur dans la cadre du mirroring
USE 'a1terJ ;O CREATE LO;IN CLNBMIRROR HIT. PASSHOR= C ''&+ a11M&rd N '&i'J ;O
13.2) cre$ un utilisateur associ & ce compte de connexion
;RANT CONNECT ON EN=POINTDDE=PBMIRROR TO CLNBMIRRORJ ;O @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ de ui1 le 1erAeur 2ible SRVBCI(LE @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
7<8 PrpareA le serveur ci le pour le dmarrage de la session de miroir Indiquer la source sur la ci#le
USE 'a1terJ ;O ALTER =ATA(ASE =(BTOBMIRROR SET PARTNER C 'TCPD//SRVBSOURCED90%%'J ;O @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ de ui1 le 1erAeur 1&ur2e SRVBSOURCE @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
7'8 PrpareA le serveur source pour le dmarrage de la session de miroir Indiquer la ci#le sur la source :
Les co ptes de connexion Les l ents de l1,gent SQL Server (travaux! alertes et oprateurs*
Les paquetages SSIS voire 4+S Les serveurs lis Les units de sauvegarde (devices* Les plan de aintenance
2ous pouve3 utiliser des dclencheurs 44L niveau serveur et l1aide d1un serveur li reproduire i diate ent sur le serveur ci#le les co andes SQL dcoulant de la ise en place de ces o#$ets. )ais attention. ,fin que cela ne fasse pas ping%pong! $e vous conseille de tester l1tat de iroir de votre serveur pour la #ase irore! avant de lancer la reproduction de cette co ande :
SELECT 'irr&ri+)B1tate @@P d&it -tre % &u 4 (A&ir NULL$ IROM 101Gdataba1eB'irr&ri+) H.ERE databa1eBid C =(BI=('=(BTOBMIRROR'$
Enfin! sache3 que les transactions distri#ues ne sont pas supportes dans le cas de la AU+)T"# le mirroir Si l1envie vous en prend! ne serait%ce que pour analyser la charge de vos tuyaux! vous pouve3 utiliser le oniteur de perfor ances (perf on.exe* et scruter les co pteurs affrent l1entre )SSQL<[instance= ata#ase )irroring. ise en iroir.
)ise en
50 60
4ans la page Con.iguration de la sur.ace d1exposition pour les services et les connexions ! dveloppe3 Moteur de
ase
de donnes! clique3 sur Connexions 9 distance! sur Connexions locales et distantes! slectionne3 le protocole appropri afin d1activer votre environne ent! puis clique3 sur Appli!uer. #emar!ue -lique3 sur *K lorsque le essage suivant s1affiche :
Les odifications apportes aux para tres des connexions ne prendront effet que lors du red arrage du service du de #ase de donnes. X.
oteur
4ans la page Con.iguration de la sur.ace d1exposition pour les services et les connexions ! dveloppe3 Moteur de ase de donnes! clique3 sur Connexions 9 distance! sur Connexions locales et distantes! slectionne3 le protocole appropri afin d1activer votre environne ent! puis clique3 sur Appli!uer.
Connectez vous en tApe d@authenti$ication sql server et utilisez le compte sa (au besoin modi$iez son mot de passe#
9rr>tez le service +,L +erver depuis l@inter$ace +,L +erver Management +tudio (clic droit sur le serveur arreter# ;uvrez une $en>tre de commande et tapez l@instruction suivante : NET START MSSQLSERVER /T1400 2%plications : http:--social0msdn0microso$t0com-Iorums-enB*+-sqldatabasemirroring-thread-JD6K&e"&Be5bJB(ca6BJ&D5B c6d(6L6&a5a5 +i vous avez l@erreur :
ATT",T)*, :
La ise en iroir d1une #ase de donnes ne reproduit que les donnes de la #ase. 2ous pouve3 avoir #esoin d1autres infor ations sur le serveur ci#le en cas de #ascule ent : Les co ptes de connexion Les l ents de l1,gent SQL Server (travaux! alertes et oprateurs* Les paquetages SSIS voire 4+S Les serveurs lis Les units de sauvegarde (devices* Les plan de aintenance
2ous pouve3 utiliser des dclencheurs 44L niveau serveur et l1aide d1un serveur li reproduire i diate ent sur le serveur ci#le les co andes SQL dcoulant de la ise en place de ces o#$ets. )ais attention. ,fin que cela ne fasse pas ping%pong! $e vous conseille de tester l1tat de iroir de votre serveur pour la #ase irore! avant de lancer la reproduction de cette co ande : SELECT 'irr&ri+)B1tate @@P d&it -tre % &u 4 (A&ir NULL$ IROM 101Gdataba1eB'irr&ri+) H.ERE databa1eBid C =(BI=('=(BTOBMIRROR'$ Enfin! sache3 que les transactions distri#ues ne sont pas supportes dans le cas de la ise en iroir.
Exem le ! confi"uration de la mise en miroir d'une #ase de donnes $ l'aide de certificats %&ransact'S()*
Confi"uration des connexions sortantes
CREATE ENDPOINT End-o+nt_M+rror+ng STATE = STARTED AS TCP . /ISTENER_PORT=0123 4 /ISTENER_IP = A// 5 'OR DATABASE_MIRRORIN# . A$T(ENTICATION = CERTI'ICATE (OST_A_)&rt 4 ENCRYPTION = RE6$IRED A/#ORIT(M AES 4 RO/E = A// 5" #O
(0 +auvegardez le certi$icat 7;+=_9 et copiezBle sur l1autre sAstEme 7;+=_M0
4 /ISTENER_IP = A// 5 'OR DATABASE_MIRRORIN# . A$T(ENTICATION = CERTI'ICATE (OST_B_)&rt 4 ENCRYPTION = RE6$IRED A/#ORIT(M AES 4 RO/E = A// 5" #O
(0 +auvegardez le certi$icat 7;+=_M0
+m ortant !
+i vous envisagez d1utiliser le mode haute scurit avec basculement automatique vous devez rpter les m>mes tmoin pour les conne%ions sortantes et entrantes0 La con$iguration des conne%ions entrantes lorsqu1un serveur tm de con$igurer les conne%ions et les utilisateurs du serveur tmoin sur les deu% serveurs partenaires ainsi que les co utilisateurs des deu% serveurs partenaires sur le serveur tmoin0
&0 +ur l1instance de serveur miroir de 7;+=_M d$inissez l1instance de serveur de 7;+=_9 en tant que serveur partenaire
(en $aisant d1elle l1instance initiale de serveur principal#0 :emplacez une adresse rseau valide par TCPD//.OSTBAGM0d&'ai+GC&r GAdAe+ture@H&rF1G2&'D90%40 Pour plus d1in$ormations consultez +pci$ication d1une adresse rseau de serveur (mise en miroir de base de donnes#0
BBAt (OST_B4 s&t s&rC&r +nstan)& on (OST_A as -artn&r .-r+n)+-a< s&rC&r57 A/TER DATABASE AdC&nt>r&WorDs SET PARTNER = 'TCP7EE(OST_A9MFdo%a+n9Cor-9AdC&nt>r&BWorDs9)o%70123'" #O
50 +ur l1instance de serveur principal de 7;+=_9 d$inissez l1instance de serveur de 7;+=_M en tant que serveur
partenaire (en $aisant d1elle l1instance initiale de serveur miroir#0 :emplacez une adresse rseau valide par TCPD//.OSTB(GM0d&'ai+GC&r GAdAe+ture@H&rF1G2&'D90%40
BBAt (OST_A4 s&t s&rC&r +nstan)& on (OST_B as -artn&r .%+rror s&rC&r59 A/TER DATABASE AdC&nt>r&WorDs SET PARTNER = 'TCP7EE(OST_B9MFdo%a+n9Cor-9AdC&nt>r&BWorDs9)o%70123'" #O
60 Cet e%emple suppose que la session est e%cute en mode hautes per$ormances0 Pour con$igurer cette session au mode hautes per$ormances sur l1instance de serveur principal (sur 7;+=_9# dsactivez la scurit des transactions0
BBCGang& to G+gGB-&r,or%an)& %od& ;F t>rn+ng o,, transa)ton sa,&tF9 A/TER DATABASE AdC&nt>r&WorDs SET PARTNER SA'ETY O'' #O
,emar-ue !
+i vous envisagez d1utiliser le mode haute scurit avec basculement automatique laissez la scurit des tr (valeur par d$aut# et a/outez dEs que possible le tmoin aprEs l1e%cution de la deu%iEme instruction +2= P Notez que le serveur tmoin doit d1abord >tre con$igur pour les conne%ions sortantes et entrantes0