Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

TechNet Szeminárium előadások 2002 tavasz 2002. 02. 20. SQL Server adatbázisok adminisztrációja 2002. 03. 06. Windows alapú webes alkalmazások 2002. 03.

Hasonló előadás


Az előadások a következő témára: "TechNet Szeminárium előadások 2002 tavasz 2002. 02. 20. SQL Server adatbázisok adminisztrációja 2002. 03. 06. Windows alapú webes alkalmazások 2002. 03."— Előadás másolata:

1 TechNet Szeminárium előadások 2002 tavasz SQL Server adatbázisok adminisztrációja Windows alapú webes alkalmazások Biztonságos Windows Vállalati szintű projektmenedzsment Üzemeltetői konferencia A Windows.NET Server technikai újdonságai

2 SQL Server 2000 adminisztráció Kószó Károly rendszermérnök Microsoft Magyarország

3 Napirend  SQL Server 2000 Rendelkezésre állás  A magas rendelkezésre állás áttekintése  Katasztrófa megelőzés  Katasztrófa utáni helyreállítás  A magas rendelkezésre állás fenntartása  SQL Server 2000 teljesítmény hangolás  Méretezés  Zárolás  A Query Processor  A lekérdezések hangolása  Az SQL Server konfigurációs paraméterei  Teljesítmény adatok gyűjtése és elemzése

4 SQL Server 2000 rendelkezésre állás Kószó Károly rendszermérnök Microsoft Magyarország

5 Napirend  A magas rendelkezésre állás áttekintése  Katasztrófa megelőzés  Hibatűrő diszk megoldások  Fürtözött SQL Server  Katasztrófa utáni helyreállítás  Napló alapú szinkronizálás (log shipping)  Replikáció  Mentés és helyreállítás (Backup/Restore)  A magas rendelkezésre állás fenntartása

6 A rendelkezésre állás meghatározása  A = ((F) - (R))/(F)  F = a meghibásodások közötti (átlagos) idő  R = a javítás (átlagos) ideje  A javításra fordítható idő egy év alatt, adott rendelkezésre állás esetén  99%87 óra  99.98,7 óra  perc  perc

7 Célok és korlátok  Hány kilences rendelkezésre állást szeretnénk?  Mik a korlátozó tényezők, hibaforrások?  Számítógép hardware  Kommunikáció, adatkapcsolat  Környezet (telephely, tápellátás, gépterem,...)  Szolgáltatások (szerviz, termék támogatás)  Software (Windows, SQL Server, Service Pack, egyéb sw)  Folyamat (üzemeltetési előírások, katasztrófa terv, …)  Alkalmazás hibák, felhasználói tévedések  Alkalmazottak (képzett rendszergazdák, programozók, …)  Veszteség – költség összevetés  Mi az adott hiba felmerülésének valószínűsége

8 SQL Server szolgáltatások  Fürtözés (failover clustering)  Napló alapú szinkronizálás (log shipping)  Replikáció  Mentés, helyreállítás (backup, restore)

9 A tartalék rendszerek típusai  Meleg (hot) tartalék  Az adatok tranzakcionálisan aktuális másolata  Automatikus hiba észlelés  Automatikus átállás  Langyos (warm)  Az elsődleges adatok konzisztens, esetleg nem teljesen aktuális másolata  Fél-automatikus hiba észlelés és átállás  Hideg (cold)  Szükség esetén felhasználható tartalék hardware, telepítő készletek

10 A tartalék megoldások jellemzői A tartalék típusa A hiba észlelés módja Automatikus átkapcsolás Védelem diszk hibák ellen Meta adatok védelme Tranzakcionális konzisztencia Tranzakcionálisan aktuális Hatása a teljesítményre Az átállás ideje Telephelyek távolsága Bonyolultság Számítógépek száma Egyéb hasznosítási lehetőség (pl. jelentés készítés) Az adatok újra partícionálhatósága

11 Öt kilences példa  Elvárt rendelkezésre állás: %  5.26 perc kiesés lehet évente  Évente egy (!) szerviz csomagot kell telepíteni  20 perc kiesés  Évente egy software frissítés várható  1 óra kiesés  Lehetséges megoldás:  Failover Clustering  Tartalék adatbázis másolat (Log Shipping, tükrözés, stb.)  A cluster karbantartás idejére az alkalmazások a tartalék adatbázis másolatot használják

