1 / 27

Ásó, kapa, SQL Server Üzemeltetési praktikák a mindennapokra

Ásó, kapa, SQL Server Üzemeltetési praktikák a mindennapokra. B itemo Erik Gergely erik@bitemo.hu http://www.rollback.hu DBA Expert Disney Interactive Media Group. Miről lesz szó?. SQL Server – 2000 , 2005 , 2008* Best practices, nem kinyilatkoztatás Főleg üzemeltetői szemszögből

Download Presentation

Ásó, kapa, SQL Server Üzemeltetési praktikák a mindennapokra

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ásó, kapa, SQL ServerÜzemeltetési praktikák a mindennapokra Bitemo Erik Gergelyerik@bitemo.hu http://www.rollback.hu DBA Expert Disney Interactive Media Group

  2. Miről lesz szó? • SQL Server – 2000, 2005, 2008* • Best practices, nem kinyilatkoztatás • Főleg üzemeltetői szemszögből • Tematika: • A legfontosabb lépések • Egy szerver telepítése és konfigurálása • Változáskezelés • Mazsolázás

  3. Első lépés – mentsünk gyorsan SELECT database_name, [type], max(backup_start_date) last_backup FROM backupset GROUP BY database_name, [type] ORDER BY database_name, [type]

  4. Második lépés – mentsünk szépen • Maintenance Plan használatával automatizálhatjuk a backup fájlok törlését is • Ad-hoc mentéshez is érdemes ezt használni • Szalagra / másik gépre (de legalább másik diszkre) mentsünk • Ha diszkre és onnan szalagra mentünk: időzítés! • Ha beállítottunk mindent, próbáljuk végig a folyamatot, és állítsuk vissza mindenképpen a backup fájlt • Rendszeradatbázisokat is mentsük • Minimális dokumentáció: adatbázis-motor verziószáma

  5. Mit és hogyan mentek?

  6. Harmadik lépés - monitorozzunk • Mit? • Futnak-e a service-ek? • Jól van-e az alkalmazásadatbázis? (kapcsolatok, lockok, várakozások, stb.) • Amit hasznosnak találunk • Hogyan? • Célszoftver: felügyeleti rendszer • SQL Server Agent job, SQLCMD, perfcounterek • PowerShell script

  7. Negyedik lépés – monitorozzunk még • Olvassunk mindennap – errorlogot • Nem árt néha rotálni a logot • sp_cycle_errorlog • Emeljük meg a megőrzött logfájlok számát (20-30 is elfér) • Bármilyen error mehet az errorlogba • Deadlock információk • Az SQL Agent is ír logot • SQLAGENT.OUT

  8. Monitorozás alacsony költségvetéssel

  9. Ötödik lépés – teljesítmény • Memória, diszk, processzor, hálózat • Ha egy dologból kérhetek sokat: RAM • Nagy I/O ellen: tömörítsünk* • Triviális, de... vírusirtót tiltsuk el az SQL adatbázisfájloktól, mentési állományoktól • Optimalizálás – egyes lekérdezések helyett érdemesebb átfogóan nézni – DMV-k • Indexek és statisztikák karbantartása • Referenciaadatok gyűjtése (baseline)

  10. Telepítés és vidéke I. • Hardver • 64 bites hardverre 64 bites SQL-t  • Instance-ok: Több SQL egy OS-en • Szeparált jogosultságok • Különböző verziók • Különböző collation • Memóriát osszuk fel az instance-ok között

  11. Telepítés: melyik editiont válasszuk? • Enterprise, ha kellenek a következők: • online index műveletek, online restore, snapshot, adattömörítés*, backup tömörítés*, tükrözött backup*, tábla particionálás, Resource Governor*, transzparens adatbázis-titkosítás*, finomhangolható audit*, több, mint 16 instance egy gépen, hot-add CPU* és RAM, SSIS advanced transformations, nagyteljesítményű adattárház • Nagy teljesítmény és nagy rendelkezésreállás • SQL 2005-től lehet upgrade-elni editiont • Enterprise > Standard > Workgroup > Web* > Express with Advanced Features > Express * SQL 2008-tól

  12. Telepítés!

  13. Kezdeti konfiguráció • Mindenek előtt: patcheljünk! • Hálózati konfiguráció • Szerver és kliens oldalon : SQL Server Configuration Manager + cliconfg • A kettő között: gondoljunk a tűzfalra is • Állítsuk be a model adatbázist • Készítsük el a rendszeradatbázisok mentését végző maintenance plant • Memórialimit, ha többen vannak a szerveren

  14. Egy új szerver

  15. Változik az alkalmazás I. • Vessük össze a scriptet a feketelistánkkal, pl. • Új táblák/oszlopok hozzáadásánál nincs index/foreign key • @@IDENTITY – általában a SCOPE_IDENTITY() jobb • Ha van naplózó trigger a táblán, akkor becsaphat a @@IDENTITY • DROP TABLE/COLUMN/PROCEDURE • Többnyelvű környezetben varchar felhasználói adatokra • SELECT *, masszív joinok a tárolt eljárásokban • (Nem szeretem a sp_ kezdetű felhasználói tárolt eljárásokat) • Nincsenek tárolt eljárások

  16. Változikazalkalmazás II. • (még mindig feketelista) • Nagy táblán add column not null • Egyetlen tranzakcióban update-eli az összes sort, kb. <tábla*2> méretű logot igényelve. • Bármiféle konkurrenciának beláthatatlan következményei lehetnek. • SQL 2000 replikált táblán add/drop column • ALTER TABLE ADD ujoszlop int – nem fog bekerülni a publikációba • sp_repladdcolumn , sp_repldropcolumn a megoldás • SQL 2005-től transzparens a séma módosítása replikációnál

  17. Olvasson Ön is Books Online-t! • Dokumentáció • Áttekintések • Architektúra • Fejlesztői útmutatások • Üzemeltetési leírás • Tutorial-ok • Keresés

  18. Változik az alkalmazás III. • Nagyméretű tranzakcionális replikált tábla végigmódosítása • Még az előző módszerrel is komoly terhelést ró a résztvevőkre (distribution adatbázisba <sorok száma> rekord bekerül, ami lassítja az összes replikációt pár napig) • Készítsünk módosító tárolt eljárást, és replikáljuk annak a végrehajtását

  19. Változik az alkalmazás IV. • Az éles adatbázis másolatán a legjobb tesztelni (adatminőség, méret, egyedi problémák) – teszteljük a telepítést is • Éles telepítésnél a database snapshot igen hasznos lehet • Visszaállás kontra adatvesztés: még több snapshot • Készítsünk snapshotot visszaállás előtt is

  20. Változik az infrastruktúra • Rendszeradatbázisok mentése • SELECT @@VERSION – tudjuk, hogy honnan indulunk • Olvassuk el a telepítési leírást • Hogyan kell feltenni a patchet • Hogyan lehet levenni a patchet

  21. Mazsolák I. • A NOLOCK használata • Alkalmazásból inkább NE snapshot • Nagyobb módosító scriptek futásának monitorozására tökéletes • Mikor shrinkeljünk éles adatbázist? • Rendszeresen soha • AUTO_SHRINK ellen DMF • Élet SQL clusterrel • Mindig a cluster menedzsment eszközével állítsuk le a service-eket, ha szükséges

  22. Mazsolák II. • Jobok, mentések ütemezésénél tervezhetünk karbantartási időt • Pl. Mindennap 02:00 és 04:30 között NEM fut semmi – tervezett leállás után nem kell kézzel futtatni a hiányzó feladatokat • SSMS 1x1 • Multiserver query – ugyanaz a lekérdezés több szerveren fut • SQLCMD mód – ugyanazzal a scripttel több szerveren ( átkapcsol a script futás közben) • Nézzük meg a beállítható opciókat is

  23. Mazsolák III. • Tranzakció 1x1 • Kevés adatot mozgató, de kritikus változtatásoknál – UPDATE/DELETE • Nézzük vissza a módosítást, mielőtt COMMIT • Minél rövidebb ideig tartson • Ne tegyük bele a COMMIT-ot (ne futhasson le véletlenül) • Figyelem! Tranzakciók egymásba ágyazhatóak • BEGIN TRAN • BEGIN TRAN • UPDATE Cim SET Orszag = NULL • COMMIT • SELECT @@TRANCOUNT – itt még egy • COMMIT – ezután már nulla lesz

  24. Tanuljunk az SQL Servertől! • Nézzük meg a rendszertárolteljárásokdefinícióit • Profilerezzük a Management Studiót

  25. Mazsolák

  26. Útravalók • Books Online (Shift+F1) • Internet is van a világon • Technet portál: http://www.microsoft.hu/technet • Books Online online • SQL 2000 index defragmentation cikk (angol): http://www.microsoft.com/technet/prodtechnol/sql/2000/maintain/ss2kidbp.mspx • PowerShell (további linkekkel): http://www.microsoft.com/hun/techNet/?article=68a16f06-863f-400b-9963-86ad749ef969 • Blogok SQL-ről és hasonlókról magyarul: http://soci.hu, http://www.rollback.hu • Kedvenc SQL blogom (angol): http://www.sqlskills.com/blogs/paul/ • Codeplex – open source a nagyon kísérletezőknek (angol): http://www.codeplex.hu • Inside SQL könyvek (igazi mélyvíz)

More Related