Crash – Koffie – Restore – Koffie – Held!
Agenda Introductie Backups; waarom eigenlijk? Recovery modellen Help! Mijn datafile is weg? Losgeslagen logfiles... Piecemeal restore, 3 gangen restore De master is dood, leve de master! Q&A
Introductie Robert Hartskeerl 10 jaar ervaring met SQL MCITP SQL 2005/2008 DBA en Developer Ervaring met aanverwante MS technologiën Maar ook Linux, MySql en Apache Blog: Twitter:
Waar gaat het niet over? Backup performance Database snapshots VSS Writers en VDI Microsoft Data Protection Manager Iedere andere 3rd party backup tool Marked transactions Geavanceerde restore technieken (bv. Page restores)
Backups. Waarom eigenlijk? We leven van informatie die we halen uit databases. Als we gegevens verliezen, verliezen we ook de informatie. Essentiele informatie die we gebruiken bij onze dagelijkse beslissingen.
Backups. Waarom eigenlijk? Verwijderen van data door virus, hacker rancuneuze (ex) werknemer. Onbedoeld verwijderen of overschrijven van data. Kwijtraken van opslagmedia. Beheerfouten. Hardware falen. Data corruptie. Brand. Inbraak of vernieling. Natuurgeweld.
Recovery modellen FULL •Weinig tot geen dataverlies •LOG Backups •Page restore •Database Mirroring •Log Shipping BULK LOGGED •Bulk transacties zijn minimaal gelogd •LOG Backups SIMPLE •Geen logbackups •Dataverlies afhankelijk van backup frequentie
Recovery modellen
Minimaal logging gebeurt alleen wanneer: De tabel niet gerepliceerd wordt. TABLOCK wordt gebruikt. Als de tabel geen indexen heeft worden de data pages minimaal gelogd Als de tabel een geclusterde index heeft en leeg is wordt er minimaal gelogd.
Help! Mijn datafiles zijn weg FULL: Iedere vrijdag 20:00u DIFF: Iedere dag, behalve vrijdag 20:00u LOG: Ieder uur FULLLOGsDIFFLOGsCRASH Dinsdag 08:22u
Help! Mijn datafiles zijn weg PRIMARY LOG F:\Data
Help! Mijn datafiles zijn weg Scenario 1 – Datafiles en logfile zijn weg FULLLOGDIFF LOG Dinsdag LOG
Demo 1 – Data en logfile restore
Help! Mijn datafiles zijn weg FULL: Iedere vrijdag 20:00u DIFF: Iedere dag, behalve vrijdag 20:00u LOG: Ieder uur FULLLOGsDIFFLOGsCRASH Dinsdag 08:22u
Help! Mijn datafiles zijn weg PRIMARY G:\Data LOG H:\Data
Help! Mijn datafiles zijn weg Scenario 2 – Datafiles zijn weg FULLLOGDIFF LOG Dinsdag LOG BACKUP TAIL LOG
Demo 2 – Datafile restore
Losgeslagen logfiles...
Losgeslagen logfiles VLF1VLF2VLF3VLF4 Een logfile bestaat uit meerdere Virtual Log Files (VLF) Een VLF kan inactief (0) zijn of actief (2) INSERT INTO dbo.t1 (c1, c2) values (default); BACKUP LOG sqlzat3 TO DISK = ‘sqlzat3_log.bak VLF5VLF6VLF7 VLF8
Losgeslagen logfiles... Een logfile bestaat uit meerdere Virtual Log Files (VLF) Een logfile heeft actieve en niet actieve VLFs Niet actieve VLFs worden opnieuw gebruikt Een logfile groeit alleen als er geen niet-actieve VLFs meer zijn Een actieve VLF wordt inactief bij een CHECKPOINT onder het SIMPLE recoverymodel en bij een LOG BACKUP bij het FULL recoverymodel
Demo 3 – Logfile management
Piecemeal restore Online gedeeltelijke restore in Enterprise Ed. Ideaal voor bijvoorbeeld grote archief databases. Belangrijkste data is snel online en op de achtergrond wordt de restore verder uitgevoerd. CURRENT PRIMARY ARCHIVE LOG
Piecemeal restore PRIMARY LOG N:\Data CURRENT Ed. 3+ ARCHIVE Ed. 1-2
Piecemeal Restore •RESTORE db FILEGROUP=‘Primary’ WITH PARTIAL, NORECOVERY Eerst moet de Primary filegroup online en aangeven dat we een Partial restore gaan doen •RESTORE db FILEGROUP=‘FG_A’ WITH NORECOVERY Dan de volgen de overige filegroups in volgorde van belangrijkheid. •RESTORE LOG… en RESTORE WITH RECOVERY Na iedere sequence moeten de logfiles weer gerestored worden om de database online te brengen
Demo 4 – Piecemeal restore
De master is dood, leve de master! Het restoren van systeem databases is niet anders dan normale databases. MODEL en MSDB kunnen we restoren net als normale databases Bij de MASTER database wordt het iets spannender. ○ Als SQL Server niet meer start, eerst een REBUILD. ○ De MASTER database kan alleen gerestored worden als SQL in SINGLE USER mode gestart is. ○ Daarna is het net een normale database. Ik zei ook “iets” spannender.
Demo 5 – Restore master
Q&A Backing Up and Restoring Databases in SQL Server Backing Up and Restoring Databases in SQL Server Blog Paul S. Randal - Backup/Restore Blog Paul S. Randal - Backup/Restore SQL Cat Team – Backup performance compression SQL Cat Team – Backup performance compression SQL Cat Team - Backup performance VLDB over netwerk whitepaper SQL Cat Team - Backup performance VLDB over netwerk whitepaper