12 Hibatűrő diszk megoldások  Redundant Array of Independent Disks (RAID)  A RAID előnyei  Teljesítmény, tároló kapacitás, megbízhatóság  RAID szintek  0, 1, 5, 0+1, 1+0 (10)  Hardware és software RAID

13 RAID 0  Több meghajtó  Az írások egyenletesen elosztódnak a meghajtók között  Nem hibatűrő!  Kiváló teljesítmény data DISK3 data DISK2 data DISK1 Diszk csíkozás (striping)

14 RAID 1  A második (harmadik) meghajtó az első pontos másolata  N-1 meghajtó elvesztését elviseli  Kiváló olvasási teljesítmény  Jó írási sebesség  A tranzakció napló számára jó DISK3 data copy ´ DISK2 data DISK1 data copy ´´ Diszk tükrözés

15 RAID 5  Min. 3 meghajtó  Egy meghajtó elvesztését elviseli  Jó olvasási, rossz írási sebesség, különösen soros írás esetén  A tranzakció naplót NE tegyük RAID 5-re! parity data parity data DISK3 data parity data parity data DISK2 data parity data parity DISK1 Diszk csíkozás paritással

16 RAID 0+1  Min. 4 meghajtó  Csíkkészletenként egy meghajtó elvesztését tűri (A RAID 5-höz hasonló)  Kiváló teljesítmény; jó hibatűrés  Adat file-ok számára ajánlott DISK6 DISK5 DISK4 data DISK3 data DISK2 data DISK1 Csíkozott diszkek tükrözése

17 RAID 1+0 (RAID 10)  Min. 4 meghajtó  Minden tükör pár egyik felének elvesztését elviseli – a RAID 1-hez hasonlóan  Jó teljesítmény - kisebb mint a esetén; kiváló hibatűrés  Adat file-ok számára ajánlott Tükrözött diszkek csíkozása parity data parity data DISK6 data parity data parity data DISK4 data parity data parity DISK2 data DISK5 data DISK3 data DISK1

18 Példa: RAID az SQL Serverrel File csoport FileE FileF FileG FileH FileA FileB FileC FileD Tranzakció napló Op. rendszer Diszk vezérlő Diszk vezérlő Diszk vezérlő Diszk vezérlő Diszk vezérlő Diszk vezérlő

19 Fürtözött rendszerek  A fürtözés (clustering) különböző formái  Windows Cluster Infrastruktúra szervizek, szolgáltatások számára  SQL Server Failover Cluster Magas rendelkezésre állást biztosító SQL Server szolgáltatás a Windows Cluster alapján  Federated SQL Server Cluster Független SQL Serverek „szövetsége”; partícionált adatok, nagy OLTP teljesítmény  Network Load Balancing cluster Magas rendelkezésre állás és skálázhatóság TCP/IP alapú szolgáltatások számára

20 SQL Server 2000 Failover Cluster SQL Server 2000 Virtual Server MSCS Nyilvános hálózat Osztott diszk tömb Node A Node B Heartbeat

21 Az SQL Server 2000 Failover Cluster működése  Az operációs rendszer ellenőrzi a csomópontok és virtuális kiszolgálók létezését  Heartbeat  Az SQL Server ellenőrzése:  Looks-alive – gyors ellenőrzés, 5 másodpercenként  IsAlive - SELECT  Ha az IsAlive sikertelen, 5 újabb próbálkozás  Failover (áttérés) másik csomópontra  A Windows Clustering megkísérli az SQL Server újraindítását az eredeti helyén; sikertelen újraindítás esetén egy másik csomóponton próbálkozik.  Az SQL Server Service elindul  Az SQL Server helyreállítja az adatbázisokat (recovery)  Az alkalmazások újra rákapcsolódnak az SQL Serverre

22 SQL Server 2000 újdonságok  Az SQL Server Setup telepíti (és szünteti meg) a virtuális SQL kiszolgálókat  A szerviz csomagok a virtuális szerverre telepíthetők  Több (max. 16) példány  Failover és Failback bármely csomópontra  Az SQL Server 2000 EE + Windows 2000 Datacenter Server 4 csomópontos fürtöket támogat  Az SQL Server eszközök minden csomópontra feltelepülnek  A Setup program aktualizálja a Cluster konfigurációt  Az SQL Server Service Manager és az SQL Server Enterprise Manager használható az SQL Server szerviz indítására, leállítására  A full-text keresés is fürtözhető

