Upload
medhi-dehloum
View
254
Download
12
Embed Size (px)
Citation preview
Ce livre sur SQL Server 2008 sadresse toute personne dsireuse dadministrer une base de donnes (administrateur de base de donnes, dveloppeur...). Il prsente les diffrents lments ncessaires cette administration ainsi que lensemble des manipulations raliser par ladministrateur, depuis linstallation jusquaux oprations de sauvegarde et de restauration, en passant par la gestion de lespace disque, la gestion des utilisateurs, la gestion de la rplication. Les diffrents outils permettant une optimisation du serveur sont prsents ainsi que ceux permettant la mise en place dune solution de haute disponibilit. Les nouveaux concepts lis la version de SQL Server 2008 sont galement traits, tels ladministration par les rgles, lintgration avec le Power Shell, la compression et le cryptage des donnes. Les diffrentes oprations sont ralises depuis SQL Server Management Studio et en Transact SQL. Des lments sont en tlchargement sur cette page.
Ce livre numrique a t conu et est diffus dans le respect des droits dauteur. Toutes les marques cites ont t dposes par leur diteur respectif. La loi du 11 Mars 1957 nautorisant aux termes des alinas 2 et 3 de larticle 41, dune part, que les copies ou reproductions strictement rserves lusage priv du copiste et non destines une utilisation collective, et, dautre part, que les analyses et les courtes citations dans un but dexemple et dillustration, toute reprsentation ou reproduction intgrale, ou partielle, faite sans le consentement de lauteur ou de ses ayants droit ou ayant cause, est illicite (alina 1er de larticle 40). Cette reprsentation ou reproduction, par quelque procd que ce soit, constituerait donc une contrefaon sanctionne par les articles 425 et suivants du Code Pnal. Copyright Editions ENI
SQLServer2008Administration
JrmeGABILLAUD
Rsum
L'auteur Ingnieur en Informatique pour l'Industrie, consultant, Jrme Gabillaud est galement responsable pdagogique dans un grand centre de formation informatique. Spcialiste des systmes d'accs aux donnes Microsoft ou Oracle, il est dj auteur de nombreux ouvrages sur ce sujet, reconnus pour leurs qualits techniques et pdagogiques.
- 1 - ENI Editions - All rigths reserved
Introduction
Laversion2008deSQLServer apportedenombreusesnouveautsque ce soit pour ladministrateurdebasesdedonnesoubienpourledveloppeurdapplications.Lagestiondesdonnesdanslecadredelanalysedcisionnelle(BusinessIntelligence)nestpasabordedanscetouvragemaisSQLServer2008proposegalementsurcedomainedenombreusesamliorations.
SQLServerestdisponiblepourlesplatesformesWindowsServerenversion32et64bits,monooumultiprocesseur,etilexploitelesdiffrentscursdefaonnative.Lemoteurdebasededonnesestrobusteetpossdedescapacitsremarquablesdegestiondesdonneslorsdesmontesencharge.
ParmilesnombreuxapportsdeSQLServer2008,ilestpossibledeciterlintgrationauPowerShell, lecryptagedesdonnes,lacompressiondesdonnesetdessauvegardes,lesdclencheursdeconnexion,laudit.
SQLServer2008intgredefaonnativedenombreuxoutilsquifontqueSQLServerestplusquunsimpleserveurdebasesdedonnesrelationnelles.
AussiladministrateurdebasesdedonnesdoitilpossderunebonnevuedensembledespossibilitsoffertesparlesdiffrentscomposantsdeSQLServerafindefairelesbonschoixentermedvolution.Ceslmentscomplmentairessontrarementinstallspardfautetdoiventltrelademande.Eneffet,ilnesertriendinstallerdesprogrammeset/ouservicessurleserveursicesderniersnesontpasutiliss.Demmelacquisitionet lutilisationdunoutiltierspour effectuer une tche qui peut tre ralis par lun des composants de SQL Server peut savrer ne pas trejudicieuxtantauniveaudesperformancesquedelinvestissement.
SQL Server Management Studio reste loutil principal de travail que ce soit pour ladministrateur ou bien pour ledveloppeurdapplications.Ilestpossibledefaireladministrationdefaongraphique,maistouteslestchespeuventgalementltreenutilisantdesscriptsTransactSQL.Chaquesolutionpossdesesavantagesetsesinconvnients.Cestpourquoilesdeuxsolutionssontexposesdefaonquasisystmatiquedanscelivre.PourlessyntaxesTransactSQL,seuleslesoptionslespluscourantesserontprcises.Lobjectif nestpasderefaireladocumentationmaisdeprsenteraumieuxlesdiffrentesinstructions.
SQLServerutilisesaproprestructuredebasededonnespourstockertouteslesinformationsrelativessapropregestion.Cesinformationssontconservesdanslestablesditessystme.Toutefoiscommelastructuredecestablesestamenetremodifielorsdunchangementdeversion,ilestrecommanddenepasinterrogerdirectementcestablesmaisdutiliserlesvuesdisponiblesdansleschmasysoubienINFORMATION_SCHEMA.Lutilisationdecesvuesdansdesrequtesdextractionpermettradelirelesinformationsconservesdansledictionnairedesdonnes.
- 1 - ENI Editions - All rigths reserved
PrsentationdeSQLServer
LebutdecechapitreestdeprsenterSQLServerdanssaglobalitetdacqurirunaperudeSQLServerdanssonensemble,savoir:
l comprendrelanotiondeSGBDRetlemodedefonctionnementclient/serveur,
l prsenterlescomposantsdeSQLServeretlesplatesformesdexcution,
l prsenterlarchitecturedadministrationetdeprogrammation,
l prsenterlanotiondebasededonnesetlesbasesinstallessurleserveurSQL.
SQLServerestunSGBDR(SystmedeGestiondeBasededonnesRelationnelle)entirementintgrWindows,cequiautorisedenombreusessimplificationsauniveaudeladministration,toutenoffrantunmaximumdepossibilits.
1.QuestcequunSGBDR?
SQLServerestunSystmedeGestiondeBasedeDonnesRelationnelle(SGBDR),cequiluiconfreunetrsgrandecapacitgrerlesdonnestoutenconservantleurintgritetleurcohrence.
SQLServerestchargde:
l stockerlesdonnes,
l vrifierlescontraintesdintgritdfinies,
l garantirlacohrencedesdonnesquilstocke,mmeencasdepanne(arrtbrutal)dusystme,
l assurerlesrelationsentrelesdonnesdfiniesparlesutilisateurs.
CeproduitestcompltementintgrWindowsetceplusieursniveaux:
l Observateurdesvnements:lejournaldesapplicationsestutilispourconsignerleserreursgnresparSQLServer.LagestiondeserreursestcentraliseparWindows,cequifacilitelediagnostic.
l Analyseur de performances : par lajout de nouveaux compteurs, il est facile de dtecter les goulotsdtranglementetdemieuxragir,pourvitercesproblmes.Onutilisetoutelapuissancedelanalyseurdeperformances, et il est possible au sein du mme outil de poser des compteurs sur SQL Server et surWindowsetainsidtremmededtecterlevraiproblme.
l Traitements parallles : SQL Server est capable de tirer profit des architecturesmutiprocesseurs. ChaqueinstanceSQLServerdisposedesonpropreprocessusdexcutionetdesthreadsWindowsoubiendesfibres(si loptionestactive) sontexcutsafindexploiteraumieux larchitecturematrielledisponible.Chaqueinstance SQL Server excute toujours plusieurs threads Windows. Pour prendre en charge tous lesprocesseurs prsents sur le systme, le paramtre de configuration max degree of parallelism doitconserver la valeur 0. Il sagit de la valeur par dfaut. Pour empcher la gnration de plan dexcutionparallle,ilsuffitdaffecterlavaleur1ceparamtre.Enfinenluiaffectantunevaleurcompriseentre1etlenombredeprocesseurs,ilestpossibledelimiterledegrdeparalllisme.Lavaleurmaximalesupporteparceparamtreest64.
l Scurit :SQLServer est capable de sappuyer intgralement sur la scurit greparWindows, afin depermettreauxutilisateursfinauxdenepossderquunnomdutilisateuretunseulmotdepasse.NanmoinsSQLServergresonpropresystmedescuritpourtouslesclientsnonMicrosoft.
l Les services Windows sont mis contribution pour excuter les composants logiciels correspondant auserveur.Lagestionduserveur(arrt,dmarrageetsuspension)estfaciliteetilestpossibledeprofiterdetoutes les fonctionnalits associesaux servicesdeWindows (dmarrageautomatique, excutiondans lecontexteduncomptedutilisateurdudomaine...).
- 1 - ENI Editions - All rigths reserved
l ActiveDirectory:lesserveursSQL2008etleurspropritssontautomatiquementenregistrsdansleservicedannuaireActiveDirectory.IlestainsipossibledeffectuerdesrecherchesdansActiveDirectorypourlocaliserlesinstancesSQLServerquifonctionnent.
SQLServerpeutgrerdeuxtypesdebasesdedonnesdiffrentes:
l les bases OLTP (OnLine Transactional Processing) qui correspondent des bases dans lesquelles lesinformationssontstockesdefaondirecteafinderutiliserplustardcesinformationstellesquellesonttstockes.
l lesbasesOLAP(OnLineAnalyticalProcessing)quicontiennentdesinformationsstatistiquesafindtrecapabledextraire les informations sous forme de cube multidimensionnel dans un but daide la dcision parexemple.LesstatistiquescontenuesdansdesbasesOLAPsappuientsurdesinformationscontenuesdansunebaseOLTP.
2.ModedefonctionnementClient/Serveur
Toutes les applications qui utilisent SQL Server pour grer les donnes, sappuient sur une architectureclient/serveur. Lapplication cliente est charge de la mise en place de linterface utilisateur. Cette applicationsexcutegnralementsurplusieurspostesclientssimultanment.Leserveur,quantlui,estchargdelagestiondesdonnes,etrpartitlesressourcesduserveurentrelesdiffrentesdemandes(requtes)desclients.Lesrglesdegestiondelentrepriseserpartissententreleclientetleserveur.
ModedefonctionnementClient/Serveur
Onpeutdistinguertroiscas:
l lesrglessontentirement implmentessur leclient,appelalorsclient lourd.Cettesolutionpermetdelibrer des ressources au niveau du serveur, mais les problmes de mise jour des clients et dedveloppementdautresapplicationsseposent.
l lesrglessontentirementdfiniessurleserveur,leclientestalorsunclientlger.Cettesolutionpermetdobtenirdesclientsquipossdentpeuderessourcesmatrielles,etautoriseunecentralisationdesrglescequi rendplussouples lesmises jour.Cependantdenombreuses ressourcessontconsommessur leserveuret linteraction avec lutilisateur risquedtre faible,puisque lensemble des contraintes est vrifilorsquelutilisateursoumetsademande(requte)auserveur.
l les rgles dentreprises sont dfinies sur une tiercemachine, appeleMiddleWare, afin de soulager lesressourcesduclientetduserveur,toutenconservantlacentralisationdesrgles.
- 2 - ENI Editions - All rigths reserved
Larchitectureclient/serveurpermetundploiementoptimumdesapplicationsclientessurdenombreuxpostestouten conservantunegestion centralisedesdonnes (le serveur), cequi rendpossible lepartagedinformationslintrieurdelentreprise.
Il est bien sr possible davoir plusieurs applications clientes sur le mme serveur de base de donnes. Cettepossibilitoffredenombreusesfonctionnalits,maisilfauttoutefoisveillercequelachargedetravailsurleserveurnesoitpastropimportanteauregarddescapacitsdelamachine.Cettearchitectureclient/serveurestrespectepar tous les outils permettant daccder des informations contenues par le serveur SQL, donc les outilsdadministration,mmesilssontinstallssurleserveur.
Touteslesdemandesenprovenancedesclientsversleserveur,doiventtrecritesenTransactSQL.CelangagederequtedebasededonnesrespectelanormeANSISQL92.LeSQLfournitunensembledecommandespourgrerlesobjetsetmanipulerlesdonnesdanslesbases.LeTransactSQLestenrichidenombreusesfonctionnalits,nonnormalises,afindtendrelespossibilitsduserveur.Ilestainsipossiblededfinirdesprocduresstockessurleserveur.
3.Lesplatesformespossibles
Ilestimportantdedistinguerdeuxcas:dunctlesplatesformespossiblespourleclientetdelautrelesplatesformespourleserveur.
LesplatesformesclientesprsentesicisontlespostessurlesquelslesoutilsdadministrationSQLServerpeuventtreinstalls.IlnesagitpasdespostesquihbergentuneapplicationquiseconnecteuneinstanceSQLServerpourgrerlesdonnes.
Dunefaonsynthtique, lesoutilsclientsdadministrationspeuventtre installssurtoussystmesdexploitationWindows2003,WindowsXPProoutoutsystmeplusrcent.
Parcontre,pourlapartieserveur,lesdisponibilitsentermesdeplatesformessontfonctionsdelditionSQLServerchoisie.Nanmoinspourhbergeruneinstancedebasededonnesenproduction,ilestncessairededisposerdunserveur performant et fiable.Une plateformeWindows2003 est donc recommande. LditiondeWindows2003serachoisieen fonctiondescontraintes imposespar lditionSQLServerslectionneetdescontraintes lieslenvironnementtechnique.LinstallationduneinstancesousWindowsXPserarservedespostesnomades.
- 3 - ENI Editions - All rigths reserved
Danslecasoleclienthbergeuneapplicationspcifique,lagammedesplatesformesestconsidrablementlargiegrce,enparticulier,aupilotejdbcquipermetdaccderuneinstanceSQLServerdepuisuneapplicationcriteenjava.LagammeestencorelargiedanslescasduneapplicationASPXquiproposeuneinterfaceInternet.UnsimplenavigateurInternetpermetalorsdelancerlapplication.
4.LescomposantsdeSQLServer
Lemoteur de base de donnes de SQL Server ou Database Engine est compos de plusieurs logiciels. Certainssexcutentsousformedeservicesalorsquedautrespossdentuneinterfaceutilisateurgraphiqueouenlignedecommande.
SQLServersexcutesousformedeservicesWindows.Suivantlesoptionsdinstallationchoisies,ilpeutyavoirplusdeservices.Lesprincipauxservicessont:
l SQLServer:cestleserveurdebasededonnesproprementparl.Siceservicenestpasdmarr,ilnestpas possible daccder aux informations. Cestpar lintermdiaire de ce service que SQL Server assure lagestiondes requtesutilisateurs.Ce service est rfrenc sous lenomMSSQLSERVERpour linstancepardfautetMSSQLSERVER$nomInstancedanslecasduneinstancenomme.
l SQLServerAgent:ceserviceprendenchargelexcutiondetchesplanifies,lasurveillancedeSQLServeret le suivi des alertes. Il est directement li une instance de SQL Server. Il est rfrenc dans legestionnaire de service sous le nom SQL Server Agent(MSSQLSERVER) pour linstance par dfaut et SQLServerAgent(nomInstance)danslecasduneinstancenomme.
l MicrosoftFullTextSearch : ceserviceproposedegrer lindexationdesdocumentsde type textestocksdansSQLServeretgregalementlesrecherchesparrapportauxmotscls.
ComposantsServeur
- 4 - ENI Editions - All rigths reserved
IlestpossibledinstallerplusieursinstancesdeSQLServersurlemmeposte.
Linstallation des composants de connectivit sur les postes clients permet de prendre en charge la gestion durseau,laDBLibrarypourlesprogrammesenaccsnatif,lesupportOLEDBetODBC.
Les ralisations des tches dadministration sont possibles par lutilisation doutils. Ces outils possdent pour laplupartuneinterfacegraphiqueconvivialeetdutilisationintuitive.Cependant,lestchesadministrativesdoiventtrerflchiesavantleurralisation.Lutilisationdecertainsoutilssupposequelecomposantserveurcorrespondantestinstall.
Cesoutilssont:
l SQL Server Management Studio pour raliser toutes les oprations au niveau du serveur de base dedonnes.
l SQLServerConfigurationManagerpourgrerlesserviceslisSQLServer.
l SQLServerProfilerpoursuivreetanalyserlachargedetravailduneinstanceSQLServer.
l DatabaseEngineTuningAdvisorpourpermettreuneoptimisationdufonctionnementduserveurdebasededonnes.
En plus de ces outils, SQL Server propose Business Intelligence Development Studio pour la programmation detravauxquivontsinscriredansuncadredanalysemultidimensionnelledesdonnes.
Enfin,touslesoutilsetlefonctionnementdeSQLServersontrichementdocuments.
LesdiffrentesbriqueslogiciellesfourniesparSQLServersarticulenttoujoursautourdumoteurdebasededonnesrelationnellesquitraitedefaonperformantelesinformationsstockesauformatrelationneletauformatxml.
l SQLServerAnalysisServicepermetuneanalysepoussedescubesdedonnesdfinisparlintermdiaireduBusinessIntelligenceDevelopmentStudio.
l SQLServerIntegrationService(SSIS)estunoutildimportationetdexportationdedonnesfacilemettreenplacetoutentantfortementparamtrable.
l ReportingServicespermetdemettreenplacedesrapportsdanalysedesdonnes.
l La rplicationdesdonnes surdiffrentes instancespermetdepositionner lesdonnesauplusprsdesutilisateursetderduirelestempsdetraitement.
l ServiceBrokerpermetuntravailenmodeasynchroneetfaciliteainsilagestiondespicsdeforteactivitenstockantlesdemandesdetravailavantdelestraiter.
l LintgrationduCLRdansSQLServerpermetdedvelopperprocduresetfonctionsenutilisantleslangages
ConnectivitClient
Outilsdegestion
Lescomposants
- 5 - ENI Editions - All rigths reserved
VB.NetetC#.LintgrationduCLRnevientpassesubstituerauTransactSQLmaisseprsentecommeuncomplmentafindepouvoirraliseruncodagesimpleetperformantpourlensembledesfonctionnalitsquidoiventtreprsentessurleserveur.
l LespointsdeterminaisonhttppermettentSQLServerdhbergersespropresservicesetdefaciliterainsilintgrationduserveurdansuncontextehtrogne.
UnemeilleuregestiondelammoireestproposeaveclamiseenplacedelAPIAWEquipermetdegrer,surdessystmes32bits,plusde4Godemmoire.Lditionentrepriseestainsicapabledegrerjusqu64Godemmoire.LapriseenchargedeAWEestpossibleenactivantloptiondeconfigurationaweenabledavecsp_configure.
aweenabledestuneoptiondeconfigurationavance.
Dans lecaso lagestionde lammoireAWEestactive,SQLServerpeut,par lintermdiairedeWindows2003,prendreenchargeunajoutdemmoirechaud.Ceciestpossibleuniquementsilaplateformematriellepermetderaliserunetelleopration.
Dans lecasoSQLServersexcute suruneplateformeWindowsServer2003ou2008 lagestionde lammoireAWEest dynamique. Par contre, dans le casdune excution sousWindows2000 la gestionde
cettemmoireeststatique.
ReportingServices permet la cration de rapports pour prsenter aumieux les informations contenues dansSQLServer.Cesrapports,hbergssurunserveurIIS,peuventtreconusparlintermdiairedugnrateurderapportduBusinessIntelligenceDevelopmentStudio.
LesrapportssontdisponiblesauformatHTMLmaisilspeuventexisterauformatpdf.Lagestiondecesrapportsauniveauscurit,planificationdesrgnrations...estassureparReportingServices.
Analysis Services est un outil permettant la construction des cubes multidimensionnels danalyse des donnes.Quelques fonctionnalits OLAP taient dj prsentes dans les versions prcdentes de SQL Server mais avecAnalysis Services, SQL Server permet de raliser des analyses compltes des cubes danalyses qui peuvent tredfinis.
Pour amliorer les performances de traitement des cubes il est possible dinstaller plusieurs instances dumoteurAnalysisServicesurlemmeserveur.
AnalysisServicesappuieintgralementsurlinterfaceBusinessIntelligenceDevelopmentStudio.
LesterminaisonshttppermettentSQLServerderpondredefaondirectedesrequteshttp,cestdiresanspasser par lintermdiaire dun serveur IIS. SQL Server offre ainsi la possibilit dexposer des procdures et desfonctionsautraversdeservicesWeb.
Les points de terminaisons http ne sont disponibles que si SQL Server sexcute sur une plateformeWindows2003ouWindows2008.
Service Broker permet une gestion asynchrone des requtes. Plus exactement, Service Broker permet uneapplication cliente denvoyer de nombreuses demandes de services et SQL Server peut traiter ces demandes(message)lesunesaprslesautres.Lamiseenattentedesmessagespermetdergulerlachargedetravailsurleserveuretdabsorbercertainespointesdactivitsponctuelles.
Service Broker dispose dun mcanisme scuris qui lui permet de garantir le traitement des messages. ServiceBrokerutiliseSQLServerpourconserverlafiledattentedesmessagesnonencoretraits.
Lintgration du CLR (Common Language Runtime) SQL Server, permet daugmenter considrablement lespossibilitsoffertesentermedeprogrammation.LaprsenceduCLRneremetpasencauseleTransactSQL.Chacun
MmoireAWE
ReportingServices
AnalysisServices
Terminaisonshttp
ServiceBroker
CLR
- 6 - ENI Editions - All rigths reserved
estcomplmentaire.LeTransactSQLestparfaitpourcriredesprocduresou fonctionspour lesquelles il yauntraitementintensifdesdonnes.Aucontraire,danslecasolevolumedesdonnesmanipulesestfaible,leCLRpermetdcriresimplementdestraitementscomplexes,carilbnficiedetoutelarichesseduCLR.
Le CLR permet galement de dfinir ses propres types de donnes ou bien de nouvelles fonctions de calculdagrgat.
Enfin,leCLRpermetauxdveloppeursdapplicationsdedvelopperdesprocduresetfonctionssurSQLServertoutenconservantleurslangagesfavoris(VB.NetouC#parexemple),etdoncsansavoirbesoindemaitriserleTransactSQL.
Dans le cas o le code est crit depuis Visual Studio, lintgration de la version compile dans SQL Server et lemappageCLRTransactSQLestralisdefaonautomatique.IlestpossiblederaliserledveloppementendehorsduVisualStudiomaislintgrationSQLServerserafaitedefaonmanuelle,cequiestunetchefastidieuse.
- 7 - ENI Editions - All rigths reserved
Architecture
1.Administration
LelangagenatureldeSQLServerestleTransactSQL.Ilestdoncncessairedeluitransmettrelesinstructionsdanscelangage.Commecelangagenestpasforcmentnaturelpourlutilisateur,ilestpossibledecomposerlinstructiondefaongraphiqueparSQLServerManagementStudio,puisdeprovoquersonexcutionsurleserveurlaidedesboutonsOK,Appliquer...LesoutilsgraphiquesutilisentlabibliothqueSMO(SQLServerManagementObject)pourtablirundialogueefficaceavecleserveur.
SQLSMOenglobeettendSQLDMO.LabibliothqueSMOestdonccompatibleavecSQLServer7,SQLServer2000,2005et2008.
IlestdoncpossibledcriredesscriptsTransactSQLpourexcuterdesoprationsadministrativessous formedetraitementbatch.
AdministrationdeSQLServer
2.Programmation
Ledveloppementdapplicationsclientespourvisualiserlesdonnescontenuesdansleserveurpeutsappuyersurdiffrentestechnologies.
La DLL SQL Native Client est une mthode daccs aux donnes qui est disponible aussi bien en utilisant la
- 1 - ENI Editions - All rigths reserved
technologie OLEDB ou bien ODBC pour accder aux donnes. Avec cette nouvelle API, il est possible dutiliserlensembledesfonctionnalitsdeSQLServercommelestypespersonnalissdfinisaveclesCLR(UDT:UserDefinedType),MARSoubienencoreletypexml.
SQLNativeClientestuneAPIquipermetdetirerpleinementprofitdesfonctionnalitsdeSQLServeretdepossderunprogrammequiaccdedefaonoptimumauserveur.
Il est toujours possible dutiliser les objets ADO pour accder linformation. Ce choix est plus standard car unprogrammeaccdantunesourcededonnesADOpeuttravailleraussibienavecunebaseOraclequeSQLServer,maisnepermetpaslammegestiondetouteslesfonctionnalitsoffertesparSQLServer.LAPISQLNativeClientpermetlcrituredeprogrammesclientsoptimissmaisuniquementcapablesdaccderdesdonneshbergesparunserveurSQLServer.
SQLNativeClientseraadoptcommemodledaccsauxdonnesdanslesnouveauxprogrammescritsenVB.Netou C# qui souhaitent travailler avec SQL Servermais aussi dans les programmes existants lorsque ces dernierssouhaitenttravailleravecdeslmentsspcifiquesSQLServer,commeletypeXML,parexemple.
Cemodledeprogrammationcorresponduneapplicationclientqui souhaitegrer lesdonnes.Dans le casolapplication souhaite tre capable de faire des oprations dadministration, il est alors ncessaire dutiliser labibliothqueSMO.
- 2 - ENI Editions - All rigths reserved
BasededonnesSQLServer
1.Objetsdebasededonnes
Lesbasesdedonnescontiennentuncertainnombredobjetslogiques.Ilestpossiblederegroupercesobjetsentroisgrandescatgories:
l Gestionetstockagedesdonnes:tables,typededonnes,contraintesdintgrit,valeurpardfaut,rglesetindex.
l Accsauxdonnes:vuesetprocduresstockes.
l Gestion de lintgrit complexe : dclencheur (procdure stocke sexcutant automatiquement lors delexcutiondunordreSQLmodifiantlecontenudunetable:INSERT,UPDATEetDELETE).Ledclencheuresttoujoursassociune tableetune instructionSQL. Ilpermetdemettreenplacedes rglesdintgritcomplexeschevalsurplusieurstablesoudemaintenirdesdonnesnonnormalises.
Objetdebasededonnes
Nomcompletdesobjets
Largleappliquepournommerlesobjetspermetuneparfaiteidentification.Lenomcompletestcomposcommesuit:serveur.nomBase.propritaire.objet.Pardfaut,seullenomdelobjetestprcis.CettenotionseradtailleaucoursduchapitreGestiondelabasededonnes.
2.Basesdedonnessystmeettablessystme
Pourgrer lensembledesdonnes stockes,SQLServer sutiliseluimme. Il existedoncdesbasesdedonnessystmeetsurchaquebaseutilisateur,quelquestablessystme.Linsertionetlamisejourdedonnesdanscestablesneseffectuentjamaisdirectement,maisviadescommandesTransactSQLoudesprocduresstockes.
- 1 - ENI Editions - All rigths reserved
Organigrammedesbasesdedonnes
LesnomsdesbasesdedonnesetdestablessystmessontfixsetconnusparSQLServer.Ilnefautdoncpasrenommerunetableouunebasesystme.
Cest la base de donnes principale de SQL Server. Lensemble des donnes stratgiques pour le bonfonctionnementduserveuryeststock(comptesdeconnexion,optionsdeconfiguration,lexistencedesbasesdedonnesutilisateursetlesrfrencesverslesfichiersquicomposentcesbases...).
Cettebasecontientlensembledeslmentsinscritsdanstoutenouvellebaseutilisateur.Pardfaut,ilnyaquelestablessystme,maisilestpossiblederajouterdeslments.
LabaseTempdbestunespacetemporairedestockagepartag.Ilpermetdegrerlestablestemporaireslocalesouglobales, les tablesde travail intermdiairespour fairedes trisparexemple,maisaussi les jeuxde rsultatsdescurseurs.LabaseTempdbestrecre,avecsatailleinitiale,lorsdechaquedmarragedelinstance.Ainsi,aucuneinformationnepeut tre conservede faonpersistante lintrieurde labaseTempdb. Lesobjets temporairessont,quanteux,supprimslorsdeladconnexiondeleurpropritaire.
Elle contient les informations utilises par le service SQL Server Agent pour dclencher une alerte, prvenir unoprateurouexcuterunetcheplanifie.Msdbcontientgalementlhistoriquedelexcutiondestches.
CettebaseenlectureseulecontientladfinitiondetouslesnouveauxlmentsdfinispartirdeSQLServer2005.Lesobjetssystmesysontdfinisbienquelogiquementilsapparaissentdansleschmadelutilisateursys.Aveccettebase,lamigrationdeSQLServer2000versSQLServer200xestfacilite,carlajoutsimpledelabaseressourcepermetdobtenirlensembledesobjetsdfinisdansSQLServer2005sansquilsoitncessairedetoucherlabase
Master
Model
Tempdb
Msdb
Ressource
- 2 - ENI Editions - All rigths reserved
master.
Lesbasesdedonnesutilisateursvonthbergerlesdonnesfourniesparlesutilisateurs.Lesbasesprsentessurle schma prcdent (AdventureWorks et Gescom) sont les bases dexemples utilises dans la documentationofficielledeSQLServeretdanscetouvrage.
3.Lestablessystme
Les tablessystmesont toujoursprsentesdansSQLServer.Cependant, il est recommanddenepas travaillerdirectement avec ces tables. Pour rechercher linformation, il faut passer par le schma dinformation et plusexactementlesvuesdfiniessousleschmadelutilisateursyslorsquecelaestpossible.
Dansletableaucidessous,quelquestablessystmesontrfrences.
LestablessystmesontutilisesdirectementparlemoteurdeSQLServer.LesapplicationsquiutilisentSQLServernedoiventenaucuncasaccderdirectementces tables,mmeen lecture.Eneffet, comme lastructuredecestables volue avec les versions de SQL Server, si certaines applications accdent de faon directe aux tablessystme, on peut se trouver dans limpossibilit de migrer vers une nouvelle version de SQL Server tant quelapplicationnapastrcrite.
SQLServerneprendpasencomptelesdclencheursquipourraienttredfinissurlestablessystmecarilspeuventgnerlebondroulementdecertainesoprations.
4.Extractiondemtadonnes
Pour interroger lesdonnescontenuesdans les tablessystme, ilestdconseillde le fairedirectementparunerequtedetypeSELECT.Ilestprfrabledepasserparlutilisationdeprocduresstockes,defonctionssystmeetdevuesduschmadinformation.
Entantquadministrateur,ilestpossibledemodifierlecontenudestablessystme.Cetteoprationestproscrirecarellepeutavoirdesconsquencesirrversiblesetdramatiques.Leseulmoyenderemdierun
telproblmeseraalorsderestaurerunesauvegarde.
Lesprocduresstockessystmesontmaintenues,pour laplupart,pourdesraisonsdecompatibilitascendante.Leurutilisationestdoncdconseiller.
Pourinterrogerlestablessystme,ilexistedenombreusesprocduresstockes.Ellescommencenttoutesparsp_.
Basesdedonnesutilisateur
Cataloguesystme(prsentuniquementdanslabaseMaster)
Tablesystme Fonction
syslogins UnelignepourchaqueutilisateurougroupeWindowsautorisseconnecterauserveurSQL.
sysmessages Unelignepourchaquemessagederreurdfinietpourchaquelangue.
sysdatabases Uneligneparbasededonnesutilisateur.
sysconfigures Unelignepourchaqueoptiondeconfigurationduserveur.
sysusers Unelignepourchaqueutilisateurdfinidanslabase.
syscolumns Unelignepourchaquecolonnedestables,vuesetpourchaqueparamtredesprocduresstockes.
sysobjects Unelignepourchaqueobjetdelabasededonnes.
Procduresstockessystme
- 3 - ENI Editions - All rigths reserved
Parmitouteslesprocduresstockes,citons:
SQL Server propose des vues systme qui permettent dobtenir des informations systme. Toutes ces vues sontprsentesdansleschmasys.
Afindenavigueraumieuxdanscesvues,ellessontregroupesparthmes:
l Objets,typesetindex
l Serveurslis
l CLR
l Miseenmiroir
l ServiceBroker
l Scurit
l Transactions
Procdurestocke Description
sp_help[nom_objet] Informationssurlobjetindiqu.
sp_helpdb[nom_base_donnes] Informationssurlabasededonnesindique.
sp_helpindex[nom_table] Informationssurlesindexdelatableindique.
sp_helplogins[nom_connexion] Informationssurlaconnexionindique.
sp_who Listedesutilisateursactuellementconnects.
Lecatalogue
- 4 - ENI Editions - All rigths reserved
l Configurationduserveur
l Informationsurleserveur
l Environnementdexcution
l Stockage
l Pointdeterminaisons
l Partitionnement
l Tracesetvnements
Les fonctions systme sont utilisables avec des commandes Transact SQL. Il est ainsi possible de rcuprer desvaleursconcernantlabasededonnessurlaquelleontravaille,surleserveurousurlesutilisateurs.
Citonsenquelquesunes:
Fonctionssystme
Fonctionssystme Paramtre Description
DB_ID Nom Retrouvelidentificateurdelabasededonnes.
USER_NAME ID Retrouvelenomdelutilisateurpartirdesonidentifiant.
COL_LENGTH Colonne Longueurdelacolonne.
STATS_DATE Index Datedederniremisejourdesstatistiques.
DATALENGTH Typededonnes Longueurdelexpression.
Schmadinformation
- 5 - ENI Editions - All rigths reserved
Ilsagitdunensembledevuesquiproposentunevisualisationdesparamtresdefaonindpendantedestablessystme.Ennefaisantpasdirectementrfrenceauxtablessystme,onseprservedesmodificationsquipeuventintervenir sur leurs structures lors des prochaines versions. De plus, ces vues sont conformes la dfinition dustandardANSISQLpour lesschmasdinformation.Chaquevueprsentedesmtadonnespour lensembledesobjetscontenusdanslabasededonnes.
Lesvuesduschmadinformation:
CHECK_CONSTRAINTS
VisualiselensembledescontraintesdetypeCHECKdfiniesdanslabasededonnes.
COLUMN_DOMAIN_USAGE
Visualiselensembledescolonnesdfiniessuruntypededonnesutilisateur.
COLUMN_PRIVILEGE
Visualiselensembledesprivilgesaccords,auniveaucolonne,pourlutilisateurcourantoupourunutilisateurdelabasededonnes.
COLUMNS
Visualise la dfinition de lensemble des colonnes accessibles, dans la base de donnes courante, lutilisateuractuel.
CONSTRAINT_COLUMN_USAGE
Visualiselensembledescolonnespourlesquellesilexisteunecontrainte.
CONSTRAINT_TABLE_USAGE
Visualiselensembledestablespourlesquellesaumoinsunecontrainteestdfinie.
DOMAIN_CONSTRAINTS
Visualiselensembledestypesdedonnesutilisateurs,quisontaccessiblesparlutilisateurcourantetquisontlisunergle.
DOMAINS
Visualiselensembledestypesdedonnesutilisateurs,quisontaccessiblesparlutilisateurcourant.
KEY_COLUMN_USAGE
Visualiselensembledescolonnespourlesquellesunecontraintedeclestdfinie.
PARAMETERS
Visualiselespropritsdesparamtresdesfonctionsdfiniesparlutilisateuretdesprocduresstockesaccessibleslutilisateurcourant.Pourlesfonctions,lesinformationsrelativeslavaleurderetoursontgalementvisualises.
REFERENTIAL_CONSTRAINTS
Visualiselensembledescontraintesdeclstrangresdfiniesdanslabasededonnescourante.
ROUTINES
Visualiselensembledesprocduresstockesetdesfonctionsaccessibleslutilisateurcourant.
ROUTINE_COLUMNS
Visualiselespropritsdechaquecolonnerenvoyesparlesfonctionsaccessibleslutilisateurcourant.
SCHEMATA
- 6 - ENI Editions - All rigths reserved
Visualiselesbasesdedonnespourlesquelleslutilisateurcourantpossdedesautorisations.
TABLE_CONSTRAINTS
Visualiselescontraintesdeniveautable,posesdanslabasededonnescourante.
TABLE_PRIVILEGES
Visualiselensembledesprivilgesaccordslutilisateuractueldanslabasededonnescouranteetlensembledesprivilgesaccordsparlutilisateuractueldautresutilisateursdelabasededonnescourante.
TABLES
Visualiselensembledestablesdelabasededonnescourantepourlesquelleslutilisateuractueldisposededroits.
VIEW_COLUMN_USAGE
Visualiselensembledescolonnesdetablesquisontutilisesdansladfinitionduneouplusieursvues.
VIEW_TABLE_USAGE
Visualiselensembledestablesdelabasededonnescourantequisontutiliseslorsdeladfinitiondevues.
VIEWS
Visualiselensembledesvuesaccessibleslutilisateuractueldanslabasededonnescourante.
5.Lestchesdeladministrateur
Ladministrateurdebasesdedonnesapourobjectifprincipaldamliorerlefonctionnementdelabasededonnes.BienqueSQLServerpossdedenombreuxoutilsetalgorithmesdautooptimisation,ilrestedenombreusestchesladministrateur.
Lesprincipalestchesdeladministrateursont:
l GrerlesservicesSQLServer
- 7 - ENI Editions - All rigths reserved
l GrerlesinstancesSQLServer
l Mettreenplaceleprocessusdesauvegardeetderestauration
l Configurerunedisponibilitdesdonnesenaccordaveclapolitiquedentreprise
l Grerlesconfigurationsrseaux
l Importeretexporterdesdonnes.
EnplusdescomptencessystmequedoitpossderladministrateurpourtrecapabledegreraumieuxlinstanceSQLServer, ilest importantpour luideconnatre lespossibilitsoffertesparSQLServerpour lautomatisationdestchesavecSQLAgent.
Pourmesurerlersultatdesontravailetcomparerlesdiffrentschoixdeconfigurationquilpeuttreamenfaire,ladministrateurdoittreenmesuredutiliserlesoutilsetmthodeslisSQLServer.
Enfinetcestsansdouteunpointcrucial,ladministrationdelabasedoittreinscritedansunprocessusplusglobalqui intgre ladministrateur ds la conception de la base, de faon effectuer les meilleurs choix en termedarchitecturedslaconception.Ladministrateurpourraainsiintervenirsurlacrationdelabaseetleschoixfaitscomme,parexemple,lenombredegroupedefichiersutiliser,lesindex,lesvues,lesprocduresstockesdfinirde faon optimiser le trafic rseau mais aussi pour simplifier la gestion des droits daccs. Cest galementladministrateurquivapouvoirconseillersurlepartitionnementounondunetable.
- 8 - ENI Editions - All rigths reserved
InstallerSQLServer
LinstallationdeSQLServerpermetdeprsenterlesdiffrentesditionsdeSQLServerainsiquededtaillerlesoptionsdinstallationpossibles.UnpointtoutparticulierseramisenplacepourdtaillerlexcutiondesservicesassocisSQLServer(logicielsserveur).Unefoisleserveurinstall,ilfautsassurerquelinstallationsestdroulecorrectementpuisilfautconfigurerleserveuretcertainsoutilsclientspourraliserlesdiffrentestapesdadministration.
Bienquefacileraliser,linstallationdeSQLServerdoittreuneoprationrflchie.Eneffet,denombreusesoptionsdinstallationexistentetleurchoixdoitcorrespondreunrelbesoin,oupermettredecouvrirunevolutionfuturedusystme.
1.LesditionsdeSQLServer
SQLServerestdisponiblesouslaformedeplusieursditions.Chaqueditionsedistinguepardescaractristiquesspcifiques.Enfonctiondespossibilitssouhaites,lechoixseporterasuruneditionoubienuneautre.
Certainesditions(standardetentreprise)sontplusdestineslagestiondesdonnesduneentreprisetandisquecertainesditions(developer,workgroup,web,express)ontpourobjectifdesatisfairedesbesoinsbienparticuliers.ToutescesditionsdeSQLServersontdisponiblespourdesplatesformes32et64bits.Enfin,lditioncompactestquantelledestineauxpriphriquesmobiles.
Ldition Entreprise est la plus complte. Elle propose lensemble des fonctionnalits disponibles avec SQL Server.Cette dition est conue pour tre capable de grer des volumes trs importants en termes de donnes et detransactionsavecdenombreuxutilisateursconnects.
Cetteditionestdisponiblepourlesplatesformes32et64bits(x86,x64etIA64).
Cette dition dispose galement des fonctionnalits avances en ce qui concerne les oprations de businessintelligence.
Lditionentreprisesedistinguedesautresditionssurlespointssuivants:
l Supportejusqu50instancesdeSQLServer
l Priseenchargedupartitionnementetdelaparalllisation
l Supportelacompressiondesdonnes
l Disposedugouverneurderessources
l Proposelamiseenmiroirdebasesdedonnesetunercuprationautomatiquepartirdumiroir
l Permetdegrerdesclusters
l Autoriselacrationdindexenligne
l Permetlarestaurationenlignedesfichiersetdespagesaltrs
l Autoriselacrationdesauvegardescompresses
l Proposeunhautniveaudescurit(chiffrementtransparentdesdonnes)etdaudit
l PrendenchargelesdiffrentstypesderplicationycomprisversdesclientsOracle.
Cette dition, plus simple que ldition entreprise, a pour objectif de rpondre aux besoins dune entreprise quichercheunmoteurdebasededonnesperformantetquinapasbesoindesfonctionnalitsspcifiquesdelditionentreprise.
CestgalementuneditionstandardquiestmisedispositiondansSBS(SmallBusinessServer)afindetravailler
Entreprise
Standard
- 1 - ENI Editions - All rigths reserved
dansunenvironnementdemoinsde75postes.
Lesprincipauxpointsfortsdecetteditionsont:
l Lapossibilitdavoir16instancesmaximum
l Laprisedecomptedesbasesdedonnesmiroir
l Lapossibilitdedfinirdesrplications
l Lagestionparlesstratgies
l ImportationdedonnesviaSSIS(SQLServerIntegrationServices).
LditionExpressdeSQLServer2008possdelaparticularitdtreutilisableenproductionsansquilsoitncessairedesacquitterdunelicencedeSQLServer.CetteversionnestpasuneversiondgradedeSQLServer,maisilsagitbiendumoteurSQLServerpleinementfonctionnel.Ilnexistepasdelimitequantaunombredutilisateursconnects.Lesseules limitationsquiexistentconcernent levolumededonnes :4Goet le faitque lemoteurnepuissepasexploiterplusdungigaoctetsdemmoire.Ilesttoutefoisraisonnabledepenserquelorsquuneapplicationatteintceslimites,lentreprisepossdelesmoyensncessairespouracquriruneversioncompltedeSQLServer.
CetteditionexpressestconseillersansmodrationauprsdesdveloppeursdapplicationscarilserapossibledemigrertrssimplementversuneditionsuprieuredeSQLServer.
Ce typedditionestgalementbienadaptpour lesapplicationsautonomes.Eneffet, lditionexpresspeuttreinstalle sur une plateforme Windows utilisateur, comme par exemple lordinateur portable dun commercial quiemmneavec lui labasedetous lesarticlesde lentreprise.Cettebasepeuttremise jourpar leprocessusderplicationdeSQLServerquipermetdesynchroniserlesdonnesauniveauducatalogueetdelesinjecterdansleSystmedInformationdelentreprise.
Cetteditionestgalementutiledans la cadreduneapplicationmonopostequincessiteunegestion robusteetfiabledesdonnes.ChoisirdutiliserSQLServerpourcetypedapplicationpermetdelaisserouvertlepassageversunegestionmultiutilisateur.
SQL Server 2008 propose galement une dition Express Advanced qui propose les mmes fonctionnalits quelditionexpressenrichiedelapossibilitdeffectuerdesrapports.
Enplusde toutes cesditionsdeproduction,SQLServerproposegalementuneditionDeveloper.CetteditionDeveloper comprend lensemble des fonctionnalits proposes par ldition Entreprise. Toutefois, avec une ditionDeveloper,lamiseenproductionnestpaslgale.Commesonnomlindique,laversionDeveloperpermetlquipededveloppementdapplication de faire ses tests sur une base pleinement fonctionnelle sans pour autant tre danslobligationdacqurirunelicencedeproduction.
IlsagitdelditiondeSQLServerdestinetreinstallesurdesterminauxmobiles.Ilsagitdunebasededonnesgratuiteetparfaitementadaptepourledveloppementdapplicationsautonomes.Ilestpossibledefaireparticipercetteditionunprocessusderplicationafindesynchroniserefficacementlesdonnesdelentrepriseaveccellesprsentessurleterminal.
Cette dition est destine la gestion des donnes destination dun groupe de travail ou bien dun servicedelentreprise.Lesprocessusrelatifs lanalysedcisionnellenesontpasprsents,toutefoiscetteditionpermetdedfinirdesrapports.Aveccettedition,ilnestpaspossibledexploiterplusde4Godemmoirevive.
Centresurlagestiondedonnes,cetteditionpermetdoffrirunmoteurdebasededonnesdestinationdessitesweb faiblecot.Lespossibilitsen termesdadministrationsont rduites.Les fonctionnalitsdcisionnelleset lacration de rapports ne sont pas disponibles sur cette dition. Cette dition peut participer un processus derplication,uniquemententantquabonn.
2.Droulementdelinstallation
Express
Developer
Compact3.5
Workgroup
Web
- 2 - ENI Editions - All rigths reserved
Commepourdenombreuxproduitsleprocessusdinstallationsedrouleentroistempsbiendistincts:
l Lanalysedelenvironnementet linstallationdecomposantsncessaireslabonneexcutionduprocessusdinstallation.
l Leparamtragedesdiffrentscomposantsinstaller.
l Linstallationdescomposantsslectionnsaupralable.
Leprocessusdinstallationcommenceparsassurerque laversion3.5duFramework .Netestbienprsentesur lesystmeetlancesoninstallationsicenestpaslecas.
Par la suite, le premier cran permet de planifier au mieux linstallation de SQL Server 2008 en consultant ladocumentationrelativeauxdiffrentscaspossiblesdinstallation/migrationdedonnesetensassurantquelaplateformechoisieestprtepouruneinstallationdeSQLServer2008.Cedernierpointestassurparloutildanalysedeconfigurationsystme.LorsduprocessusdinstallationdunenouvelleinstancedeSQLServer2008,loutildanalysedeconfigurationsystmeestgalementexcut.Aprssaisiedelaclduproduitetacceptationducontratdelicence,lesfichiersdesupportduprogrammedinstallationdeSQLServersontinstalls.
LeprocessusdinstallationdeSQLServer2008commenceparexcuteruncertainnombrederglesafindevaliderlaconfigurationdelaplateforme.
Si ces rgles ne sont pas parfaitement respectes il en ressort soit des avertissements, soit des erreurs. UnavertissementpermetdeprciserquebienquilsoitpossibledinstalleruneinstanceSQLServer,certainscomposantsnepourrontpastreinstalls.
a.Choixdescomposants
Avantdeprocderauparamtragedelinstallation,SQLServerdemandedeslectionnerlescomposantsquivonttre installs sur le poste local. Cest ce niveau quil est possible de dfinir que seuls les outils doivent treinstalls,oubienlemoteurdebasededonnes.
Ilsagitdeslectionnerfinementlescomposantsinstaller.Ilnesagitpasdecochertouteslesoptions,maisbiende slectionner les composants (client ou serveur) qui vont tre effectivement utiliss. En limitant le nombre decomposantinstalls,lasurfacedattaquedusystmeestrduiteetlonvitegalementunesurchargedusystmepardescomposantsnonutiliss.Bienentendu,sicertainscomposantsnontpastslectionnlorsdelinstallationinitialeetquelebesoinsenfaitsentirparlasuite,ilestpossibledelesajouter.
- 3 - ENI Editions - All rigths reserved
Pourchacundescomposants,ilestpossiblededfinirsonemplacementphysiquesurledisquedur.Pouraccdercetcrandeconfiguration,ilfautslectionnerlebouton .
b.Nomdelinstance
MSSQLServeroffrelapossibilitdinstalleruneouplusieursinstancesdumoteurdebasededonnessurlemmeserveur.Chaqueinstanceestcompltementindpendantedesautresinstallessurlemmeserveuretellessontgres de faon autonome. Lorsque plusieurs instances sont prsentes sur le mme serveur, il est ncessairedutiliser le nom de chacune dentreelles pour les distinguer. La premire instance installe est gnralementlinstancepardfautetelleportelemmenomqueleserveursurlequelelleestinstalle.
- 4 - ENI Editions - All rigths reserved
Les autres instances porteront alors un nom. Aprs le choix du nom de linstance installer, le processusdinstallationvrifielescapacitsdisquedusystme.
Unmmeserveurnepeuthbergerquuneseuleinstancepardfaut.
Chaqueinstanceestparfaitementidentifieparsonnom.Lenomdelinstancerespectelesrglessuivantes:
l lenomdelinstanceestlimit16caractres
l lesmajusculesetlesminusculesnesontpasdiffrencies
l le nomde linstance ne peut pas contenir lesmots DEFAULT et MSSQLSERVER, ainsi que tout autremotrserv
l lepremiercaractredunomdelinstancedoittreunelettre(AZ)oubienletraitdesoulignement(_)
l lesautrescaractrespeuventtredeslettres,deschiffresoubienletraitdesoulignement(_)
l lescaractresspciauxtelsquelespace,lantislash(\),lavirgule,lesdeuxpoints,lepointvirgule,lasimplecote,le"et"commercial(&)etlarobase(@)nesontpasautorissdanslenomduneinstance.
c.LesservicesSQLServer
Enfonctiondeschoixfaitslorsdelinstallation,ilpeutyavoirjusqu10servicesdecrs:
l SQLServerDatabaseServices
l AgentSQLServer
l AnalysisServices
l ReportingServices
- 5 - ENI Editions - All rigths reserved
l IntegrationServices
l Recherchedetexteintgral
l NavigateurSQLServer
l SQLServerActiveDirectoryHelper
l SQLWriter.
Certains de ces services sont lis linstance SQL Server installe. Cest par exemple le cas pour SQL ServerDatabaseServiceset lAgentSQLServer.CertainsservicescommeReportingServicessontdirectement lisdesutilisationsparticuliresdeSQLServer,icicestlecasdelaBusinessIntelligence.
Dans le cadre de cet ouvrage, ce sont principalement les services SQL Server Database Services et lAgentSQLServerquivonttretudis.
Leslogicielsctserveursexcutentsousformedeservices.Commetouslesservices,pouraccderauxressourcesdelamachine,ilsutilisentlecontexteduncomptedutilisateurdudomaine.PardfautlesservicessexcutentdanslecontexteducompteLocalSystem.Cecomptepermetdobtenirtouteslesressourcesdelamachinelocale,maisilnepermetpasdaccderdesressourcesdudomaine.
Lesdeuxservices,quesontMSSQLServeretSQLServerAgentdoiventtrecapablesdaccderdesressourcesdudomaine,afindepouvoirutilisertouteslesfonctionnalitsproposesparSQLServer(gestiondestchesplanifies,rplication...).Lorsdelinstallationilestpossibledeprciserlecomptedutilisateurdudomainequiserautilispourlesdeuxservices.
Pour simplifier les oprations de gestion, il est recommand dutiliser le mme compte Windows pour les deuxservices.
LemmecomptepourragalementtreutilispourleservicedeRecherchedetexteintgral.
SilentreprisecomporteplusieursserveursSQLdansplusieursdomaines,ilestprfrablequetouslesservicesSQLServer sexcutentenutilisantuncomptedutilisateurdedomaineportant lemmenometavec lemmemotdepasse.
Service Nompourlinstancepardfaut Nompouruneinstancenomme
MicrosoftSQLServer MSSQLSERVER MSSQL$NomInstance
AgentSQLServer SQLSERVERAGENT SQLAgent$NomInstance
CompteLocalSystmeetcomptedutilisateur
- 6 - ENI Editions - All rigths reserved
Comptedouverturedesession
Ilestpossibledeparamtrer lesservicesdeSQLServerdefaoncequilsdmarrentautomatiquement lorsdudmarragedeWindows.Lavantagedecetteoptionestquilnestpasncessairedouvrirunesessionsurleposteen tantquadministrateur,pour lancer lesservicesduSGBDR.LorsdechaquedmarragedeWindows, lesbasesgresparleSGBDRsontimmdiatementaccessibles.
Ces deux options : Comptes de services et Dmarrage automatique de service peuvent tre fixes lors delinstallationdeSQLServeroubienunefoisqueSQLServerestinstallautraversdesoutilsdadministration.
Dmarrageautomatiquedesservices
- 7 - ENI Editions - All rigths reserved
d.Paramtresdeclassement
LalanguepardfautdelinstancedeSQLServervaavoiruneincidencedirectesurleclassementslectionn.
IlestpossibledinstallerSQLServerquellequesoitlalanguedfinieauniveaudusystmedexploitation.
Ilfautveillernepasconfondrelapagedecodeetleclassement.
La page de code est le systme de codage des caractres retenus. La page de code permet didentifier 256caractres diffrents. Compte tenu de la diversit des caractres utiliss dune langue lautre, il existe denombreusespagesdecode.Pourpouvoirprendreencomptedesdonnesexprimesdansdiffrenteslangues,ilestpossibledutiliser le systmeUNICODE.Ce systmede codagedes caractrespermetdutiliserdeuxoctetspourcoderchaquecaractre.LesystmeUnicodepermetdoncdecoder65536caractresdiffrentscequiestsuffisantpourcoderlatotalitdescaractresutilissparlesdiffrenteslanguesoccidentales.
Cettesolutionaveclespagesdecodesnestacceptablequesilonstockedanslabasededonnesuniquementdesdonnes en provenance dune seule langue. Or, avec la monte en puissance des applications de commercelectronique,lesbasesdedonnesvontdeplusenplussouventcontenirdesinformations(commelesnom,prnometadressedesclients)enprovenancedediffrenteslangues.Pourpouvoirsupporterlescaractresspcifiqueschaquelangue,ilfaututiliserletypededonnesUnicode.LesdonnesdetypeUnicodesontconservesdanslestypesncharetnvarchar.Auniveaude lapplicationcliente,quipermet lasaisieet laffichagedes informations, letypededonnesUnicodedoitgalementtresupport.
LespacerclamparletypededonnesUnicodeestdeuxfoisplusimportantquepourlesdonnesnonUnicode.Mais, ce lgerdsavantageest largementcompenspar le tempsgagn lorsde laffichagedes
donnes sur leposte client. Eneffet, avec le typededonnesUnicode, il nestplusncessairede raliserunmappageentrelapagedecodeutilisedanslabasededonnespourstockerlinformation,etlapagedecodeutilisesurleposteclientpourafficherlinformation.
Leclassementcorrespondunmodlebinairedereprsentationdesdonnesetquipermetdedfinirdesrglesdecomparaisons ainsi que des rgles de tris. Par exemple, le classement permet de dfinir sur la langue franaisecommentlescaractresaccentusdoiventtreprisencomptelorsdoprationdecomparaisonetdetris.
Ilexistepardfauttroistypesdeclassements:
l les classementsWindows qui sappuient sur les paramtres de langues dfinies au niveauWindows. Ensappuyantsurcetypedeclassement,lesordresdetris,decomparaisonssadaptentautomatiquementlalangueduserveur.
- 8 - ENI Editions - All rigths reserved
l Lesclassementsbinairessont rputspour leur rapiditde traitement. Ilssontbasssur lecodebinaireutilispourenregistrerchaquecaractredinformationauformatunicodeounon.
l Les classements SQL Server sont prsents pour assurer une compatibilit ascendante avec les versionsprcdentesdeSQLServer. Il est doncprfrabledenepas faire ce choixdans le cadredunenouvelleinstallation.
Un classement doit ncessairement tre prcis lors de la cration de linstance, il deviendra le classement pardfautdelinstanceetserautilisparlesbasesdedonnesmaster,msdb,tempdb,modeletdistribution.
Lors de la cration des bases de donnes utilisateurs, il sera possible de prciser un autre classement parlintermdiairedelaclauseCOLLATE.
CommelesclassementscontrlentlordredetridesdonnesUnicodeetnonUnicode,ilnestpaspossiblededfinirdesordresdeclassementincompatibles.
Fixerlesparamtresdeclassement
Il est possible de connatre le classement adopt au niveau du serveur par lintermdiaire de la fonctionSERVERPROPERTY,commeillustrdanslexemplecidessous:
- 9 - ENI Editions - All rigths reserved
Ilestgalementpossibledeconnatrelensembledesclassementsdisponiblessurleserveurenutilisantlafonction:fn_helpcollations().
ATTENTION:lerespectdelacassesappliqueaussibienauxidentificateursquauxdonnes.Silonchoisitlordredetribinaireaveclerespectdelacasse,alorstouteslesrfrencesauxobjetsdoiventtreralises
enutilisantlammecassequecellespcifielorsdelacrationdecesobjets.
e.Modedauthentification
LagestiondescomptesdutilisateurpeutsappuyerintgralementsurlescomptesdesutilisateursWindowsmaisilestaussipossiblededfinirdescomptesdutilisateuretdelesgrerintgralementauseindeSQLServer.Danscecas, il est ncessaire de spcifier le mot de passe de lutilisateur SQL Server qui possdera les privilgesdadministrateurSQLServer.Lorsquecelaestpossible,ilestprfrabledesappuyersurlascuritWindows.
- 10 - ENI Editions - All rigths reserved
f.Configurationdumoteurdebasededonnes
La configuration dumoteur de base de donnes permet de spcifier lemode scurit choisi, lemplacementdesfichiersdedonnes,ainsiquelactivationounondeloptionFILESTREAM.
DepuislongletFILESTREAM,ilestpossibledactivercettefonctionnalit.
Cesdiffrentschoixpeuventtremodifis/outrepasssparlasuitelorsdelaconfigurationduserveuroubienlorsdelagestiondesfichiersrelatifsunebasededonnes.
- 11 - ENI Editions - All rigths reserved
Pourunescuritplusleveauniveaudesutilisateurs,ilestrecommanddesappuyersurlecontextedescuritWindowsetdinterdirelascuritSQLServer.Celavitera,parexemple,quedesdveloppeurscodentendurunnometunmotdepassedansuneapplicationoubiendansunfichierdeconfiguration.
g.Synthseduprocessusdinstallation
Le processus dinstallation propose ensuite la cration de rapport derreur qui est automatiquement envoy Microsoft.
Lesrglesdinstallationsontvrifiesafindesassurerquerienneviendrabloquerleprocessusdinstallation.
- 12 - ENI Editions - All rigths reserved
3.Gestiondurseau
SQLServerutilisedesbibliothquesrseauafindassurerlagestiondelatransmissiondespaquetsentreleserveuret le client. Ces bibliothques rseau, existant sous forme de DLL (Dynamic Link Library), procurent toutes lesoprationsncessairespourtablirledialogueentreleserveuretleclientmmesicesdeuxprocessussetrouventsurlemmeposte.
CesbibliothquesrseausontutilisesparlapplicationvialemcanismeIPCouCommunicationInterProcessus.
Unserveurpeuttrelcoute,simultanment,deplusieursbibliothquesetacceptedoncdesdemandesprovenantdeclientsdialoguantavecdesprotocolesrseaudiffrents.Laseuleobligationpourqueleserveurpuisserpondreauclientestquelabibliothquerseaucorrespondantcelleduclientdoittreinstallesurleserveur.
Unfoisquelesbibliothquesrseausontinstallessurleserveur,ilfautencoreconfigurerlesnetlibraryafinqueleserveurpuisselesprendreencompte.
LagestiondurseauentreleposteclientetleserveurpasseprincipalementparTCP/IP.Cestpourquoilagestiondeceprotocoleestinclusepardfautlorsdelinstallationduserveuroubiendesutilitairesclients.
- 13 - ENI Editions - All rigths reserved
Bibliothquesdisponibles:
Canauxnomms
Les canauxnomms sont dsactivs pour toutes les ditions deSQLServer. Leur utilisation se limite au dialogueentrelesoutilsgraphiquesetleserviceSQLServersurleposteserveur.
SocketsTCP/IP(pardfaut)
CettenetlibrarypermetdutiliserlessocketsWindowstraditionnels.
Pour pouvoir utiliser correctement la net library TCP/IP, il est important de prciser le numrode port auquel SQLServer rpond. Par dfaut, il sagit du port 1433, numro officiel attribu par lIANA (Internet Assigned NumberAuthority) Microsoft. Il est galement possible dutiliser un proxy. Dans ce cas cest ladresse du proxy qui seraprciselorsdelaconfigurationdelanetlibraryTCP/IP.
Le port 1433 est utilisable par SQL Server si aucune autre application ou processus ne tente de lutilisersimultanment.
Danscertainscas,commelaccsauserveurautraversdunparefeu,ilestconseilldutiliserunportlibreportantunnumroinfrieur1024.
DanslecasoSQLServerestconfigurpourutiliserunportdynamique,lenumroduportestsusceptibledechangerchaquedmarragedeSQLServer.
4.Modedelicence
Avec lapparitiondesnouveauxoutilsdecommunicationetdespossibilitsnouvellesentermesdevirtualisationdeserveurainsique lesprocesseursmulticurs, lagestiondes licencesadvoluerpoursadaptercettenouvellerpartition.
Ilexistetroismodesdegestiondeslicences:
l Parutilisateur
l Parposteutilispourtablirlaconnexion(PC,Agendalectronique...)
l Parprocesseur.
LutilisationdesmodesdelicenceparposteoubienparutilisateurncessiteunelicencedutilisationdumoteurSQLServer.
Lemodedegestionde licenceexpos ici sappliqueauxditionsStandard,Entreprise,WebetWorkgroupdeSQLServer,cestdireauxditionsdeSQLServerdestinesunemiseenproduction.
La gestion des licences est un lment sensible, et il convient de sassurer que la solution retenue estconformeauxrglesdictesparMicrosoft.Seuleunesynthsedecesrglesestprsentecidessous.
Pour des raisons de scurit, il est recommand davoir un serveur de secours. Ce serveur de secours peut tresynchronisavec le serveuractif soitpar lintermdiaire des journauxde transaction, soit parcequil fait partieduprocessusdemiseenmiroir,soitcestunmembrenonactifducluster.partirdumomentoleserveurdesecoursestnonactif,cestdirequaucuneconnexionutilisateurnestfaitedessus(mmedesfinsdditionderapport),alorsceserveurdesecoursnencessitepasdelicenceSQLServer.Sileserveurprincipaltombeenpanne,leserveurdesecourspeutdeveniractifpendanttrentejoursentoutelgalit.
Aveccemodedegestiondeslicences,cestchaqueprocesseurduserveurquisevoitattribuunelicencedutilisationdeSQLServer.Ainsi,unnombreillimitdutilisateurspeuventseconnecterauserveursansquilsoitncessairepoureuxdepossderune licenceSQLServer.Misaupointaudpartpour lesapplicationsdetypeInternet/intranet,cemodede licenceestgalementutilisableavecnimportequeltypedapplication.Sonprincipalavantagersidedansunegestionsimplifiedesdroitsdutilisation.
Exemple:UneentreprisedisposedunserveurSQLet10stationsdetravaildoiventaccderceserveur.Lesstationsdetravailserpartissenten2groupesde5postes:travaildejourettravaildenuit.Lespostesdecesgroupesnepeuvent se connecter au server que pendant les horaires prciss et il ne peut pas y avoir de chevauchement.CombiendelicencesdaccsSQLServersontncessairesenmodedelicenceparprocesseur?
Rponse:unelicencedaccsestncessaire.Elleestgreparleserveuretautoriselesstationsdetravailvenirse
Licenceparprocesseur
- 14 - ENI Editions - All rigths reserved
connectersimultanmentsurleserveurSQL.
Modedelicenceparprocesseur
Danslecasdunprocesseurmulticurs,SQLServernencessitequuneseulelicenceparprocesseurquelquesoitlenombredecursduprocesseur.
Aveccemodedegestiondeslicences,chaqueutilisateurdoitdisposerdunelicencepourtravailleravecSQLServer.CemodedegestionvatreintressantsilesutilisateurspeuventseconnecterSQLServerparlintermdiairedediffrentsoutils.
Lutilisationdun serveur dapplication qui gre ventuellement unpool de connexionsne rduit pas le nombredelicencesncessaires.Cestchaqueutilisateurphysiquequiancessitunelicencedaccs.
UnemmelicencedaccsclientouCAL(ClientAccessLicense)permetdaccderdemultiplesserveurs.Leniveaudelicenceduclientdoitcorrespondreauserveurleplusexigeant.
Danslemodedegestiondeslicencesparutilisateur,ilest,enplus,ncessairedacqurirunelicencedetypeserveurpourlamachinesurlaquellelinstanceSQLServerestinstalle.
Les utilisateurs exprims ici sont des utilisateurs physiques. Ils peuvent, mme si cela nest pasrecommandable,utilisertouslemmeutilisateurdebasededonnes.
Exemple
Danslexemplesuivant,troisutilisateursdiffrentsseconnectentauserveur.Cettesolutionncessitedonctroislicencesdaccsclient.
Licenceparutilisateur
- 15 - ENI Editions - All rigths reserved
Attention,pourlditionWorkgroup,ilestpossibledacqurirdeslicencesdaccsquinautorisentquelaconnexiondesditionsWorkgroupdeSQLServer.
Aveclalicenceparposte(ouparsige),cestchaquepriphriquequitablituneconnexionunserveurSQLServerquipossdeune licence.Cette licencenestpas lieaunombredutilisateursquipeuventtreamensutiliser leposte. Ainsi, si plusieurs utilisateurs se partagent le mme poste de travail, ils peuvent utiliser la mme licencedaccs.
Munidecette licence,unpostepeutseconnecterplusieurs instancesSQLServer.La licencedoittrecompatibleaveclinstanceSQLServerlaplusexigeante.
Danslemodedegestiondeslicencesparposte,ilest,enplus,ncessairedacqurirunelicencedetypeserveurpourlamachinesurlaquellelinstanceSQLServerestinstalle.
Exemple
Dans lexemplesuivant,deuxutilisateurssepartagent lemmepriphrique.Ilestdoncncessairededisposerdetroislicencesdaccsparposte.
Licenceparposte
- 16 - ENI Editions - All rigths reserved
5.Excuterleprogrammedinstallation
Leprogrammedinstallationsitusur leCDRomdeSQLServersexcuteautomatiquementdsque leCDRomestinsr dans la machine. Si la procdure dinstallation ne dmarre pas automatiquement, il convient de demanderlexcutionduprogrammeSETUP.EXEsitularacineduCDRom.
Il est possible de raliser une installation automatique. Lavantage de cette procdure est de saisir les options installeruneseulefoisenmodeinteractifpuisdepouvoirexcutercetteinstallationsurplusieursautrespostessansavoirressaisirlesoptionschoisies.
Toutes lesoptions relatives linstallationsontenregistresdansun fichierquiporte lextension ini.Ce fichierestcomposuniquementdelasection[Options].
Pourdfinirsonproprefichierdinstallation, il fautprendrecommemodle lefichiertemplate.ini fournisur ledisquedinstallationdeSQLServer.
Pourexcuteruneinstallationautomatique,ilfautexcuterleprogrammesetup.exeenluipassantenparamtrelenomcompletdufichieriniutiliser.
setup.exe /settings nomCompletFichier.ini [/qn] [/qb]
nomCompletFichier.ini
Cheminabsoluetnomdufichierdeparamtrage.
/qn
Commutateurutiliserpourfaireuneinstallationcompltementsilencieuse(sansaucunebotededialogue).
/qb
Commutateurutiliserpoureffectueruneinstallationenaffichantuniquementlesbotesdedialoguequipermettentdesuivrelaprogressiondelinstallation.
Mme si cette solution est hautement performante dans le cas o des installations multiples sont prvoir, ladfinition du fichier de configuration nest pas intuitive et il est donc ncessaire dinvestir un peu de temps pour
Installationautomatique
Syntaxe
- 17 - ENI Editions - All rigths reserved
optimisersonutilisation.
Toutes les installations automatiques sont composes de deux fichiers : un fichier de commande et un fichierdinitialisationetdinstallation.
6.Lesbasesdexemples
Lorsdelinstallationdumoteurdebasededonnes,aucunebasedexemplenestmiseenplacepardfaut.Eneffet,surunserveurdeproduction,lesbasesdexemplesnesontpasncessairesetnepeuventquintroduiredesfaillesdescurit.Toutefoissurunserveurdetestoubiendeformation,cesmmesexemplesprennenttoutleursens.
La documentation en ligne sappuie sur la base AdventureWorks et ses diverses dclinaisons pour proposer desexemples illustrant les diffrentes instructions Transact SQL. Tous les exemples de code et de bases de donnsfournisparMicrosoftsontdisponiblessurcodeplex(http://codeplex.com/SqlServerSamples).CesexemplespermettentdillustrerdefaonprciselesdiffrentesfonctionnalitsoffertesparSQLServer.
LabasededonnesNorthwindprsentedanslesversionsprcdentesdeSQLServeresttoujoursdisponibleetpeutainsitremiseenplacesurSQLServer2008.
En fait,SQLServer2008neproposepasuneseulebasedexemplemaisplusieursenfonctionde lusageque lonsouhaite en faire. La base AdventureWorks2008 correspond une base OLTP (OnLine Transactional Processing)classiqueetcettebase illustre lesutilisationsclassiquesdunebasededonnes.LabaseAdventureWorksDW2008estquantelleunebasequi illustre ledatawarehouse (lentreprotdedonnes)et serautile lorsde tests sur laralisation,lagestionetlamaintenancedunentrepotdedonnesdanslecadreduneanalysedcisionnelle.LabaseAdventureWorksAS2008estquantelleaxesurAnalysisServices.Enfin,uneversionallgedelabaseOLTPestdisponiblesurlabaseAdventureWorkLT2008.
Lorsdutlchargementdelabasedexemplesouhaite,cenestpasunscriptTransactSQLquiestenregistrsurledisque mais un fichier msi (SQL2008.AdventureWorks_OLTP_DB_v2008.x86.msi pour une plateforme 32 bits).Lexcutiondefichierpermetunemiseenplaceaisedelabasedexemple.
Pardfaut,etpourpermettreunniveaudescuritlepluslevpossible,lecompteinvit(guest)nestpasdfini,ceci afindempcher lesconnexionsanonymes.Dans lecadredunserveurde test, ilpeutparfoistre intressantdautorisercesconnexionsanonymesafindepermettreauxutilisateursdaccderlibrementcettebasedexemple.
- 18 - ENI Editions - All rigths reserved
Vrifierlinstallationetconfigurer
1.Vrifierlinstallation
Comme pour tout produit, il est important de sassurer que linstallation sest correctement excute et que leserveurestmaintenantoprationnel.
a.Vrifierleslmentsinstalls
Par lintermdiairede lexplorateur de fichier, il est possible de vrifier que larborescencequi regroupe tous lesfichiers ncessaires au bon fonctionnement dumoteur de base de donnes est bien dfinie. Si linstallationestexcuteaveclesparamtrespardfaut,alorscettearborescenceestc:\ProgramFiles\MicrosoftSQLServer\100.Les fichiers de donnes se trouvent quant eux dans le dossier c:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATAsaufsiuncheminautreatdfinilorsdelinstallation.
Auniveaudes fichiers, il estpossibledeconsulter le journaldinstallation (summary.txt)qui estprsentdans ledossier c:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\LOG. La lecture de document savreprincipalementutilelorsqueleprocessusdexcutionsetermineenchecpourmieuxcernerlorigineduproblme.Ce fichier summary est gnr par chaque excution du programme dinstallation. Une nouvelle excution duprogrammedinstallationvarenommer(avechorodatage)lefichiersummaryexistantafindeconserverlatracedetouteslesinstallations.
- 1 - ENI Editions - All rigths reserved
Danslecasocefichiersummary.txtnevousfournitpassuffisammentdinformation,ilestpossibledeconsulterlefichierSQLSetupxxx.cabsitudanslemmedossier.
b.Vrifierledmarragedesservices
Pourunusageclassiquedelabase,lesdeuxservicesMSSQLServeretSQLServerAgentdoiventtredmarrsetpositionnsendmarrageautomatique.LeserviceMSSQLServerreprsentelemoteurdelabasededonnesettantqueceservicenestpasdmarrilestimpossibledeseconnecterauserveuretdetravailleraveclesdonnesquilhberge.LeserviceSQLServerAgentprendsacharge,entreautres,lexcutionetlagestiondetouteslestchesplanifies.Pourgrerlesservices,ilestbiensrpossibledelefaireaveclesoutilspropossenstandardparWindows,maisSQLServerproposegalementsespropresoutils.
- 2 - ENI Editions - All rigths reserved
Lesoutils
SQLServerdisposedenombreuxoutils.Cesoutilssontcomplmentairesetchacundentreeuxestadaptuntypedeproblmeoudaction.Ilestimportantdepossderunevuedensemblesurlobjectifvisparchacundecesoutilsafindesavoirlequelemployerpourrsoudreunproblmebienprcis.Ilestpossibledefaireiciuneanalogieaveclebricolage,sivousnepossdezquuntournevisvousallezessayerdetout faireavec,alorsquaucontraire,sivotrecaisseoutilsestbiengarnieilyadefortechancedytrouverloutilquirpondexactementauproblmerencontr.PourSQLServerlapprocheestsimilaire.IlestbienentendupossibledefairequasimenttoutenTransactSQL,maisSQLServerproposedesoutilsgraphiquesautrespourpermettredesolutionnerdesproblmesbienprcis.Lutilisationdelaplupartdentreseuxvatredtailletoutaulongdecetouvrage.Unregardglobalpermetcependantdavoirunemeilleurevisiondelintrtprsentparchacun.
Loutil de configurationde la surfacedexpositionprsentdansSQLServer2005disparat avecSQLServer2008maislesrglesgresparcetoutilseretrouventdanslesrglesproposesparSQLServer2008.En
effet,SQLServer2008proposeuneadministrationbase sur les rgles.Cepoint est dtaill plus loin dans cetouvrage.
IlsagitdeloutilprincipaldeSQLServeretilestdestinaussibienauxdveloppeursquauxadministrateurs.
SQL Server Management Studio (SSMS) est la console graphique dadministration des instances SQL Server. Il estpossibledadministrerplusieursinstanceslocaleset/oudistantesdepuiscetoutil.SQLServerManagementStudioestgalementloutilprincipaldesdveloppeursdebasesdedonnesquivontlutiliserpourdfinirlesscriptsdecrationdestables,desvues,desprocdures,desfonctions,desdclencheursdebasededonnes
Cetutilitairepeuttredmarrdepuislalignedecommandeparlintermdiairedelapplicationssms.
Avec SQL Server 2008, SSMS intgre son lot de nouveauts dont la trs attendue autocompltion qui permet lecomplment automatique des mots cls lors de lcriture de requte. Cette autocompltion est active avec letraditionnelappuisurlestouches[Ctrl][Espace].Enplusdesmotscls,lesrfrencesauxtables,colonnes,nomdeprocdures,fonctionssontdisponiblesautraversdelautocompltion.Cettefonctionnalitpermetdegagneruntempsprcieuxlorsdelcrituredesscriptsenlimitantleserreursdesaisie.
Afinde faciliter labonnegestiondesbasesdedonnes,SQLServerManagementStudiopropose lagnrationderapports.Cesrapportspermettentdavoirunevueglobaleetsynthtiquedunoudeplusieurslmentsdelabaseoudu serveur. SQL Server 2008 propose un certain nombre de rapports prdfinismais il est possible de dfinir sespropresrapportsencomplment.
SQLServerManagementStudio
GestionnairedeConfigurationSQLServer
- 1 - ENI Editions - All rigths reserved
LegestionnairedeconfigurationdeSQLServerpermetdegrerlensembledeslmentsrelatifslaconfigurationdesservicesetdurseauctclientetctserver.
Les diffrents services relatifs SQL Server peuvent tre administrs directement depuis cet outil. En plus desoprations classiques darrt et de dmarrage, il est possible de configurer le type de dmarrage (automatique,manuel,dsactiv)ainsiquelecomptedescuritauseinduquelleservicedoitsexcuter.
Legestionnairedeconfigurationpermetgalementdegrerquelssont lesprotocolesprisenchargeauniveauduserveur. Il est galement possible ce niveaudemodifier les proprits spcifiques chaqueprotocole comme lenumroduportdcouteduprotocoleTCP/IP.
Laconfigurationdesservices
ConfigurationderseauSQLServer
- 2 - ENI Editions - All rigths reserved
Cettefoiscilaconfigurationportesurlesoutilsclientinstallslocalementetplusexactementdedfinirprcismentlesprotocoles leurdispositionpourentrerencontactavec leserveur,maisaussi, lorsquecelasavrencessaire, lapossibilitdedfinirdesalias.Cette fonctionnalitestparticulirement intressante lorsque lenomduserveurestenregistrdansuneapplicationetquilnestpaspossibleoubienfaciledemodifiercetenregistrement.Ladfinitiondunaliaspermetderedirigertouteslesdemandesversunserveurdistinct.
Lacapturede traceauniveaudumoteurdebasededonnespermetde tirerauclairdenombreuxproblmesdefonctionnementencomprenantmieuxcommentlesapplicatifsclienttravaillentaveclabase.
Cetassistantpermet,entreautres,partirdunechargede travailcaptureavecSQLProfilerdevaliderounon lastructuredelabasededonnes.Enfindanalyse,lassistantvaconseillerlacration/suppressiondindexoubienlepartitionnementdetablesafindobtenirdesgainsdeperformances.
SQLCmd est un utilitaire en ligne de commande qui permet dexcuter des scripts SQL. Cet outil va tre mis contributionlorsdelademandedexcutiondetchesadministrativesconcernantSQLServerpartirdeWindows.
CetoutilpermetdeseconnecteruneinstancelocaleounondeSQLServer.LauthentificationcetteinstancepeuttreeffectueensappuyantsurlemodedescuritWindowsoubienSQLserver.
SQLCmdpermetdexcuterdesscriptsSQLquecesoitdesinstructionsduDML(DataManipulationLanguage)ouduDDL(DataDefinitionLanguage).
ConfigurationdeSQLNativeClient10.0
SQLServerProfiler
AssistantParamtragedebasededonnes
SQLCmd
osql
- 3 - ENI Editions - All rigths reserved
Autreoutilenlignedecommandepourexcuterdesscripts.Cetoutilestmaintenupourdesraisonsdecompatibilitmaistantdonnquilsappuiesurlatechnologieodbc,ilestamendisparatre.
Il sagitdunutilitaireen lignedecommandequipermetdextraire facilementet rapidementdesdonnesdepuis labaseversunfichieroubiendefaireloprationinverse.
PermetdexcuterlenvironnementPowerShellspcifiqueSQLserver.
Cetutilitairedediagnosticpeuttreexcutafindefournirdesinformationsauservicesupport.
Cetteapplicationpermetdeprparerun fichier journalparsauvegardeoucopieavantde lenvoyerversuneautreinstanceSQLserver.
Commesonnomlindique,cetutilitairepermetdecomparerlecontenudedeuxtables.Ilsavreparticulirementutilepourrsoudrelesproblmesdesynchronisationquipeuventapparatredanslecadredunerplicationdefusion.
Pour tablir la premire connexion au serveur, plusieurs outils sont disponibles. Enmodegraphique, il convient delancerSQLServerManagementStudio.Aulancementdeloutil,lafentresuivantedeconnexionestprsente.
Ilestpossibledtablirlaconnexiondepuisunoutilenlignedecommandecommesqlcmd.LcransuivantpermetdeseconnecterauserveurenutilisantlemodedescuritWindows.
bcp
sqlps
sqldiag
sqllogship
Tablediff
UtiliserunoutilclientpourseconnecterSQLServer
- 4 - ENI Editions - All rigths reserved
- 5 - ENI Editions - All rigths reserved
Laconfiguration
AvantdemettreenserviceleserveurSQL,enlerendantaccessiblepartouslesutilisateurs,ilestimportantderaliserun certain nombre doprationsde configurationdu serveur et des outils dadministration client afin de se prmunircontretouteoprationsensible.
1.Lesservices
Lesdiffrentscomposantsserveursexcutentsousformedeservice.Ilestdoncncessairequecesservicessoientdmarrs afin de pouvoir travailler avec le serveur. Ces services peuvent tre grs avec le gestionnaire deconfigurationdeSQLServermaisilspeuventgalementtregrscommetouslesservicesWindows.
Depuislegestionnairedeconfiguration,ilestsimpledevisualiserltatduserviceainsiquedemodifiersesproprits.
CommetouslesservicesWindows,ilspeuventtregrsdefaoncentraleauniveauduserveurWindows.
Enfin,ilestpossibledagirsurcesservicesdirectementenlignedecommandesparlintermdiairedescommandesnetstartetnetstop.Lorsdundmarrageenlignedecommande,ilestpossibledoutrepasserlaconfigurationpardfautdu service en spcifiant la configuration utiliser sous forme de paramtres. Par exemple, loption m (net startmssqlserverm)permetdedmarrerleserveurenmodemonoutilisateur.
Encasdeproblmededmarrage,ilestpossiblededmarrerleserveurSQLServerentantquapplicationlaidedelexcutablesqlservr.exe.Lutilisationdecetexcutablepermetdedmarrer linstanceennetenantpascomptedetouteslesoptionsdeconfigurationdfinies.
Dmarr
Lorsque le serviceMSSQLServerestdmarr, lesutilisateurspeuventtablirdenouvelles connexionset travailleravec les donnes hberges en base. Lorsque le service SQL Server Agent est dmarr, lensemble des tchesplanifies,desalertesetdelarplicationestactif.
Suspendu
Lesdiffrentstatsdesservices
- 1 - ENI Editions - All rigths reserved
Si leserviceMSSQLServerestsuspendu,alorsplusaucunnouvelutilisateurnepeuttabliruneconnexionavec leserveur.Lesutilisateursencoursnesontpasconcernsparunetellemesure.LasuspensionduserviceSQLServerAgentdsactivelaplanificationdetouteslestchesainsiquelesalertes.
Arrt
Larrt du service MSSQL Server dsactive toutes les connexions utilisateur et dclenche un processus deCHECKPOINT(lensembledesdonnesvalidesprsentesenmmoiresontredescenduessurledisqueduretlepointde synchronisation est inscrit dans le journal). Un telmcanisme permet dassurer que le prochain dmarrage duserveur sera optimal. Cependant le service attend que toutes les instructions en cours soient termines avantdarrterleserveur.LarrtduserviceSQLServerAgentdsactivelexcutionplanifiedetouteslestchesainsiquelagestiondesalertes.
2.SQLServerManagementStudio
SQL Server Management Studio est loutil de gestion graphique de SQL Server qui permet de raliser les tchesadministrativesettouteslesoprationsdedveloppement.Lutilisationdummeoutilpermetderduireladistinctionentrelesdeuxgroupesdutilisateursquesontlesadministrateursetlesdveloppeurs.Enpartageantlemmeoutil,ilestplusfaciledeconnatrecequilestpossibledefaireduneautrefaon.
Pour pouvoir naviguer dune instance lautre de SQL Server, ventuellement sur des serveurs diffrents, il estncessairedenregistrerchaqueserveurdanslaconsoledadministration.CetteinscriptionnestpasncessairepourlinstancelocaledeSQLServer,carlorsdelacrationdelinstance,lesinformationsrelativescetteinstanceonttajoutesdansSQLServerManagementStudio.
LafentreServeursInscritspermetdeconnatrelalistedesserveursinscritsdansSQLServerManagementStudio.Sicettefentrenestpasvisible,ilestpossiblededemandersonaffichageparlemenuAffichageServeursinscritsouparleraccourciclavier[Ctrl][Alt]G.
Lesserveurssontregroupspartype.Pourchaquetypeilestpossiblededfinirdesgroupesdeserveursafindelesregroupersurunautrecritre,parexemplelemplacementphysique.Lesgroupesdeserveursnontaucuneinfluencesurlinscriptionduserveur.IlestpossiblededplacerunserveurversungroupeenslectionnantloptionTchesDplacerversdepuislemenucontextuelassociauserveur.Paranalogie,ilestpossibledecomparerlesgroupesdeserveursdesdossiersetlesserveursinscritsdesfichiers.Lesfichiersnesontpasaffectslorsquilssontdplacsdundossierunautre.Ilenestdemmepourlesinscriptionsdeserveur.Lesdossierssontdfinispourregrouperlesfichierssuivantunecertainelogique,cestexactementlerlequejouentlesgroupesdeserveurs.
Pour inscrire un nouveau serveur depuis SQL Server Management Studio, il faut slectionner loption NouvelleinscriptiondeserveurdepuislemenucontextuelassociaunudLocalServerGroupsdanslafentreServeursinscrits.
Inscrireunserveur
- 2 - ENI Editions - All rigths reserved
Labotededialoguequipermetderaliserlinscriptionestcomposededeuxonglets.Lepremierongletpermetdecomplter toutes les informations gnrales de linscription comme le nom du serveur, mais galement le typedauthentificationutilispourtablirlaconnexionsurleserveur.
DepuisSSMSilestpossibledinscriredesserveursSQLServer,AnalysisServices,SQLServerCompactEdition,ReportingServicesetIntegrationServices.
- 3 - ENI Editions - All rigths reserved
LeboutonTesterpermetdesassurerquelaconnexionchoisiepermetbiendetravaillersurleserveurslectionn.
Ilestpossibledenregistrerunserveuravecunnomdiffrentdeceluiduserveur.
Lesecondongletpermet,quantlui,defixerdesoptionsplusavancescommelabasededonnespardfautoubienletypedeprotocolerseauutilispourtablirlaconnexionavecleserveur.
Pourdesraisonsdescurit,ilestprfrabledechoisirlorsquecelaestpossiblelemodedauthentificationWindows.
Lors de linscription du serveur, il possible de slectionner certaines options comme le dlai dexpiration de laconnexion.
Pourfaciliterletravaildeladministrateur,lesbasesdedonnessystmesontregroupesdansundossier.Ainsi,cesont les bases de donnes des utilisateurs qui sont visibles au premier plan. Cette sparation permet de ne pasencombrerlaconsoleparlesbasessystmequinontdimportancequepourSQLServer.
- 4 - ENI Editions - All rigths reserved
Le mme type de sparation est effectu sur les bases entre les tables systme et les tables cres par lesutilisateurs.Cesontcesderniresquicontiennentlesinformationsetsurlesquellestousleseffortsdadministrationvontporter.
3.Configurationduserveur
Avantdouvrirplus librement laccsauserveuretdepermettreauxutilisateursdevenir travaillersur leserveur, ilconvientdesurveillerattentivementlesdeuxpointssuivants:
Cetteproccupationconcerneuniquementlesserveursquisontconfigursenmodedescuritmixte.Sicechoixat fait au cours de linstallation, il faut sassurer que le mot de passe de ladministrateur SQL Server (sa) estsuffisammentfort.Sicenestpaslecas,ilestalorsncessairedelemodifier.
Lors de linstallation de SQL Server deux utilisateurs sont prdfinis. Le premier est le groupe local desadministrateurs(utilisaveclascuritWindows),lesecondestlutilisateursa.CesdeuxutilisateursprsententdesdroitsdadministrateurduserveurSQL.LutilisateursasappuiesurlescuritSQLServeretsonmotdepasseatdemanddurantlaprocduredinstallation.
Si lorsde linstallation,seul lemodedescuritWindowsatactiv,alors laconnexionsaestnonactive. Ilestncessaire de dfinir unmot de passe fort avant dactiver la connexion. Cependant la connexion ne pourra treutilisequesileserveurestconfigurenmodedescuritmixte.
Deuxpossibilitsseprsentent.
Motdepassedeladministrateur
ParSQLServerManagementStudio
- 5 - ENI Editions - All rigths reserved
Lesressourcesdelamachinesontgresdynamiquement.Cettegestionautomatiquedesressourcespermetdoffrirlesmeilleuresfonctionnalitspossiblesduserveurtoutenralisantunminimumdetchesadministratives.Toutefois,il
ParletransactSQL
Gestiondesressources
- 6 - ENI Editions - All rigths reserved
peut parfois tre intressant de grer manuellement certaines ressources afin de raliser une optimisation delutilisationdesressourcesduserveur.QuelquesunsdecesrglagespeuventtreralissaumoyendeSQLServerManagementStudio.
Pouraccderlatotalitdesparamtresduserveur,ilfaututiliserlaprocdurestockesp_configure.
Si une option est modifie laide de la procdure sp_configure, elle ne prendra effet que lors du prochain
- 7 - ENI Editions - All rigths reserved
redmarrageduserveurSQL.IlestpossibledappliquerlamodificationdefaonimmdiateenexcutantlacommandeRECONFIGUREWITHOVERRIDE.
4.LagestionduprocessusSQLServer
Pourlesystmedexploitation,chaqueapplicationsexcutesousformedeprocessus.Chaqueprocessusdisposedeces propres threads qui correspondent aux units de travail que le systme dexploitation doit soumettre auprocesseur.Aunprocessuscorrespondtoujoursaumoinsunthread.
Chaque instanceSQLServer gre ellemme ses propres threads et gre leur synchronisation sans passer par lenoyauWindows.LobjectifdeSQLServerestderpondreefficacementetrapidementdesdemandesdemontesencharge brusque et soudaine. Afin dtre toujours disponible, SQL Server gre son propre pool de threads dont lenombremaximal est contrl par le paramtremaxworker threads. Avec la valeur par dfaut (0) SQLServer secharge de grer luimme ce nombre de threads mais il est galement possible de fixer le nombre maximum dethreads.Cesthreadsvontavoirpourobjectifdetraiterlesrequtesdesutilisateurs.Etantdonnquunutilisateurnetravaillepas100%deson tempssur le serveur, ildoit lireoubienmodifier lesdonnesavantdesoumettreunenouvellerequte,ilestprfrablepourSQLServerdepartagerunmmethreadentreplusieursutilisateurs.
Lavaleurmaximaledeceparamtretaitde255avecSQLServer2000.Aussidanslecadredunemigrationdeserveurestilrecommanddepositionnercettevaleur0.
Windowsproposegalementdegrerdesfibresquireprsententuneunitdetravailpluslgrequunthread.Ilestpossible de demander SQL Server de travailler avec ces fibres en lieu et place des threads. Ce paramtrageseffectueavecloptiondeconfigurationlightweightpooling.Cependant,lactivationdecetteoptionrendimpossiblelutilisationdecodeCLRdansSQLServer.Dautrepart, lactivationdecetteoptionsetraduiraparungainsignificatifde performance uniquement sur des serveurs massivement multiprocesseurs avec un taux dutilisation desprocesseursimportant.
Dans le cadre dune architecturemultiprocesseurs et souventmultiinstance, il est possible laide de loptiondeconfigurationaffinitydespcifier lesprocesseursutiliserpourchaque instance.Cetteoptioncontientunevaleurbinaireouchaquebitreprsentelautorisation(1)ounon(0)dutiliserunprocesseur.
Enfinpourordonnancerlexcutiondesdiffrentsthreads,Windowsaffectechaqueprocessusuneprioritvariantde1(lemoinsprioritaire)31(leplusprioritaire).Cettegestiondeprioritneconcernepaslesprocessussystme.Pardfaut,leprocessusSQLServerreoitunniveaudeprioritgal7,cestdireunprocessusnormal.Ilestpossiblededonnerunepriorit suprieurepar lintermdiairede loptionde configurationpriority boost.CetteoptionpeutsavrerparticulirementintressantelorsqueplusieursinstancesSQLServersexcutentsurlemmeposteetquelonsouhaiteenfavoriserune.
5.Lagestiondelammoire
- 8 - ENI Editions - All rigths reserved
Pardfaut,SQLServergredynamiquementlaquantitdemmoiredontilabesoin.Ilestdailleursrecommanddeconserver une gestion dynamique de la mmoire qui permet une rpartition optimale de la mmoire entre lesdiffrentsprocessussexcutantsurleserveur.
Surplateforme32bits,SQLServerestcapabledexploiter lesextensionsAWE(AddressWindowingExtensions)afindadresserjusqu64GodeRAM.
Ilestimportantqueleserveurdisposedunequantitdemmoiresuffisantecarcelapermetdeminimiserlenombrede lectures physique et de favoriser les lectures logiques. Plus ces dernires sont nombreuses,meilleurs sont lestempsderponseduserveur.Leratioentrecesdeuxtypesdelecturespeuttreobtenuautraversdelanalyseurdeperformances.CepointestabordauchapitreOptimisationAnalyseurdeperformances(MoniteurSystme).
Pour permettre la gestion dynamiquede la quantit demmoire utilise,SQLServer sappuie sur lAPI (ApplicationProgrammingInterface)degestiondelammoiredeWindowsafindacqurirlemaximumdemmoiresanspourautantprivlesystmedelaquantitdemmoirequiluiestncessaire.
Cettegestiondynamiquepeuttrelimiteenutilisantlesparamtresminservermemoryetmaxservermemory.LinstanceSQLServer,mmesielleestpeuutilise,conservera toujours laquantitdemmoirespcifieparminservermemory.Encasdechargedetravail,ilestpossibledacqurirdelammoire,sansjamaisdpasserlavaleurspcifieparmaxservermemory.
LapriseenchargedelammoireAWEestpossibleenconfigurantleparamtreaweenableddelafaonsuivante:
- 9 - ENI Editions - All rigths reserved
- 10 - ENI Editions - All rigths reserved
Leservicedetexteintgral
Leservicederecherchedetexteintgralapourobjectifdamliorerlapertinenceetlavitessedesrequtesmenessurles champs qui contiennent des textes de grandes dimensions, cestdire sur des colonnes de type char, nchar,varchar, nvarchar, varbinary et xml. Dans le cas o la table possde de nombreuses lignes, une requte avecloprateurlikepeutprendreplusieursminutespoursexcuter.Silacolonnedisposedunindexdetexteintgral,alorslextractiondeslignesdemandequelquesinstants.
Lamiseenplacedun telservice,utilispour lindexation, linterrogationet la synchronisationncessite laprsencedune cl unique (ou cl primaire) sur toutes les tables qui sont inscrites en vue dune recherche de texte intgral.Lindexdetexteintgralconserveunetracedetouslesmotssignificatifsquisontemploysainsiqueleuremplacement.Pourquelarecherchesoitpertinenteetrapide,seulslesmotschargsdesensdoiventtreindexs.Pouridentifierlesmotsdnusdesens,SQLServervautiliserune listedesmotsvides.Cette listeestconservedirectementdans labasededonnes.Toutefois,commecetteincorporationdelalisteestunespcificitdeSQLServer2008,danslecasdunemigrationdepuisSQLServer2005,cettelisteestconservesouslaformedefichierexterne.
Cettelistedesmotsvidespeuttremodifielibrementafindyajouterlesmotsvidesspcifiquesuneentrepriseoubienuncontextedetravail.Parexemple,lenomdelasocitpeuttreconsidrcommeunmotvidecarilyadeforteschancesquilapparaissetrsfrquemment.
Leservicederecherchedetexteintgralsappuiesurquelquestermesbienprcispourdcriresamiseenplaceetsonfonctionnement:
l Index de texte intgral : stocke les informations relatives aux mots significatifs. Cest partir de cesinformationsquelesrecherchessonteffectues.
l Cataloguedetexteintgral:associuneinstancedeSQLServer,lecataloguepeutcontenirde0nindex.
l Analyseurlexical:enfonctiondelalangueetdessesrgleslexicales,lanalyseurlexicalvadfinirlesjetons.
l Jeton:ilsagitdunechanedecaractres(biensouventdesmots)reprparlanalyseurlexical.
l Gnrateurdeformesdrives:enfonctiondelalangue,legnrateurdeformesdrivespermetdegrerlesdiffrentesformesquepeutprendreunterme,commeparexemplesaconjugaisonpourunverbeoubiensonaccordpourunnomouunadjectif.
l Filtre:cetlmentpermetdextraireletextepartirdunfichierspcifique(.docparexemple)etdenregistrercetextedansunecolonnedetypevarbinary(max)parexemple.
l AnalyseouAlimentation:ilsagitduprocessusquipermetdinitialiseretdemaintenirjourlindex.
l Motsvides:ilsagitdunelistedemotsquinesontpasporteursdesenspourlesrecherchesenmodetexte.Cette listedemotsest spcifiquechaque langue.Lobjectif recherchestde rduire lenombredemotstraiterenliminanttouslesmotsdeliaison,lesarticlesoudestermesdnusdesensparrapportaucontexte,parexemplelenomdelentrepriseoubienunacronymecourammentutilis.
AvecSQLServer2008,leservicederecherchedetexteintgralestentirementsupportparleserviceMSSQLServer.
Ceserviceestgalementdisponiblepourtouteslesbaseshbergessurleserveur.
LactivationdelapriseenchargedeserviceauniveaudelabasenestplusdactualitavecSQLServer2008.
Larecherchelinguistiquesurdesdonnestexte,nestpossiblequesurlestablesactivespourlarecherchedetexteintgral. La recherche linguistique, contrairement loprateur LIKE qui agit sur les caractres, effectue unecomparaisonsurlesmotsetsurlesexpressions.
La mise en place dune recherche de texte intgral dans une base de donnes impose deffectuer les oprationssuivantes:
l prciserlestablesetlescolonnesquidoiventtreinscritesdanslarecherchedetexteintgral.
l raliser lindexation des donnes des colonnes inscrites et remplir les index de texte intgral avec lesmots
Implmentation
- 1 - ENI Editions - All rigths reserved
porteursdesens.
l excuterlesrequtessurlescolonnesinscritespourlarecherchedetexteintgral.
l sassurerquetouteslesmodificationseffectuessurcescolonnesonttpropagesjusquauxindex.
Cesindexnesontpasremplisentempsrelmaispluttdefaonasynchronecar:
l letempsdindexationestgnralementbeaucouppluslong.
l lesrecherchesdetexteintgralsont,enrglegnrale,beaucoupmoinsprcisesquelesrecherchesenmodestandard.
LamiseenplacesurservicedetexteintgralpeuttreeffectuedepuisSQLServerManagementStudiosousformedescriptsTransactSQL.
Lestapesdetravailralisersont:
l creruncatalogue
l crerunouplusieursindexquiutilisentcecatalogue
l dfinirlalistedesmotsvides.
LamiseenplaceduservicedetexteintgralpeuttreralisesoitenmodegraphiquedepuisSQLServerManagementStudio, soit par lintermdiaire de scripts Transact SQL, soit par lintermdiaire de lassistant Indexation de texteintgral.Comptetenudufaitquelacrationdecetypedindexestuneoprationponctuelle,lutilisationdelassistantpeutsavrerfortutile.Cetassistantestaccessibledepuislemenucontextuelassocilatablesurlaquellelindexvatredfini.
CettemiseenplacepeutgalementtreralisetapepartapeparlintermdiairedecommandesTransactSQL.
Miseenplace
- 2 - ENI Editions - All rigths reserved
1.Lecatalogue
Lorsde sa cration initiale lindexde texte intgral vatreun consommateur important auniveaudes lectures etcrituressurledisquedur.Ilestdoncncessairequelindexsoitdfinisurunsystmedefichierperformant.Lindexdetex