200 likes | 300 Views
Tomaž Šmid, Aleš Moškon. Visoka razpoložljivost podatkovnih zbirk. Razpoložljivost Kaj razpoložljivost pomeni Vam?. Ali lahko uporabniki naredijo kar morajo narediti ko morajo (hočejo) narediti. Kaj gre narobe ? Strežnik (HW, OS, ...) ne deluje Baza ni na voljo Podatki niso na voljo
E N D
Tomaž Šmid, Aleš Moškon Visoka razpoložljivost podatkovnih zbirk
RazpoložljivostKaj razpoložljivost pomeni Vam? Ali lahko uporabniki naredijo kar morajo narediti ko morajo (hočejo) narediti • Kaj gre narobe? • Strežnik (HW, OS, ...) ne deluje • Baza ni na voljo • Podatki niso na voljo • Tabela ni na voljo • ...... • STORITEV NI NA VOLJO! 24x7x365
Kaj je zares pomembno? • Storitev kot jo vidi uporabnik • Predvidena (dogovorjena) razpoložljivost • Načrtovani izpadi • RTO (Recovery Time Objective) • V kolikšnem času po ne-načrtovanem izpadu storitev MORA biti na voljo • RPO (Recovery Point Objective) • Koliko podatkov sem pripravljen izgubiti
Komponente baze ProdajaDB Primary • Database • Filegroup • Files • Extents • Page podatki Readwritefilegroup File1 File2 2004 File3 Readonlyfilegroups 0 4 8 12 16 20 24 28 2003 File Header File4 1 5 9 13 17 21 25 29 … 2002 File5 2 6 10 14 18 22 26 30 2001 File6 3 7 11 15 19 23 27 31 extent0 extent1 extent2 extent3 Log
Kaj se zgodi ko... • Napaka na disku, datoteki • Bolečina z SQL Server 2000 • Baza gre v “Suspect” način • Uporabniki ne morejo do baze (podatkov) • SQL 2005 rešitev • Filegroup gre v “Offline” • Uporabniki lahko dostopajo do baze in podatkov v drugih Filegroup-ah
Kako? • “Partial Database Availability” • Funkcionalno particioniranje • “Functional partitioning” • Samo tabele (podatki) v poškodovani Filegroup-i so nedostopne • Strateška porazdelitev podatkov (tabel) • “Secondary data files” • V SQL 2005 – Partitioned Tables • Poenostavitev izgradnje velikih baz • “Data Warehouse”
Funkcionalno particioniranje • Strategije • Related Object-groupings Razdelitev tabel – po različnih filegroup-ah • Time-based data placement/partitioning Recimo podatki prejšnjih let “Sliding window”scenarij • List-based groupings/partitioning Glede na pogoje (šifra od-do)
Prednosti particioniranja • “Sliding Window” • Manipulacije glede na aktivnost tabel • Backup • Shranjevanje aktivnih komponent baze bolj pogosto od neaktivnih • Restore • Parcialni (OnLine Piecemeal Restore) • Skoraj vsak del (page, file, filegroup) lahko restavriramo – ONLINE • Parcialna razpoložljivost baze (“Partial Database Availability”)
Kaj se zgodi ko... • Je potrebno narediti restore • Bolečina z SQL Server 2000 • Baza je v stanju “Restoring” • Uporabniki ne morejo do baze (podatkov) • Restore datotek se prične - OFFLINE • SQL 2005 rešitev • Filegroup je v stanju “Restoring” • Uporabniki lahko dostopajo do baze in podatkov v drugih Filegroup-ah • Parcialni (OnLine Piecemeal) Restore
Kaj se zgodi ko... • Je treba indeksirati (index rebuild) • Bolečina z SQL Server 2000 • “Index rebuild” zahteva ekskluzivno zaklepanje tabele = OFFLINE • Uporabniki ne morejo do tabele (podatkov) • SQL 2005 rešitev • “Index rebuild” lahko naredimo ONLINE (če so izpolnjeni določeni kriteriji) • Uporabniki lahko dostopajo do tabele (podatkov)
Kako? • SQL Server 2000 • Rebuild: DBCC DBREINDEX ali CREATE with DROP_EXISTING • SQL Server 2005 • Enako kot SQL 2000 plus.... • ALTER INDEX…REBUILD: • ONLINE – hkratni dostop uporabnikov med gradnjo indeksa (dostop in spreminjanje podatkov) • OFFLINE – deluje z uporabo zaklepanja (enako kot SQL Server 2000)
Kaj se zgodi ko... • Hoče več procesov iste podatke (Readers & Writers) • Bolečina z SQL Server 2000 • Zaklepanje zagotavlja zahtevano izolacijo • Uporabniki morajo čakati za dostop do podatkov • V primeru uporabe nižjega nivoja izolacije je lahko kompromitirana pravilnost podatkov • SQL 2005 rešitev • Uporabimo lahko zaklepanje ali verzije (“Versioning”) za zagotavljanje zahtevane izolacije • Z uporabo verzij lahko zagotovimo, da ločimo branje in pisanje (blokiranje Readers / Writers)
Kaj se zgodi ko... • Izgubimo bazo (v celoti) • Izgubimo strežnik • Izgubimo lokacijo • ..... • Tehnologije: • Gruče (Cluster) • Log Shiping • Replikacija • Zrcaljenje
Failover Cluster GručePodvajanje strežnikov • Tehnologija na razpolago od NT 4.0 • Avtomatska detekcija napake in avtomatski prehod na drug strežnik • Praviloma ni izgube podatkov • Kaj pa centralno diskovje? • Geografsko razpršene gruče • SQL 2005 novosti • Hitrejši prehod – Fast Recovery • REDO – UNDO • Licenciranje – gruča z dvemi strežniki že v Standard verziji • Analysis Services – več instanc
Log Shipping • Znana in uveljavljena tehnologija • Več tipov sekundarnih strežnikov • Secondary for Failover • Secondary for Reporting • Secondary with delay for Human Error Recovery • Lahko kombiniramo z drugimi tehnologijami (gruče in zrcaljenje – “Database Mirror”) • SQL Server™ 2005 • Integracija v SQL Server Management Studio • Log Shipping – ni zakasnitve med “Database”ali“Differential” Backupi
Database Mirroring • Je sestavni del SQL Server™ 2005 • Za testiranje in pilotske postavitve • Uradna podpora – certifikacija za produkcijo predvidena v prvi polovici 2006 • Trije različni scenariji: • High Availability • High Protection • High Performance
Povzetek - pregled Design in arhitektura Takoj po nadgradnji Minimalni napor da izkoristimo • Online Index Operations • Snapshot Isolation • Replication • Online Index Operations • Snapshot Isolation • Failover Clustering • Database Mirroring • Log Shipping • Database Snapshots • Partial Database Availability • Online Piecemeal Restore • Instant File Initialization • Fast Recovery • Izboljšanje razpoložljivosti – od instalacije do design-a • Razpoložljivost na različnih nivojih