23 Az SQL Server fürtözés jellemzői A tartalék típusaMeleg (hot) A hiba észlelés módjaAutomatikus Automatikus átkapcsolásIgen Védelem diszk hibák ellenNem; közös diszk Meta adatok védelmeIgen Tranzakcionális konzisztenciaIgen Tranzakcionálisan aktuálisIgen Hatása a teljesítményreNincs / minimális Az átállás idejeNéhány perc, az újraindulás idejétől függ Telephelyek távolságaKözeli, max. kb. 150 km BonyolultságNem egyszerű Számítógépek száma2 - 4 Egyéb hasznosítási lehetőség (pl. jelentés készítés) Nem Az adatok újra partícionálhatóságaNem

24 Napló alapú szinkronizálás (log shipping)  Az SQL Server Enterprise Edition szolgáltatása  A mentés egy formája  Célja: a katasztrófa utáni helyreállítás meggyorsítása  Langyos (warm) tartalék  Másodlagos megoldás, a Failover Clustering mellett

25 A Log Shipping működése Felügyelő kiszolgáló SQL Server Agent ütemezett Job-ok Elsődleges kiszolgáló Másodlagos kiszolgáló(k) 1. Log BACKUP 3. Log RESTORE WITH STANDBY 2. Log Copy (“Pull”) Log Backup

26 Telepítés, konfigurálás  A Database Maintenance varázslóval  Egyszerre egy adatbázisra  A varázslóval konfigurálható  A log mentések gyakorisága  A log-ok átküldésének gyakorisága  Az log átmásolása és a betöltés közötti idő  Milyen régi legyen a log, mielőtt betöltjük  A varázsló létrehozza  a mentések ütemezését  az adatbázisokat a fogadó kiszolgálókon

27 Clustering vagy Log Shipping? JellemzőFailover ClusteringLog Shipping A tartalék típusaMeleg (hot)Langyos (warm) A hiba észlelés módjaAutomatikusKézi, de NLB-vel … Automatikus átkapcsolásIgenKézi, de NLB-vel … Védelem diszk hibák ellenNem; közös diszkIgen, de … Meta adatok védelmeIgenCsak adatbázison belül Tranzakcionális konzisztenciaIgen Tranzakcionálisan aktuálisIgenNem, de … Hatása a teljesítményreNincs / minimálisFile másolás Az átállás idejeNéhány perc, az újraindulás idejétől függ Másodpercek (a helyreállítás mértékétől függően több lehet) Telephelyek távolságaKözeli, max. kb. 150 kmTetszőleges BonyolultságNem egyszerűEgyszerű Számítógépek száma2 - 4Korlátlan (32 NLB-vel) Egyéb hasznosítási lehetőség (pl. jelentés készítés) Nem Az adatok újra partícionálhatósága Nem

28 A replikáció Kiadó (publisher)Elosztó (distributor) Előfizető (subscriber) Publikáció Replikációs formák: pillanatfelvétel, tranzakcionális, összefésülő

29 Tartalék képzés replikációval  Ha a Failover Clustering nem megvalósítható, vagy a fürtözés mellett  Ha a Log Shipping nem megfelelő, például mert a tranzakciókat azonnal továbbítani akarjuk  A meta adatokat nem másolja  A hiba észlelés és az átállás nem automatikus  A tartalék kiszolgáló nem azonos az eredetivel  Az adatok aktualitása nem garantált  A merge replikáció tranzakcionálisan nem konzisztens  Az adatbázis újra partícionálható a fogadó gépen  A tartalék adatbázis hasznosítható

30 Clustering, Log Shipping, replikáció JellemzőFailover ClusteringLog ShippingTransactional Replication A tartalék típusaMeleg (hot)Langyos (warm) A hiba észlelés módja AutomatikusKézi, de NLB-vel … Automatikus átkapcsolás IgenKézi, de NLB-vel … Védelem diszk hibák ellen Nem; közös diszkIgen, de … Meta adatok védelmeIgenCsak adatbázison belül Nem Tranzakcionális konzisztencia Igen Igen (kivéve: merge) Tranzakcionálisan aktuális IgenNem, de …Nem, de közel

31 Clustering, Log Shipping, replikáció JellemzőFailover ClusteringLog ShippingTransactional Replication Hatása a teljesítményre Nincs / minimálisFile másolásLog reader Az átállás idejeNéhány perc, az újraindulás idejétől függ Másodpercek (a helyreállítás mértékétől függően több lehet) Telephelyek távolsága Közeli, max. kb. 150 km Tetszőleges BonyolultságNem egyszerűEgyszerűNem egyszerű Számítógépek száma2 - 4Korlátlan (32 NLB-vel) Egyéb hasznosítási lehetőség (pl. jelentés készítés) Nem Igen Az adatok újra partícionálhatósága Nem Igen

32 Mentési stratégiák Mennyire fontosak az adatok? Mi veszhet el?  File copy (?) – jobb, mint a semmi  SQL Server leállítás, vagy detach database után  Teljes adatbázis mentés  DB Recovery Model = Simple  Adatbázis mentés (ritkábban) és gyakori tranzakció napló mentések  DB Recovery Model = Full, vagy BULK_LOGGED  Differenciális mentés, a gyorsabb helyreállítás érdekében  File csoport, vagy file mentés

33 Adatbázis és tranzakció napló  Az adatbázis mentés NEM üríti a tranzakció naplót!  Helyreállítás  Az utolsó adatbázis mentés (2) és tranzakció napló mentés betöltése  Ha az utolsó adatbázis mentés nem olvashatatlan, használhatjuk a régebbi (1) mentést, csak több tranzakció napló mentést kell rátölteni Backup db 1 Backup Log Backup db 2 Backup Log Backup Log with NO_TRUNCATE Hiba

34 Differenciális mentés  Helyreállítás  Az utolsó adatbázis mentés (2) + a differenciális mentés + az utolsó tranzakció napló mentések betöltése  A differenciális mentés gyorsíthatja a helyreállítást  A tranzakció napló mentésekre szükség van a helyreállításhoz! Backup db 1 Backup Log Backup db 2 Differential Backup Log Backup Log with NO_TRUNCATE Hiba

35 A magas rendelkezésre állás fenntartása  Számítóközpont gyakorlat  biztonság, megfelelő helyiség, …  A változások felügyelete (Change Control)  Megfelelő személyzet biztosítása  A „katasztrófa” utáni hereállítás tervezése  Működési napló vezetése

36 A működés folyamatos ellenőrzése  System Monitor/Performance Monitor  Riasztások (alert-ek)  SQL Profiler  Az operációs rendszer és az SQL Server naplók rendszeres ellenőrzése  Biztonsági auditálás  Betörési kísérletek, sikertelen bejelentkezések naplózása

37 Mentés, helyreállítás  Rendszeres mentés  Biztonsági másolatok, a hordozók cseréje, archiválás  A mentések visszatölthetőségének ellenőrzése  Dokumentálás

38 A változások felügyelete  Külön rendszer a fejlesztők számára, és  legalább egy teszt gép a módosított alkalmazás tesztelésére  Tervezés  Bevezetési terv  Visszagörgetési terv  A változások követése

39 Katasztrófa terv  Pontosan dokumentált lépések  Az értesítendő személyek adatai  Eszkalációs lépések  Teszteljük a tervet!

40 Működési napló  Központi dokumentum tár (intranet, file-share)  A katasztrófa utáni helyreállítási terv  Mentési információk  Személyi információ  A telepítő készletek tárolási helye, licencek, kulcsok, terméktámogatók telefonszámai  Rendszer konfiguráció (Op.rsz., SQL Server, SP-k, Registry beállítások, diszk konfiguráció, drive betűk)  Adatbázis sémák, job-ok, spec. adatbázis opciók  …

41 Összefoglalás, mit láttunk?  A magas rendelkezésre állást a hardware, a software, a folyamatok és az emberek megfelelő „együttműködése” biztosítja  Katasztrófa megelőzés  Hibatűrő diszk megoldások  Fürtözött SQL Server  Katasztrófa utáni helyreállítás  Napló alapú szinkronizálás (log shipping)  Replikáció  Mentés és helyreállítás (Backup/Restore)  A magas rendelkezésre állás fenntartása

42 Előadások a Weben  Microsoft SQL Server 2000 Log Shipping  ts/wc021501/wcblurb asp  Introduction to Microsoft SQL Server 2000 Clustering  ts/wc051001/wcblurb asp  New Features in Microsoft SQL Server 2000 Transactional Replication  ts/wc111601/wcblurb asp

43 Néhány perc szünet…

44 SQL Server 2000 teljesítmény hangolás Kószó Károly rendszermérnök Microsoft Magyarország

45 Napirend  SQL Server 2000 teljesítmény hangolás  Méretezés  Zárolás  A lekérdezés feldolgozó  A lekérdezések hangolása  Az SQL Server konfigurációs paraméterei  Teljesítmény adatok gyűjtése és elemzése

46 Méretezési előírások  Legjobb az alkalmazás készítőjétől!  Hardware gyártók eszközei:  Compaq ProLiant Sizer for Microsoft SQL Server 2000 Transaction Application  Render/1,1027, ,00.htm  Compaq ProLiant Sizer for SQL Server 2000 Data Marts  Render/1,1027, ,00.htm  Új alkalmazás esetén: tesztelés

47 Napirend  SQL Server 2000 teljesítmény hangolás  Méretezés  Zárolás  A lekérdezés feldolgozó  A lekérdezések hangolása  Az SQL Server konfigurációs paraméterei  Teljesítmény adatok gyűjtése és elemzése

48 A Lock Manager feladatai  A zárak megszerzése és felszabadítása  A zárolási módok közötti kompatibilitás fenntartása  Négy ANSI / ISO izolációs szint biztosítása  Serializable (3)  Repeatable Read (2)  Read Committed (1) - default  Read Uncommitted (0)

49 Adat zárolási szintek Tábla Lap Sor

50 A megosztott (shared) zár  Automatikusan megszerezzük az adat olvasásakor  Tábla, lap, kulcs vagy sor szintű  Több adatbázis folyamat szerezhet megosztott zárat ugyanarra az adatra  Read Committed izoláció esetén az adat feldolgozása után a megosztott zár felszabadul; magasabb izolációs szinteken a tranzakció végéig megmarad

51 A kizárólagos (exclusive) zár  Automatikusan megszerezzük az adat módosításakor  Egyidejűleg csak egy folyamat birtokolhatja  A tranzakció végéig megőrizzük  A többi folyamat minden zárolási kérése várakozni kényszerül  Lekérdezési „tippek” (locking hints) használhatók

52 A módosítás (update) zár  A megosztott és a kizárólagos keveréke  Az adat módosítás előtti keresés idején megosztott zárként viselkedik  A tényleges módosításkor kizárólagos zárra vált  Egy adaton több megosztott de csak egyetlen módosítás zár lehet

53 A szándék (intent) zár  Nem igazán zár, inkább egy potenciális zárolási szándékot jelez  Például, ha egy folyamat zárol egy sort, akkor a sort tartalmazó lapon és táblán egy-egy „szándék” zár keletkezik  Megakadályozza, hogy a zárolt sort tartalmazó lapot, vagy táblát egy másik folyamat kizárólagosan lefoglalja

54 Speciális zár típusok  Schema Stability  egy lekérdezés kiértékelése idején kizárja a schema modification zárakat  Scheme Modification  tábla szerkezet módosításakor használjuk  Bulk update  BULK INSERT és BCP esetén

55 Információ a zárakról  sp_lock tárolt eljárás  sp_lock2 tárolt eljárás  Q  Az sp_lock eredménye SpidDbidObjidIndIdTypeResourceModeStatus 54pubs197232TABISGRANT 58pubs197551PAG1:88IXGRANT 52Pubs00DBSGRANT

56 A zárolható erőforrások Röv.ErőforrásBelső kód Leírás / példa DBDatabase2 TABTable5Table id EXTExtent8File/ page 1:96 PAGPage6File/ page 1:104 KEYKey7Hash ac0001a10a00 ACRow9File/page/slot 1:151:4 APPApplication*10Hash MYpr8dea * sp_getapplock, sp_releaseapplock

57 A zárolási mód RövidítésMódBelső kód SShared4 XExclusive6 UUpdate5 ISIntent shared7 IUIntent update8 IXIntent exclusive9 SIXShared with intent exclusive11 Sch-SSchema stability2 Sch-MSchema modification3 BUBulk update13

58 A zárak memória igénye  Egy zár memória igénye  Minden zár – 64 byte  Minden folyamat, amely birtokolja a zárat, vagy várakozik rá – 32 byte  Ha több, egymás utáni sort módosítunk, a lap szintű zárolás előnyösebb

59 demó Zárolás demó  Query Analyzer  A zárak megjelenítése

60 Napirend  SQL Server 2000 teljesítmény hangolás  Méretezés  Zárolás  A lekérdezés feldolgozó  A lekérdezések hangolása  Az SQL Server konfigurációs paraméterei  Teljesítmény adatok gyűjtése és elemzése

61 A fordítás Elemzés (parsing) Végrehajtási fa készítés Normalizálás SQL DML utasítás? Végrehajtási terv (optimalizálás nélkül) Végrehajtási terv Lekérdezési gráf Optimalizálás Igen Nem

62 Az optimalizálás Egyszerűsítés, transzformáció Statisztika beolvasás Több fázisú, költség alapú optimalizálás Teljes optimalizálás, soros végrehajtáshoz Terv Teljes optimalizálás, párhuzamos végrehajtáshoz Van elég olcsó terv? 1 1 Elég olcsó? Költség > párhuzamosítási küszöb? Nem Igen Triviális terv optimalizálás

63 Az optimalizáló működése  A lekérdezés (táblák, keresési feltételek) elemzése  Index választás a kereséshez  Join választás  Nested loop nagy méretű lekérdezések, megfelelő indexekkel támogatva  Hash nincs index, kis táblák, vagy sok memória  Merge rendezett adatfolyamok

64  Query Analyzer  A lekérdezési terv megjelenítése grafikus és szöveges formában  Lekérdezés végrehajtási statisztikák demó Lekérdezési terv demó

65 Napirend  SQL Server 2000 teljesítmény hangolás  Méretezés  Zárolás  A lekérdezés feldolgozó  A lekérdezések hangolása  Az SQL Server konfigurációs paraméterei  Teljesítmény adatok gyűjtése és elemzése

66 A lekérdezés hangolás eszközei  Normalizált logikai adatbázis terv, és  Rövid sorok és rövid kulcsmezők (jó fizikai terv)  Hasznosnak tűnő indexek létrehozása  PK (automatikus), FK  Tesztelés, a valóshoz közeli terheléssel  Index hangolás a fontos/lassú lekérdezésekre  Tárolt eljárások  kerüljük az ad-hoc lekérdezéseket  Legutolsó megoldás, ha nincs más:  Lekérdezés tippek  De-normalizálás

67 A lekérdezés vizsgálata  set statistics io on  Logical Reads  Physical Reads  Read Ahead Reads  Scan Count  set statistics time on  Grafikus lekérdezési terv  set showplan_text / showplan_all on  set statistics profile on

68 Lekérdezési tippek  Ha másként nem tudjuk az optimalizálót „helyes” döntésre bírni  Tippek:  MaxDop = x  Join (loop, hash, merge, remote)  Index (index(), fastfirstrow)  Lock (holdlock, nolock, readpast, rowlock, paglock, tablock, tablockx, xlock, updlock)  Processing Hints (set forceplan on)

69 A blokkolás elkerülése  Rövid tranzakciók!  Tranzakció közben ne várakozzunk!  Az eredményhalmazokat mielőbb vegyük át az SQL Servertől  Böngésző jellegű alkalmazásoknál használjunk optimista „zárolást”

70 A deadlock elkerülése  Ciklikus deadlock:  Az erőforrásokat mindig azonos sorrendben foglaljuk le  Az alkalmazás számára még éppen megfelelő legalacsonyabb izolációs szintet válasszuk  Konverziós deadlock:  Zárolási tippek  Adott erőforrás esetén sorba állíthatjuk a tranzakciókat

71 A lekérdezés hangolás folyamata  Információ gyűjtés az alkalmazás viselkedéséről  SQL Profiler  Az információ elemzése  Query Analyzer  Index Tuning Wizard  Módosítás  Index Tuning Wizard  Enterprise Manager  Teszt, teszt, teszt

72 Tesztelési segédeszközök  SQL Server 2000 Resource Kit  Database Generator (DBGen) Teszt adat generátor  Database Hammer Testre szabható teljesítmény teszt  MS Web Application Stress Tool   Load Simulator  Profiler  A felvett terhelés visszajátszása  osql.exe

73  Terhelés teszt demó Load Simulator demó

74  Terhelés teszt demó OSQL.EXE demó

75  Index hangolás demó Index Tuning Wizard demó

76 Napirend  SQL Server 2000 teljesítmény hangolás  Méretezés  Zárolás  A lekérdezés feldolgozó  A lekérdezések hangolása  Az SQL Server konfigurációs paraméterei  Teljesítmény adatok gyűjtése és elemzése

77 Rendszer konfiguráció  „Maximize Data Throughput for Network Applications” beállítása a „File and Print Services”-nél (a setup beállítja)  Lehetőleg ne tegyünk SQL Server adatbázisokat a PAGEFILE.sys meghajtójára

78 SQL Server konfiguráció (1) Enterprise Manager  SQL Server Properties  Autostart  Startup parameters

79 SQL Server konfiguráció (2) Enterprise Manager  Min Server Memory, Max Server Memory  Fixed Memory  Set Working Set Size  Minimum Query Memory  create index, hash join, merge join

80 SQL Server konfiguráció (3) Enterprise Manager  Processor affinity  Max. worker threads  Boost SQL Server priority  Use NT fibers  Ha minden processzor 95% fölött dolgozik, kis teljesítmény jav.  Parallelism  Kevés processzor, sok felhasználó esetén felesleges

81 SQL Server konfiguráció (4) Enterprise Manager  Recovery Interval

82 SQL Server konfiguráció (5) SQL sp_configure reconfigure reconfigure with override

83 Adatbázis opciók Enterprise Manager, sp_dboption és alter database

84 Napirend  SQL Server 2000 teljesítmény hangolás  Méretezés  Zárolás  A lekérdezés feldolgozó  A lekérdezések hangolása  Az SQL Server konfigurációs paraméterei  Teljesítmény adatok gyűjtése és elemzése

85 A teljesítmény problémák okai  Logikai adatbázis terv (táblaszerkezet)  Fizikai adatbázis (indexek, statisztikák hiánya, rosszul megírt SQL)  Alkalmazás  Hardware (diszk, memória, processzor, hálózat)  Operációs rendszer és SQL Server hibák

86 A módszer  Kezdetben gyűjtsünk sok információt, majd fokozatosan szűkítsük a keresést!  Kérdések a felhasználók, a menedzserek és a fejlesztők felé:  Mikor legkritikusabb a teljesítmény?  Mihez képest lassú?  Iteratív folyamat  Mindig van szűk keresztmetszet  Ellenőrizzük a feltételezett megoldást!  Előzzük meg a problémákat!

87 Az adatgyűjtés eszközei  Sqldiag.exe (output: 1-4 MB)  Blocker script ( MB/óra)  Profiler ( MB/óra)  System monitor (20 MB/óra)  System és Application event log-ok (1 MB)

88 Sqldiag.exe  Parancssori eszköz:  \Microsoft SQL Server\MSSQL\Binn\sqldiag  Az eredmény az sqldiag.txt file-ba kerül  \Microsoft SQL Server\MSSQL\LOG\SQLdiag.txt  Új futásnál felülíródik  Paraméterek: sqldiag.exe /?  [-U login] [-I instance name] [-P password] [-E] [-O output filename] [-X(exclude error logs)] [-M(perform dbcc stackdump)] [-C(retrieve cluster information)]  Pillanatfelvétel az SQL Serverről

89 Az sqldiag.txt tartalma  Az aktuális és az előző 6 errorlog (verzió, SP!)  Registry információ  Library verzió információ  Az SQL Server konfigurációja (sp_configure)  Aktuális adatbázis folyamatok (sp_who)  Lock-ok (sp_lock)  Adatbázisok (sp_helpdb)  Termék információk (xp_msver)  Kiterjesztett tárolt eljárások (sp_helpextendedproc)  A sysprocesses tábla  Input puffer információ (DBCC INPUTBUFFER)  Deadlock információ  Számítógép információ

90 demó SqlDiag demó

91 Blocker Script  Blocker script  Q271509, “INF: How to Monitor SQL Server 2000 Blocking”  Q251004, “INF: How to Monitor SQL Server 7.0 Blocking”  Q251175, “INF: How to Monitor SQL Server 6.5 Blocking”

92 A Blocker Script használata  A tárolt eljárás létrehozása  Futtató script létrehozása, pl.: chk.sql DBCC TRACEON (3604) go WHILE 1=1 BEGIN EXEC sp_blocker_pss80 -- Gyors mód EXEC sp_blocker_pss dbcc inputbuffer és dbcc pss nélkül WAITFOR DELAY '00:00:15' END Go  osql –E –Sserver –ichk.sql -ochk.out –w2000  Leállítás: CTRL+C

93 A Blocker Script eredménye (1)  Start time  Sysprocesses  SPID, Ecid, Status, Open_tran, Lastwaittype, Waittype (Q244455),Waittime,Waitresource, Cmd, Cpu, Physical_io, Memusage, Dbid, Last_batch, Login_time, Loginame, Uid, Hostname, Program_name, Nt_domain, Nt_username, Net_address, Net_library

94 A Blocker Script eredménye (2)  Spid a zárolási lánc elején  Syslockinfo (sp_lock)  SPID, Ecid, Dbid, Objid, Indid (0=lap,1=clustered index, 255=text/image lánc), Type, Resource, Mode, Status  DBCC INPUTBUFFER (nem 0 waittype-ra)  DBCC PSS (a blokkolási lánc elejére)  A zárolás általában normális jelenség, a hosszú blokkolás nem  A trendek érdekesek

95 demó Blocker Script demó

96 A Profiler  Az SQL Server események gyűjtésére és vizsgálatára szolgál  Nagyon sok adatot gyűjthetünk, célszerű a következő cikk által javasoltakat használni  Q224587, “INF: Troubleshooting Application Performance with SQL Server”

97  Profiler trace létrehozása  Kapcsolódás az SQL Serverhez  Általános beállítások  Események  Adatok  Szűrők demó Profiler demó

98 A Profiler eredménye  Áttekintés az eseményekről és előfordulásuk gyakoriságáról  Táblába menthető  Elemzés:  Hosszú lekérdezések keresése (> 2000 msec)  „attention” és „exception” események  „hash”, „sort”, „warning”  „recompile” és „auto update statistics”  „sp_cursoropen” és „CursorImplicitConversion”  „deadlock” és „lock timeout”  Hiányzó oszlop statisztikák

99 A System Monitor  Log file-ba gyűjtjük az adatokat, majd ezeket a System monitorban vizsgáljuk  Fontos objektumok:  Memory, processor, process, system, object, thread, page file, physical disk, logical disk, minden (?) SQL Server objektum  Elemzés:  Memória, diszk I/O, processzor, hálózati I/O  A „normálishoz” viszonyítva túl magas, vagy alacsony értékek keresése  Összevetés a más eszközökkel gyűjtött adatokkal

100 demó System Monitor demó Az SQL Server teljesítmény számlálók közvetlenül is elérhetők: select * from master.dbo.sysperfinfo

101 Az eszközök használata (1)  MSDN: “Index Tuning Wizard for Microsoft SQL Server 2000”  MSDN: “Microsoft SQL Server 7.0 Performance Tuning Guide”  Q224587, “INF: Troubleshooting Application Performance with SQL Server”  Q271509, “INF: How to Monitor SQL Server 2000 Blocking”  Q251004, “INF: How to Monitor SQL Server 7.0 Blocking”

102 Az eszközök használata (2)  Q224453, “INF: Understanding and Resolving SQL Server 7.0 or 2000 Blocking Problem”  Q243589, “INF: Troubleshooting Slow-Running Queries on SQL Server 7.0 or Later”  Q243588, “INF: Troubleshooting Performance of Ad-Hoc Queries”  Q243586, “INF: Troubleshooting Stored Procedure Recompilation”  Q244455, “INF: Definition of Sysprocesses Waittype and Lastwaittype Fields for SQL Server 7.0”

103 Előadások a Weben  How to Collect and Analyze Performance Data in Microsoft SQL Server  ts/wc082401/wcblurb asp  Microsoft SQL Server: Rapid Blocker Script Analysis  ts/wc011502/wcblurb asp  Support WebCasts (Upcoming, Past) 

104 Összefoglalás, mit láttunk?  A fejlesztő és az adatbázis adminisztrátor különböző eszközökkel javíthatja az alkalmazások teljesítményét  Helyes adatbázis és alkalmazás tervezés  Lekérdezés hangolás  Rendszer konfiguráció  A teljesítmény rendszeres vizsgálata

105 wheredoyouwanttogotoday?

106 Probléma: „lassú” lekérdezés  Blokkolás?  Blocker script (sysprocesses, sp_who)  Profiler trace  Ha valóban lassú a lekérdezés:  Query Analyzer, “set statistics time/io/profile on”  Index Tuning Wizard

107 Probléma: deadlock  Profiler  Locks:Deadlock and Locks:Deadlock Chain  SQL Server indítási paraméterek  -T1204, -T3605  Az alkalmazás módosítása:  Hibakezelés, a tranzakció újraindítása  Index, vagy egyéb tipp az optimalizáló számára

108 Probléma: sok tárolt eljárás újrafordítás (recompile)  Okok:  WITH RECOMPILE záradék  sp_recompile tárolt eljárás egy hivatkozott táblára  A tárolt eljárás lekérdezési terve „kiöregszik” a gyorsítótárból  Nagy tömegű adat módosult egy hivatkozott táblában  Átlapolt DDL és DML (munkatáblák)  „set” opciók az eljárásban  Nem minősített objektum nevek


Letölteni ppt "TechNet Szeminárium előadások 2002 tavasz 2002. 02. 20. SQL Server adatbázisok adminisztrációja 2002. 03. 06. Windows alapú webes alkalmazások 2002. 03."

Hasonló előadás


Google Hirdetések